Топ 8 команд терминала, которые стоит знать
Терминал пугает ровно до того момента, пока не выучишь десяток команд. Восемь, которые закрывают большую часть повседневных задач — с объяснением, зачем каждая нужна и где на ней спотыкаются.
Зачем это, если есть графический интерфейс
Повторяемость. Команду можно записать, положить в скрипт и выполнить через полгода точно так же. Последовательность кликов — нельзя.
Массовость. Переименовать один файл проще мышкой. Переименовать четыреста — только командой.
Удалённые машины. На сервере графики нет вообще, и другого способа что-то сделать там просто не существует.
Примеры ниже — для командной строки Linux и macOS. В Windows большинство из них работает в WSL или в терминале Git Bash, а у PowerShell свои аналоги.

Топ 8 команд
cd и ls — перемещение и осмотр
первое, что нужно уметь, и этого хватает надолго
cd путь — перейти в каталог. cd .. — на уровень выше, cd - — вернуться туда, где были только что. cd без аргументов — в домашний каталог.
ls -la — показать всё содержимое, включая скрытые файлы, с правами и размерами. Практически всегда нужен именно этот вариант, а не голый ls.
Где спотыкаются. Пробелы в именах: cd Мои документы не сработает, нужны кавычки. И клавиша Tab — она дописывает имена и избавляет от половины опечаток; без неё в терминале работать мучительно.
- Основа всего остального
- Tab дописывает имена и пути
- Работает одинаково везде
- Легко потеряться без вывода текущего пути в приглашении
- Пробелы и кириллица в именах требуют кавычек
база · оценка 9,5
grep — найти строку в файлах
самая полезная команда для работы с кодом
grep -rn "текст" . — найти строку во всех файлах текущего каталога рекурсивно, с номерами строк. Это ежедневный инструмент: где объявлена функция, кто вызывает метод, откуда берётся строка из интерфейса.
Полезные флаги. -i — без учёта регистра, -l — показать только имена файлов, --include="*.js" — искать только в нужных файлах, -v — наоборот, показать строки без совпадения.
Про современные замены. Есть более быстрые инструменты вроде ripgrep, которые сами пропускают служебные каталоги. Ставить стоит, но синтаксис grep всё равно надо знать: на чужом сервере будет именно он.
- Мгновенно находит нужное место в проекте
- Работает по регулярным выражениям
- Есть на любой машине
- Без --include лезет в служебные каталоги и выдаёт мусор
- Регулярные выражения нужно хоть немного знать
каждый день · оценка 9,6
find — найти сами файлы
когда важно имя, размер или дата, а не содержимое
find . -name "*.log" — все файлы с расширением в текущем дереве. find . -mtime -1 — изменённые за последние сутки. find . -size +100M — крупные файлы, когда кончилось место на диске.
Связка с другими командами. find . -name "*.tmp" -delete удаляет найденное. Правило безопасности простое: сначала запустите find без -delete и посмотрите список, и только потом добавляйте удаление.
- Ищет по имени, дате, размеру и правам
- Может сразу выполнить действие над найденным
- Незаменим при поиске, что съело диск
- Синтаксис неочевидный и плохо запоминается
- С -delete легко удалить лишнее
регулярно · оценка 9,0
tail и less — читать логи
то, чем занимаешься, когда что-то сломалось
tail -f файл — показывать новые строки по мере появления. Открыли на сервере, воспроизвели ошибку, увидели её вживую. tail -n 100 файл — последние сто строк.
less файл — постраничный просмотр без загрузки всего файла в память, что критично для логов на гигабайты. Внутри: /текст — поиск, G — в конец, g — в начало, q — выйти.
Частая связка. tail -f лог | grep ERROR — следить только за ошибками, не читая всё подряд.
- Показывает происходящее в реальном времени
- less открывает файлы любого размера мгновенно
- Отлично сочетается с grep
- Управление в less надо запомнить
- tail -f не покажет то, что было до запуска
при отладке · оценка 9,2
Конвейер и перенаправление
не команда, а идея, из которой всё складывается
Вертикальная черта передаёт вывод одной команды на вход другой. Из десятка простых команд собираются сложные запросы, и именно в этом сила терминала.
ps aux | grep node — найти процессы приложения. cat лог | grep ERROR | wc -l — посчитать ошибки в логе. ls -la | sort -k5 -n — отсортировать файлы по размеру.
Перенаправление. команда > файл — записать вывод в файл, перезаписав его. команда >> файл — дописать в конец. Разница в один символ, а последствия разные, и на этом обжигаются все хотя бы раз.
- Превращает простые команды в мощные связки
- Работает с любыми программами, а не только со стандартными
- Одна идея на все случаи
- Один символ разницы между дописать и стереть
- Длинные конвейеры тяжело читать через месяц
основа · оценка 9,4
ps, kill и lsof — разобраться с процессами
когда порт занят, а кем — непонятно
ps aux | grep имя — найти запущенный процесс и его номер. kill номер — попросить процесс завершиться, kill -9 номер — завершить принудительно.
lsof -i :3000 — узнать, кто занял порт. Классическая ситуация: приложение не стартует, потому что предыдущий запуск не завершился. Эта команда решает вопрос за пять секунд вместо перезагрузки.
Про -9. Это не первый вариант, а последний: процесс не успевает закрыть файлы и сохранить состояние. Сначала обычный kill, и только если не помогло — принудительный.
- Мгновенно решает проблему занятого порта
- Видно, что реально запущено на машине
- Не требует перезагрузки
- kill -9 может оставить повреждённые данные
- Легко завершить не тот процесс, если невнимательно смотреть номер
регулярно · оценка 8,9
df, du и free — куда делось место и память
первое, что смотрят, когда сервер начал странно себя вести
df -h — сколько свободно на дисках в человекочитаемом виде. du -sh * — размер каждого каталога в текущем месте: запускаешь, спускаешься в самый жирный, повторяешь — и за минуту находишь виновника.
free -h — сколько занято оперативной памяти. На macOS вместо него смотрят через top или системный монитор.
Практика. Больше половины инцидентов «сервер тормозит» объясняются забитым диском, и почти всегда это разросшиеся логи.
- Находит причину за минуту
- Не требует установки ничего
- du -sh отлично работает и на рабочей машине
- du на больших деревьях работает долго
- free отсутствует на macOS
при инцидентах · оценка 8,8
ssh и scp — работа с удалённой машиной
без этого к серверу не подойти
ssh пользователь@адрес — подключиться. scp файл пользователь@адрес:/путь — скопировать туда, и наоборот, если поменять аргументы местами.
Что настроить один раз. Ключи вместо пароля: ssh-keygen, затем ssh-copy-id пользователь@адрес. После этого вход мгновенный и заметно безопаснее.
Файл конфигурации. В ~/.ssh/config можно задать короткие имена для серверов, и вместо длинной строки с адресом и портом писать ssh prod. Экономит время каждый день.
- Единственный нормальный способ работы с сервером
- Ключи убирают ввод пароля
- Короткие имена через конфигурацию
- Права на файл ключа должны быть строгими, иначе не заработает
- Потерянный ключ придётся заменять на всех серверах
- scp неудобен для больших деревьев — там лучше rsync
ежедневно · оценка 9,3

