Терминал для разработчика: команды на каждый день
Команды для навигации по проекту, поиска нужной строки, проверки изменений и работы с процессами экономят время, пока не начинают удалять лишнее. Разбираем безопасные приёмы для Bash и типичные ловушки.

Пять минут на поиск файла или проверку изменений быстро превращаются в полчаса, если каждый раз открывать папки вручную и запускать команды наугад. Ниже — повседневный набор для Bash на Linux и macOS: перейти к проекту, найти строку, понять, что изменилось, и остановить зависший процесс, не задев соседние.
Сначала — где вы и что именно запустите
Примеры рассчитаны на Bash 3.2 и новее, который есть в Linux и macOS. Для поиска используется grep, для списков файлов — find, для Git — установленная команда git. Версии утилит и набор опций в macOS и Linux могут различаться; ниже не используются специфичные для GNU расширения вроде grep -P.
Откройте терминал и перейдите в каталог проекта командой cd. Если путь содержит пробелы, заключите его в кавычки. Перед командами, которые удаляют или меняют файлы, проверьте текущий каталог: pwd выведет полный путь.
Навигация и быстрый обзор проекта
Вместо того чтобы каждый раз печатать длинный путь, используйте историю переходов оболочки: cd .. поднимает на уровень выше, а cd - возвращает в предыдущий каталог. ls показывает содержимое текущей папки; ls -la добавляет скрытые файлы, в том числе конфигурации и каталог .git.
Чтобы найти файл по имени в проекте, подойдет find. Эта команда ничего не меняет — она только выводит совпадения:
find . -name 'package.json' -type f
Точка означает «начать отсюда», а кавычки не дают оболочке самой обработать шаблон. Для поиска каталога вместо файла замените -type f на -type d.
Если файлов много, не начинайте с просмотра всего дерева. Сначала найдите нужный каталог или файл, затем ограничьте следующую команду этой областью. Так проще понять результат и не получить сотни строк вывода.
Поиск по содержимому
Когда вы помните текст, но не файл, ищите его через grep. Например, команда ниже ищет слово TODO в файлах проекта, включая имя файла и номер строки:
grep -R -n 'TODO' .
Рекурсивный поиск может захватить зависимости, собранные файлы и служебные каталоги. Если они мешают, исключите конкретный каталог через --exclude-dir:
grep -R -n --exclude-dir=node_modules 'TODO' .
Поддержка отдельных опций зависит от реализации grep. Если команда сообщает, что опция неизвестна, проверьте локальную справку командой man grep; не подменяйте её похожим флагом наугад. Для регулярных выражений в простых случаях достаточно grep -E, но сначала попробуйте буквальный поиск: так меньше риск получить неожиданные совпадения.
Проверка изменений перед коммитом
В Git для повседневной проверки достаточно начать со статуса и diff. Эти команды читают состояние репозитория и не меняют файлы:
git status --short
git diff
git diff --staged
git status --short показывает краткий список изменённых и новых файлов. git diff выводит изменения, которые ещё не добавлены в индекс, а git diff --staged — подготовленные к коммиту. Проверьте оба вида изменений: иначе в коммит может попасть не то, что вы просматривали.
Если вывод длинный, Git обычно открывает его в постраничном просмотрщике. Нажмите q, чтобы выйти. Не отключайте просмотрщик только ради одного длинного diff: постраничный режим позволяет листать результат и не терять его начало.
Процессы: сначала найти, потом останавливать
Если сервер разработки завис или занял порт, не отправляйте сигнал всем процессам сразу. Сначала найдите нужный процесс по узнаваемой части команды:
ps aux | grep '[n]ode'
Квадратные скобки не дают самой команде поиска совпасть с собственным текстом. Просмотрите вывод и убедитесь, что строка относится именно к вашему приложению. На macOS и Linux формат ps может немного отличаться; если процесса не видно, обратитесь к справке man ps.
Предпочтительнее остановить программу в том терминале, где она запущена: обычно для этого подходит Ctrl+C. Если терминал недоступен, сначала найдите PID — идентификатор процесса — в выводе ps, затем отправьте сигнал завершения именно ему:
kill PID
Замените PID числом из вывода. Не копируйте слово PID буквально и не используйте принудительное завершение как первый шаг: процесс может не успеть сохранить данные или корректно закрыть соединения.
Какой инструмент выбрать
| Задача | Команда | Что проверить |
|---|---|---|
| Посмотреть файлы в текущей папке | ls -la | Скрытые файлы видны в списке |
| Найти файл по имени | find . -name 'имя' | Путь начинается с ожидаемого каталога |
| Найти текст в файлах | grep -R -n 'текст' . | В выводе есть файл и номер строки |
| Проверить изменения Git | git status --short, git diff | В списке и diff только ваши правки |
| Завершить зависший процесс | ps, затем kill PID | PID принадлежит нужному процессу |
Где команды чаще всего подводят
- Ищете не в той папке. Перед поиском выполните
pwd. Путь.означает текущий каталог, а не корень проекта. - Получили слишком много совпадений. Ограничьте поиск нужной папкой или исключите каталог зависимостей. Не редактируйте массово найденные файлы, пока не проверили список вручную.
- Путь содержит пробелы. Пишите его в кавычках:
cd "My Project". Без них оболочка воспримет части пути как отдельные аргументы. - В Git не видно ожидаемого изменения. Проверьте
git status, а затем отдельноgit diffиgit diff --staged: файл мог быть уже добавлен в индекс. - Остановили не тот процесс. Сверьте PID и командную строку. Не запускайте широкие команды завершения, если не понимаете, какие процессы они затронут.
Безопасная привычка для терминала проста: сначала выяснить, где вы находитесь и что команда затронет, затем выполнять действие. Один вызов
pwdдешевле, чем восстановление удалённых файлов.
Термин: PID — числовой идентификатор процесса, который операционная система назначает запущенной программе. Он помогает адресно управлять процессом, но со временем может быть переиспользован после его завершения.
Что делать дальше
Добавьте в привычку короткую проверку перед изменениями: pwd для каталога, git status --short для состояния проекта. Затем выберите одну команду поиска и потренируйтесь на небольшой папке. Для команд и опций, которых здесь нет, используйте встроенную справку man и документацию Bash и Git: набор утилит отличается между системами.
Проверка грамотности: Орфография, пунктуация, стиль — с объяснением каждой правки
Спросить за 10 ₽Источники: GNU Bash Reference Manual, Git — документация
Частые вопросы
Эти команды подойдут для Windows?
Почему grep не принимает указанную опцию?
Можно ли искать по всему диску командой find?
Что делать, если kill не остановил процесс?
Безопасно ли копировать команды из статьи в рабочий терминал?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.