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

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

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