Терминал в Линукс обладает большим списком полезных консольных команд, которые пригодятся пользователям, решил сделать шпаргалку по базовым командам для терминала, которые позволят создавать директории, удалять файлы, просматривать, редактировать и многие другие…

Файловые команды

ls  список файлов и каталогов
ls -al  форматированный список со скрытыми каталогами и файлами
cd dir  сменить директорию на dir
cd  сменить на домашний каталог
pwd  показать текущий каталог
mkdir dir  создать каталог dir
rm file  удалить file
rm -r dir  удалить каталог dir
rm -f file  удалить форсированно file
rm -rf dir  удалить форсированно каталог dir
cp file1 file2  скопировать file1 в file2
cp -r dir1 dir2  скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2  переименовать или переместить file1 в file2. если file2 существующий каталог - переместить file1 в каталог file2
ln -s file link  создать символическую ссылку link к файлу file
touch file  создать file
cat > file  направить стандартный ввод в file
more file  вывести содержимое file
head file  вывести первые 10 строк file
tail file  вывести последние 10 строк file
tail -f file  вывести содержимое file по мере роста, начинает с последних 10 строк
xdg-open ~/.vscode/extensions - открыть папку

Управление процессами

ps  вывести ваши текущие активные процессы
top  показать все запущенные процессы
kill pid  убить процесс с id pid
killall proc  убить все процессы с именем proc
bg  список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg  выносит на передний план последние задачи
fg n  вынести задачу n на передний план
Права доступа на файлы
chmod octal file  сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:
4  чтение (r)
2  запись (w)
1  исполнение (x)

Примеры:
chmod 777  чтение, запись, исполнение для всех
chmod 755  rwx для владельца, rx для группы и остальных.
Дополнительные опции: man chmod.

SSH

ssh user@host  подключится к host как user
ssh -p port user@host  подключится к host на порт port как user
ssh-copy-id user@host  добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

Поиск

grep pattern files  искать pattern в files
grep -r pattern dir  искать рекурсивно pattern в dir
command | grep pattern  искать pattern в выводе command
locate file  найти все файлы с именем file
find -regex ./.*\.js$ - поиск всех файлов js
grep -E -o '5[HJK][1-9A-HJ-NP-Za-km-z]{49}' test.txt > goal.txt - поиск по регулярному выражению

Системная информация

date  вывести текущую дату и время
cal  вывести календарь на текущий месяц
uptime  показать текущий аптайм
w  показать пользователей онлайн
whoami  имя, под которым вы залогинены
finger user  показать информацию о user
uname -a  показать информацию о ядре
cat /proc/cpuinfo  информация ЦПУ
cat /proc/meminfo  информация о памяти
man command  показать мануал для command
df  показать инф. о использовании дисков
du  вывести вес текущего каталога
free  использование памяти и swap
whereis app  возможное расположение программы app
which app  какая app будет запущена по умолчанию

Архивация

tar cf file.tar files  создать tar-архив с именем file.tar содержащий files
tar xf file.tar  распаковать file.tar
tar czf file.tar.gz files  создать архив tar с сжатием Gzip
tar xzf file.tar.gz  распаковать tar с Gzip
tar cjf file.tar.bz2  создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2  распаковать tar с Bzip2
gzip file  сжать file и переименовать в file.gz
gzip -d file.gz  разжать file.gz в file

Сеть

ping host  пропинговать host и вывести результат
whois domain  получить информацию whois для domain
dig domain  получить DNS информацию domain
dig -x host  реверсивно искать host
wget file  скачать file
wget -c file  продолжить остановленную закачку

Установка пакетов

Установка из исходников:
./configure
make
make install
dpkg -i pkg.deb  установить пакет (Debian)
rpm -Uvh pkg.rpm  установить пакет (RPM)

Клавиатурные сочетания

Ctrl+C  завершить текущую команду
Ctrl+Z  остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D  разлогиниться, тоже самое, что и exit
Ctrl+W  удалить одно слово в текущей строке
Ctrl+U  удалить строку
!! - повторить последнюю команду
exit  разлогиниться

Специальные символы

. текущая директория
.. директория на уровень выше
~ домашняя директория
* любое количество любых символов
? ровно один любой символ

Необходимый минимум команд

