Текст и потоки
-
cat — вывести файл целиком
Команда cat печатает содержимое файла в терминал и склеивает несколько файлов в один поток.
4 минcatcat -ncat -A -
less — листать длинный файл с поиском
Программа less показывает длинный файл или вывод постранично: листать, искать по слову, следить за концом.
4 минlessless -Nless -S -
head — первые строки файла
Команда head печатает начало файла или вывода: по умолчанию 10 строк, ключ -n задаёт сколько.
3 минheadhead -nhead -c -
tail — последние строки и слежение за логом
Команда tail печатает конец файла и с ключом -f следит, как в журнал дописываются новые строки.
4 минtailtail -ntail -f -
Базовые команды с файлами
Навигация и файлы — ls, cd, cp, mv, rm, cat, less, head, tail, копипаст в терминале.
6 минls -lahcd dirpwd -
Bash-скрипты: запуск, переменные, аргументы
Скрипт — текстовый файл с командами оболочки: строка #! выбирает интерпретатор, аргументы приходят в $1, $2 и "$@".
8 минset -euochmodbash -
tee — вывод в файл и на экран
Раздвоить поток: писать в файл И показывать на экране; sudo tee для записи в защищённые файлы.
3 минcmdecho x -
echo — вывод текста
Печать строк и переменных; -n и -e, экранирование, когда лучше printf.
3 минechoecho -nprintf -
grep — поиск по тексту
Команда grep ищет строки по шаблону в файлах и выводе команд: регулярки, рекурсия, контекст.
3 минgrep -igrep -rngrep -v -
wc — посчитать строки, слова и байты
Команда wc считает строки (-l), слова (-w), байты (-c) и символы (-m) в файле или в выводе другой команды.
4 минwcwc -lgrep error -
sort — сортировка строк
Команда sort упорядочивает строки файла или вывода: как текст, как числа (-n), по колонке (-k), по убыванию (-r).
5 минsortsort -nsort -rn -
uniq — убрать или посчитать повторы
Команда uniq схлопывает соседние одинаковые строки, а с -c считает их; перед ней почти всегда стоит sort.
4 минsort file -
cut — вырезать колонки из строк
Команда cut вырезает из каждой строки колонки по разделителю (-d и -f) или символы по номерам позиций (-c).
5 минcutcut -c1-8cut -f2 -
Шаблоны имён glob и фигурные скобки
Шаблоны имён * ? [] {}: как оболочка раскрывает их до запуска команды и чем они отличаются от регулярок.
4 минmkdir -pcpecho -
Перенаправление вывода и конвейеры
Оболочка направляет ввод и вывод команды в файл или в другую команду: >, >>, 2>&1, /dev/null, конвейер |.
6 минcmdcmd1 -
sed и awk — правка и поля текстового потока
sed меняет и удаляет строки по шаблону, awk делит строку на поля и считает по ним; оба читают текст построчно.
9 минsed -nsedawk -
Регулярные выражения — шаблоны для grep, sed и awk
Регулярное выражение — шаблон, под который подходит множество строк; по нему ищут grep, sed и awk.
5 минgrep -igrep -Egrep -
xargs — построение аргументов из потока
Превращает строки stdin в аргументы команды; без -0 имена файлов с пробелами и переводами строк ломают разбор.
3 минfind -
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 -
printf и echo — вывод текста в скриптах
Команда printf — форматированный вывод в shell: надёжнее echo, форматы и спецсимволы.
4 минprintfprintf -v -
vim — редактирование файлов в терминале
Минимум для правки конфигов в терминале; Esc всегда возвращает в режим Normal, где буквы — команды, а не текст.
4 минi -
nano — простой консольный редактор
Дружелюбный консольный редактор — сохранить, выйти, поиск, для правки конфигов.
3 минnano filenanonano -w -
date — дата и время в shell
Команда date: текущее время, форматы вывода, метки времени для файлов и логов, арифметика дат.
4 минdatedate -ddate -Iseconds -
Локаль и кодировка
Язык, кодировка и форматы — LANG/LC_*, генерация локалей, проблемы с UTF-8.
3 минlocalelocale -alocale-gen