Перейти к содержимому
Войти Регистрация

Топ 8 команд терминала, которые стоит знать

Топ 8 команд терминала, которые стоит знать

Терминал пугает ровно до того момента, пока не выучишь десяток команд. Восемь, которые закрывают большую часть повседневных задач — с объяснением, зачем каждая нужна и где на ней спотыкаются.

Зачем это, если есть графический интерфейс

Повторяемость. Команду можно записать, положить в скрипт и выполнить через полгода точно так же. Последовательность кликов — нельзя.

Массовость. Переименовать один файл проще мышкой. Переименовать четыреста — только командой.

Удалённые машины. На сервере графики нет вообще, и другого способа что-то сделать там просто не существует.

Примеры ниже — для командной строки Linux и macOS. В Windows большинство из них работает в WSL или в терминале Git Bash, а у PowerShell свои аналоги.

Терминал пугает ровно до того момента, пока не выучишь десяток команд.
Терминал пугает ровно до того момента, пока не выучишь десяток команд. Фото: topten5 · BY.

Топ 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
Оценили 0 читателей

Комментарии

0
Г
Без регистрации можно оставить один комментарий к публикации. Войдите, чтобы участвовать в обсуждении дальше и получать ответы. Ссылки в комментариях скрываются.
Пока нет комментариев

Будьте первым, кто ответит автору.