Итак, запоми­най самые важ­ные коман­ды, если еще не зна­ешь их:

    * man  чуть ли не самая важ­ная коман­да  она отоб­ража­ет справ­ку о коман­де, наз­вание которой ты напишешь сле­дом;
    * ls (от сло­ва list, спи­сок)  перечис­лить все фай­лы в текущей дирек­тории, ана­лог вин­довой коман­ды dir. Самые важ­ные клю­чи: -a (all)  показы­вать скры­тые фай­лы, -l (long)  показы­вать под­робнос­ти, -h (human)  показы­вать раз­меры в «челове­чес­ких» еди­ницах, а не в бай­тах. Мож­но писать все клю­чи сра­зу: ls -lha;
    * cd (change directory)  сме­нить дирек­торию. Даль­ше мож­но ука­зать пап­ку, в которую ты хочешь перей­ти;
    * pwd (print working directory)  узнать текущий путь;
    * cp (copy)  ско­пиро­вать файл. Даль­ше нуж­но ука­зать, что и куда копиро­вать;
    * mv (move)  перемес­тить файл. Тоже ука­зыва­ем какой, затем  куда;
    * rm (remove)  сте­реть файл. Если сти­раешь каталог, ука­зывай опцию -r (recursive), что­бы сте­реть все под­катало­ги внут­ри, под­катало­ги внут­ри них и так далее;
    * chmod и chown  поменять пра­ва на файл или вла­дель­ца фай­ла;
    * cat (concatenate)  при­дума­на, что­бы объ­еди­нять фай­лы, но час­то исполь­зует­ся, что­бы все­го лишь вывес­ти содер­жимое тек­сто­вого фай­ла. Прос­то напиши его наз­вание пос­ле cat;
    * less  если файл длин­ный, то его удоб­но прок­ручивать. Для это­го и при­дума­на коман­да less;
    head и tail  с опци­ей -n число показы­вают сколь­кото строк от начала (head) или кон­ца (tail) ука­зан­ного фай­ла;
    * grep  поиск в стро­ке по подс­тро­ке или регуляр­ному выраже­нию;
    * find  поиск фай­лов;
    * mkdir (make directory)  соз­дание дирек­тории;
    * touch  соз­дание пус­того фай­ла. Прос­то ука­жи его наз­вание;
    * sudo  выпол­нить сле­дующую далее коман­ду от име­ни супер­поль­зовате­ля;
    * df (disk free)  пос­мотреть, сколь­ко на дис­ках сво­бод­ного мес­та. Рекомен­дую писать df -h по ана­логии с ls -h;
    * du (disk usage)  узнать, сколь­ко занима­ет каталог. Тоже есть опция -h;
    * ps (processes)  пос­мотреть спи­сок запущен­ных тобой про­цес­сов и их иден­тифика­торы;
    * kill и иден­тифика­тор  завер­шить какойто про­цесс.
    

Нес­коль­ко важ­ных сетевых команд:

    * ping  попин­говать узел;
    * nslookup  узнать информа­цию об узле;
    * traceroute  прос­ледить путь пакетов до узла;
    * netstat  информа­ция об откры­тых пор­тах и соеди­нени­ях;
    * whois  информа­ция о регис­тра­ции домена.
    

По­мимо это­го, в Linux обыч­но есть нес­коль­ко ути­лит, которые силь­но облегчат тебе жизнь. Если их нет, то сто­ит их уста­новить:

    * git  популяр­ней­шая сис­тема кон­тро­ля вер­сий, как и ядро Linux, соз­данная Линусом Тор­валь­дсом;
    * nano  прос­тей­ший тек­сто­вый редак­тор, работа­ющий в тер­минале;
    * unzip и unrar  думаю, ты догады­ваешь­ся, зачем они нуж­ны;
    * curl нужен для вебзап­росов;
    * wget  для ска­чива­ния боль­ших фай­лов;
    * htop  показы­вает уро­вень заг­рузки сис­темы и спи­сок про­цес­сов.
    * bashtop  дашборд обзор сис­темы и спи­сок про­цес­сов
    

Важ­но: вый­ти из прог­рамм, которые не зак­рыва­ются сами, обыч­но мож­но, нажав Q. Прер­вать работу — Ctrl-C. А что­бы вый­ти из vim, если ты его открыл слу­чай­но, набери пос­ледова­тель­ность :q! и наж­ми Enter.

В домаш­нем катало­ге поль­зовате­ля хра­нит­ся нес­коль­ко скры­тых фай­лов, которые могут быть очень полез­ны при работе в Linux. Что­бы прос­мотреть скры­тые фай­лы в текущем катало­ге, исполь­зуй кон­соль­ную коман­ду ls -a или поковы­ряй­ся в меню фай­лового менед­жера: нап­ример, в Nautilus пункт «Показать скры­тые фай­лы» пря­чет­ся в меню «Вид». Обра­ти вни­мание на сле­дующие скры­тые фай­лы:

    * .bash_profile  содер­жит информа­цию о поль­зователь­ском окру­жении и запус­каемых при авто­риза­ции поль­зовате­ля прог­раммах. В некото­рых дис­три­бути­вах, осно­ван­ных на Debian, дан­ного фай­ла по умол­чанию не сущес­тву­ет, но ты можешь соз­дать его самос­тоятель­но;
    * .bash_login  этот файл исполня­ется, если отсутс­тву­ет .bash_profile, и выпол­няет схо­жую фун­кцию. Это­го фай­ла не сущес­тву­ет по умол­чанию ни в дис­три­бути­ве Debian, ни в дис­три­бути­ве Red Hat;
    * .profile  выпол­няет­ся при отсутс­твии .bash_profile и .bash_login;
    * .bash_logout  сце­нарий, который выпол­няет­ся авто­мати­чес­ки при завер­шении работы коман­дной обо­лоч­ки;
    * .bash_history  хра­нит информа­цию обо всех коман­дах, наб­ранных в bash;
    * .ssh  каталог, в котором хра­нят­ся клю­чи шиф­рования для под­клю­чения по SSH;
    * .bashrc  сце­нарий, который обыч­но нас­тра­ивает­ся дру­гими сце­нари­ями для сво­их собс­твен­ных нужд  нап­ример, запус­ка демонов или обра­бот­ки какихлибо команд.
    

Справочник основных команд Linux с примерами
Команды Linux: расширенный справочник команд Unix / Linux / PuTTY SSH
Основные команды Linux: справочник команд Linux
Команды Linux

Oh My Zsh

⤧  Previous post Regex шпаргалка ⤧  Next post Права доступа Linux