Базовое
-
cat — вывести файл целиком
Команда cat печатает содержимое файла в терминал и склеивает несколько файлов в один поток.
4 минcatcat -ncat -A -
lsblk — блочные устройства
Дерево дисков, разделов и логических томов — размер, ФС, точка монтирования.
3 минlsblklsblk -flsblk -o -
Получение справки в терминале
Как быстро узнать ключи команды: man, --help, apropos и tldr; как читать страницу man.
3 минcmd --helpman cmdman -
Служба (service)
Что такое служба, чем она отличается от обычной программы и как ей управлять.
4 минsystemctl statussystemctl startsystemctl stop -
fdisk и parted — разметка диска
fdisk и parted создают на диске таблицу разделов (GPT или MBR) и разделы; parted -s работает без вопросов.
6 минlsblkfdisk -lparted -
less — листать длинный файл с поиском
Программа less показывает длинный файл или вывод постранично: листать, искать по слову, следить за концом.
4 минlessless -Nless -S -
blkid — UUID, метка и тип файловой системы
Команда blkid печатает UUID, метку и тип файловой системы на устройстве — то, что пишут в /etc/fstab.
4 минblkidblkid -sblkid -L -
head — первые строки файла
Команда head печатает начало файла или вывода: по умолчанию 10 строк, ключ -n задаёт сколько.
3 минheadhead -nhead -c -
tail — последние строки и слежение за логом
Команда tail печатает конец файла и с ключом -f следит, как в журнал дописываются новые строки.
4 минtailtail -ntail -f -
apt / dpkg — управление пакетами
Установка, обновление и удаление пакетов в Debian и Ubuntu: apt, dpkg, репозитории и зависимости.
4 минapt updateapt installapt purge -
Базовые команды с файлами
Навигация и файлы — ls, cd, cp, mv, rm, cat, less, head, tail, копипаст в терминале.
6 минls -lahcd dirpwd -
Права доступа
Модель прав Unix — чтение/запись/исполнение, владелец/группа/другие, спецбиты.
5 минls -lnamei -lchmod -
Процессы
Просмотр, сигналы и приоритеты процессов; поиск пожирателей CPU/памяти.
5 минps auxps -eopgrep -a -
cd — смена каталога
Перемещение по файловой системе: cd, cd -, cd ~, cd .., pushd/popd, CDPATH.
3 минcd dircdpushd dir -
ls — содержимое каталога
Команда ls показывает файлы и каталоги: права, владельца, размер и время изменения, в том числе скрытые.
5 минlsls -lls -la -
ps — список процессов
Команда ps показывает запущенные процессы: PID, владельца, состояние, загрузку CPU и памяти, команду запуска.
5 минpsps auxps -ef -
mkdir — создание каталогов
Создание каталогов: -p (с родителями), -m (права сразу), вложенные {скобки}, rmdir.
3 минmkdir -pmkdir -mrmdir empty -
top — процессы и нагрузка в реальном времени
Программа top каждые несколько секунд обновляет список процессов, загрузку CPU, память и load average.
4 минtoptop -otop -u -
Ядро (kernel)
Что такое ядро Linux, чем занимается и как посмотреть его версию и параметры.
4 минuname -runame -acat -
kill — послать сигнал процессу
Команда kill посылает процессу сигнал по PID: вежливо завершить (TERM), перечитать настройки (HUP), убить сразу (KILL).
5 минkillkill -TERMkill -HUP -
mc — файловый менеджер в терминале4 мин
Двухпанельный файловый менеджер в терминале: навигация, копирование, редактор, SFTP.
-
pgrep — найти PID процесса по имени
Команда pgrep печатает PID процессов по имени или командной строке, владельцу и родителю — без ps и grep.
4 минpgrep nginxpgrep -lpgrep -a -
shellcheck — проверка скриптов до запуска
shellcheck читает скрипт bash или sh, не выполняя его, и находит ошибки: переменные без кавычек, cd без проверки.
6 минshellcheckshellcheck -fshellcheck -S -
stat — метаданные файла
Полная информация о файле: размер, права, владелец, времена (atime/mtime/ctime), inode.
3 минstat filestat -cls -lc -
Bash-скрипты: запуск, переменные, аргументы
Скрипт — текстовый файл с командами оболочки: строка #! выбирает интерпретатор, аргументы приходят в $1, $2 и "$@".
8 минset -euochmodbash -
file — тип файла
Определить, что внутри файла (текст, ELF, архив, картинка) по содержимому, а не по расширению.
3 минfile ffile -ifile -b -
cp — копирование файлов и каталогов
Команда cp копирует файлы и каталоги: с подтверждением перезаписи, с сохранением прав и времени, рекурсивно.
5 минcpcp -rcp -a -
which / type / whereis — где команда
Найти, какой бинарь выполнится, builtin это или alias, где лежит и man к нему.
3 минtype -acommand -vwhich cmd -
mv — переместить или переименовать
Команда mv переименовывает файл или каталог и переносит его в другое место; поверх существующего пишет молча.
5 минmvmv projectmv -i -
tee — вывод в файл и на экран
Раздвоить поток: писать в файл И показывать на экране; sudo tee для записи в защищённые файлы.
3 минcmdecho x -
Коды завершения: $?, && и ||
Код завершения — число от 0 до 255, которым команда сообщает итог: 0 — успех, другое число — сбой или ответ «нет».
8 минlsgrep -qmkdir -
alias — псевдонимы команд
Короткие имена для длинных команд; временно и навсегда через ~/.bashrc; почему alias не виден в скриптах.
3 минaliasunalias llecho -
rm — удаление файлов и каталогов
Команда rm удаляет файлы и каталоги сразу и без корзины; ключи -i и -I спрашивают, -r удаляет дерево.
5 минrmrm -irm -I -
ln — символические и жёсткие ссылки
Симлинки (ln -s) и жёсткие ссылки: чем отличаются, когда что, типичные ошибки с относительными путями.
4 минln -sln -sfreadlink -f -
test, [ ] и [[ ]] — проверка условий6 мин
test и [ ] проверяют файл, строку или число и отвечают кодом: 0 — да, 1 — нет; [[ ]] — их версия в bash.
-
echo — вывод текста
Печать строк и переменных; -n и -e, экранирование, когда лучше printf.
3 минechoecho -nprintf -
grep — поиск по тексту
Команда grep ищет строки по шаблону в файлах и выводе команд: регулярки, рекурсия, контекст.
3 минgrep -igrep -rngrep -v -
sudo — выполнение команд от другого пользователя
Даёт временные права root по sudoers; править файл — только через visudo, иначе ошибка лишит sudo всех.
4 минapt updatesudoeditvisudo -f -
Фоновые задачи shell — &, jobs, nohup
Запуск в фоне, управление задачами оболочки, чтобы процесс пережил выход.
3 минcmdjobs -lfg -
uptime, who, w — кто в системе и загрузка
Load average сравнивай с числом ядер (nproc), а не с абсолютным порогом — три числа без него ничего не значат.
3 минuptimenprocw -
wc — посчитать строки, слова и байты
Команда wc считает строки (-l), слова (-w), байты (-c) и символы (-m) в файле или в выводе другой команды.
4 минwcwc -lgrep error -
Пути — basename, dirname, realpath
Разобрать путь на имя и каталог, получить абсолютный путь; устойчивый каталог скрипта.
3 минbasenamedirnamerealpath -
sort — сортировка строк
Команда sort упорядочивает строки файла или вывода: как текст, как числа (-n), по колонке (-k), по убыванию (-r).
5 минsortsort -nsort -rn -
uniq — убрать или посчитать повторы
Команда uniq схлопывает соседние одинаковые строки, а с -c считает их; перед ней почти всегда стоит sort.
4 минsort file -
Как устроена команда — ключи и аргументы
Строка в терминале — это имя команды, ключи (-l, --all) и аргументы; оболочка делит её на слова по пробелам.
4 минls -lls -lals --all -
cut — вырезать колонки из строк
Команда cut вырезает из каждой строки колонки по разделителю (-d и -f) или символы по номерам позиций (-c).
5 минcutcut -c1-8cut -f2 -
Шаблоны имён glob и фигурные скобки
Шаблоны имён * ? [] {}: как оболочка раскрывает их до запуска команды и чем они отличаются от регулярок.
4 минmkdir -pcpecho -
Перенаправление вывода и конвейеры
Оболочка направляет ввод и вывод команды в файл или в другую команду: >, >>, 2>&1, /dev/null, конвейер |.
6 минcmdcmd1 -
find — поиск файлов
Поиск файлов по имени, размеру, времени, правам; действия над найденным.
4 минfind -
Пользователи и группы
Учётные записи и группы Linux; usermod -G без -a заменяет все дополнительные группы пользователя, а не добавляет одну.
5 минid aliceuseradd -musermod -aG -
useradd — создать пользователя
Команда useradd создаёт учётную запись: домашний каталог, оболочку, группы и UID; пароль задаёт passwd.
5 минuseradd -mpasswd aliceuseradd -r -
passwd — сменить или заблокировать пароль
Команда passwd меняет пароль своей учётной записи, а от root — задаёт, блокирует и показывает пароли других.
5 минpasswdpasswd alicepasswd -S -
usermod — изменить учётную запись и группы
Команда usermod меняет существующую учётную запись: группы, оболочку входа, домашний каталог, имя и блокировку.
5 минusermod -aGusermod -rGusermod -G -
Символические и жёсткие ссылки
Разница между symlink и hard link, когда что использовать, битые ссылки.
3 минln -sln -sfnreadlink -f -
chmod / chown — права и владелец файлов
Смена прав (chmod) и владельца/группы (chown) — числовой и символьный синтаксис, umask, chgrp.
6 минchmodchownchown -R -
sed и awk — правка и поля текстового потока
sed меняет и удаляет строки по шаблону, awk делит строку на поля и считает по ним; оба читают текст построчно.
9 минsed -nsedawk -
umask — маска новых файлов и каталогов
umask — маска процесса: какие права снять с нового файла (из 666) и каталога (из 777) при создании.
5 минumaskumask -Stouch -
Регулярные выражения — шаблоны для grep, sed и awk
Регулярное выражение — шаблон, под который подходит множество строк; по нему ищут grep, sed и awk.
5 минgrep -igrep -Egrep -
tar — архивирование и распаковка файлов
Собирает файлы в архив со сжатием; архив без верхнего каталога при распаковке засыпает файлами текущую директорию.
4 минtar czftar xzftar tvzf -
rsync — синхронизация и копирование файлов
Копирует только различия между деревьями файлов; --delete делает приёмник копией источника и удаляет в нём лишнее.
4 минrsync -avzPrsync -avznrsync -avz -
xargs — построение аргументов из потока
Превращает строки stdin в аргументы команды; без -0 имена файлов с пробелами и переводами строк ломают разбор.
3 минfind -
restic — резервные копии с дедупликацией
Инкрементальные шифрованные бэкапы со снимками; без пароля репозиторий не расшифровать, другого пути нет.
4 минrestic initrestic backuprestic snapshots -
sort, uniq, cut, wc, tr — обработка текстовых потоков
Маленькие утилиты для конвейера; uniq убирает только соседние повторы, поэтому перед ним почти всегда нужен sort.
5 минsort -usort filecut -
diff и patch — сравнение и применение изменений
Сравнение файлов и применение патчей; сравнить конфиги, увидеть изменения.
4 минdiff -udiff -qrdiff -
jq — обработка JSON в консоли
jq разбирает и фильтрует JSON в консоли: поля, массивы, фильтры и форматированный вывод.
4 минjqjq -rjq --arg -
Переменные окружения и PATH
Переменные окружения: env, export, $PATH, ~/.bashrc и профили; откуда берётся «command not found».
3 минechoenvprintenv -
git: история правок, откат и удалённый репозиторий
Система контроля версий: кто и что поменял в файлах, как вернуть рабочую версию и обменяться правками.
13 минgit statusgit diffgit add -
printf и echo — вывод текста в скриптах
Команда printf — форматированный вывод в shell: надёжнее echo, форматы и спецсимволы.
4 минprintfprintf -v -
GPG — шифрование и подписи
GnuPG: ключи GPG, шифрование файлов, подпись и её проверка, симметричный режим с паролем.
4 минgpg -cgpg -dgpg -e -
vim — редактирование файлов в терминале
Минимум для правки конфигов в терминале; Esc всегда возвращает в режим Normal, где буквы — команды, а не текст.
4 минi -
Ansible: инвентарь, модули и разовые команды
Система настройки серверов по SSH: по инвентарю и плейбукам приводит машины к описанному состоянию без агента на них.
8 минansible -iansible-inventory -iansible-playbook -i -
nano — простой консольный редактор
Дружелюбный консольный редактор — сохранить, выйти, поиск, для правки конфигов.
3 минnano filenanonano -w -
ansible-playbook: запуск плейбука
Запускает плейбук Ansible на машинах инвентаря и по каждой задаче пишет ok, changed, skipping или failed.
13 минansible-playbook -i -
tmux — мультиплексор терминала
Держит сессию терминала на сервере после разрыва SSH; сессии живут в памяти и не переживают перезагрузку сервера.
3 минtmux newtmux lstmux attach -
screen — мультиплексор терминала
Держит сессию терминала на сервере после разрыва SSH; сессии живут в памяти и не переживают перезагрузку сервера.
3 минscreen -Sscreen -lsscreen -r -
watch — периодический повтор команды
Повторяет команду каждые N секунд на одном экране; без кавычек конвейер достанется оболочке, а не самой команде.
3 минwatch -n1watch catwatch -
at — разовое задание по времени
Выполнить команду один раз в заданное время — в отличие от регулярного cron.
3 минechoat nowat -f -
flock — защита от двойного запуска
flock держит блокировку файла, пока работает команда: второй экземпляр скрипта ждёт её или сразу выходит.
7 минflock -nflock -wflock -
date — дата и время в shell
Команда date: текущее время, форматы вывода, метки времени для файлов и логов, арифметика дат.
4 минdatedate -ddate -Iseconds -
Локаль и кодировка
Язык, кодировка и форматы — LANG/LC_*, генерация локалей, проблемы с UTF-8.
3 минlocalelocale -alocale-gen -
bash — командная оболочка
Интерпретатор команд: интерактивный ввод, встроенные команды и запуск сценариев.
5 минbash --versionhelptype pwd -
chage — сроки действия пароля и учётной записи
Читает и изменяет локальные параметры старения пароля и дату окончания действия учётной записи.
4 минchage -lgetent passwdpasswd -S -
hash — кэш путей команд в Bash
Встроенная команда Bash для просмотра и очистки запомненных путей внешних команд.
3 минtype hashhelp hashhash -
hostname — имя машины и его разрешение
Читает или временно задаёт имя узла; отдельные ключи запрашивают FQDN и адреса.
3 минhostnamehostname -shostname -f -
nologin — оболочка, отказывающая во входе
Программа для поля login shell: сообщает об отказе и завершается вместо открытия интерактивной оболочки.
4 минgetent passwdid labsvctype -a -
pwd — текущий рабочий каталог
Встроенная команда Bash: показывает логический или физический путь текущего каталога.
3 минpwdpwd -Lpwd -P -
sleep — задержка выполнения
Приостанавливает выполнение на заданное время; не проверяет готовность другой программы.
3 минsleepsleep --help -
uname — сведения о ядре и системе
Показывает имя и выпуск ядра, имя узла и машинную архитектуру; не версию дистрибутива.
3 минuname -suname -runame -v -
wait — ожидание дочерней задачи в Bash
Встроенная команда Bash: ждёт дочернюю задачу и возвращает её статус завершения.
4 минtype waithelp waitsleep -
whoami — от чьего имени выполняется команда
Показывает имя пользователя, соответствующее эффективному UID выполняющегося процесса.
3 минwhoamiid -uid -un