Сравнение по главному
| Команда | Для чего | Как часто | Риск ошибиться |
|---|---|---|---|
| cd, ls | перемещение | постоянно | нет |
| grep | поиск по содержимому | каждый день | нет |
| find | поиск файлов | еженедельно | высокий с -delete |
| tail, less | чтение логов | при отладке | нет |
| конвейер | связки команд | постоянно | средний |
| ps, kill, lsof | процессы и порты | регулярно | средний |
| df, du, free | место и память | при инцидентах | нет |
| ssh, scp | удалённая работа | ежедневно | низкий |

Что настроить, чтобы стало удобно
Поиск по истории. Сочетание Ctrl+R ищет по ранее введённым командам. Это самая недооценённая возможность терминала: большинство того, что вам нужно, вы уже когда-то вводили.
Псевдонимы. В файле настроек оболочки задайте короткие имена для длинных команд, которые набираете каждый день. Пять псевдонимов экономят больше времени, чем любая новая утилита.
Текущая ветка в приглашении. Когда в строке видно каталог и ветку репозитория, исчезает целый класс ошибок «закоммитил не туда».
Осторожность с sudo. Команду с sudo сначала прочитайте целиком, и только потом нажимайте Enter. Особенно если скопировали её из интернета — а копировать в терминал непонятные команды не стоит вовсе, это тот же риск, что запустить скачанный неизвестно откуда файл.
Частые вопросы
С чего начать, если терминал пугает?
С четырёх команд: cd, ls, grep и tail. Их хватает на первые месяцы реальной работы. Дальше добавляйте по одной по мере появления задачи — так они запоминаются намертво, в отличие от заучивания списка из учебника.
Что делать, если не помню флаги?
Почти у всех команд есть --help с коротким списком, и man имя с подробным руководством. Это нормальный рабочий процесс, а не признак слабости: флаги find не помнит никто. Полезно завести себе файл с командами, которые пришлось искать дважды.
Насколько это применимо в Windows?
Через WSL — полностью: там настоящий Linux со всеми этими командами. В Git Bash работает большинство. У PowerShell своя логика и свои имена, но идеи те же — конвейер, перенаправление, фильтрация. Если работаете с серверами, WSL стоит поставить сразу.
Можно ли что-то сломать?
Да, и в основном двумя способами: удалением по шаблону и перезаписью файла через одинарную стрелку вместо двойной. Правило простое — команды, которые что-то удаляют или перезаписывают, сначала запускайте в безопасном варианте и смотрите на список, а уже потом добавляйте разрушительный флаг.
Итог
Начните с grep и tail — эти две команды закрывают большую часть повседневной работы с кодом и логами. Дальше добавьте ssh с ключами и настройте короткие имена серверов.
А главное — привыкните к Ctrl+R и клавише Tab. Они экономят больше времени, чем любые новые команды, которые вы выучите потом.
Комментарии
0Будьте первым, кто ответит автору.