Терминал позволяет управлять файлами, процессами, сетью и инструментами разработки с помощью текстовых команд. Для большинства повседневных задач достаточно освоить несколько базовых команд и понимать, в какой папке они выполняются.

Справочник рассчитан на новичков, которые работают в терминале macOS или Linux. Отдельные команды и параметры зависят от операционной системы, оболочки и установленного программного обеспечения.

💡
Основные POSIX-команды, Git и curl в примерах сверены с официальной документацией. В конкретной системе примеры не запускались, поэтому перед применением проверьте доступность команды и ожидаемый результат.

Содержание

  1. Для кого — уровень читателя и границы справочника
  2. Навигация по файловой системе — текущая папка и переходы
  3. Работа с файлами и папками — создание, копирование и удаление
  4. Поиск файлов и текста — find и grep
  5. Управление процессами — просмотр, остановка и фоновые задания
  6. Сетевые команды — HTTP-запросы, загрузка и SSH
  7. Основные команды Git — состояние, изменения и коммиты
  8. Переменные окружения — значения для оболочки и программ
  9. Конвейеры, перенаправление и алиасы — комбинирование команд
  10. Практические комбинации — готовые сценарии
  11. Что делать, если команда не работает — типичные причины ошибок
  12. Краткая шпаргалка — команды на каждый день
  13. Официальные источники — документация для дальнейшей проверки

Для кого

Материал для новичков, которым нужно:

  • понять, в какой папке они находятся;
  • создавать, просматривать, копировать и удалять файлы;
  • находить файлы и строки текста;
  • запускать и останавливать процессы;
  • выполнять простые сетевые запросы;
  • проверять состояние и изменения Git.

Практический результат — набор безопасных базовых действий, которые можно повторить в терминале macOS или Linux. Справочник не заменяет документацию конкретной оболочки, дистрибутива или установленной программы.

Навигация по файловой системе

КомандаЧто делаетПример
pwdПоказывает путь к текущей рабочей папкеpwd
lsВыводит содержимое текущей папкиls
ls -laПоказывает подробный список, включая скрытые записиls -la
cd путьПереходит в указанную папкуcd Documents
treeПоказывает вложенную структуру папок в виде дереваtree

Полезные варианты cd:

cd Documents          # перейти в папку Documents
cd ..                 # подняться на уровень выше
cd ~                  # перейти в домашнюю папку
cd -                  # вернуться в предыдущую папку

Команда tree может отсутствовать в системе. В macOS её можно установить через Homebrew:

brew install tree

В дистрибутивах Linux на основе Debian или Ubuntu:

apt install tree

Для установки пакета могут потребоваться права администратора, а пакетный менеджер зависит от дистрибутива.

Работа с файлами и папками

КомандаЧто делаетПример
mkdirСоздаёт папкуmkdir reports
mkdir -pСоздаёт всю цепочку вложенных папокmkdir -p data/raw/json
touchСоздаёт пустой файл или обновляет время существующегоtouch notes.txt
cpКопирует файлcp notes.txt backup.txt
cp -RРекурсивно копирует папкуcp -R reports reports-copy
mvПеремещает или переименовывает файлmv draft.txt article.txt
rmУдаляет файлrm draft.txt
rm -rfРекурсивно удаляет путь; параметр -f подавляет обычные запросыrm -rf old-project
catВыводит содержимое файлаcat notes.txt
lessОткрывает файл с постраничной прокруткойless server.log
⚠️
Команда rm не перемещает файл в системную корзину. Перед rm -rf выполните pwd, затем ls -la и проверьте путь. Удалённые таким способом данные обычно нельзя восстановить обычными средствами.

Открыть текущую папку в графическом файловом менеджере:

open .          # macOS: Finder
xdg-open .      # Linux: файловый менеджер по умолчанию

На Linux xdg-open требует графической среды и может отсутствовать.

Поиск файлов и текста

find ищет пути по заданному условию. Чтобы найти именно файлы с расширением .json в текущей папке и вложенных каталогах, используйте:

find . -type f -name "*.json"

Если нужно находить также каталоги, уберите условие -type f.

grep выбирает строки, соответствующие шаблону:

grep "ERROR" server.log       # найти строки в одном файле
grep -i "error" server.log    # не учитывать регистр
grep -r "ERROR" .             # искать рекурсивно в текущей папке

Шаблон поиска безопаснее заключать в кавычки, особенно если он содержит пробелы или символы, которые интерпретирует оболочка.

💡
Параметр -r поддерживается распространёнными версиями grep в macOS и Linux, но не входит в стандартный набор опций POSIX grep. Для POSIX-совместимого рекурсивного поиска можно использовать find с -exec.
find . -type f -exec grep -n "ERROR" {} \;

Управление процессами

Команда или сочетаниеЧто делаетПример
ps auxПоказывает список запущенных процессов в распространённом macOS/Linux-синтаксисеps aux
topПоказывает процессы и текущую нагрузку на системуtop
htopПредоставляет интерактивный интерфейс, если программа установленаhtop
kill PIDОтправляет процессу сигнал; по умолчанию используется SIGTERMkill 12345
Ctrl + CПрерывает текущую командуCtrl + C
Ctrl + ZПриостанавливает текущее foreground-задание в оболочке с поддержкой job controlCtrl + Z
fgВозвращает приостановленное задание на передний планfg
команда &Запускает команду в фонеlong-task &

Идентификатор процесса (PID) можно найти в выводе ps aux, top или htop:

ps aux
kill 12345

Замените 12345 реальным PID. Сигнал SIGTERM просит процесс завершиться, но не гарантирует немедленную остановку.

Сетевые команды

curl передаёт данные по URL и по умолчанию выводит полученный ответ в терминал. Для HTTP простой вызов обычно выполняет GET-запрос:

curl https://example.com

POST-запрос с JSON-телом:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"key":"value"}' \
  https://api.example.com

В современных версиях curl для передачи JSON можно использовать параметр --json:

curl --json '{"key":"value"}' https://api.example.com

Параметры curl зависят от версии программы. Если --json не распознаётся, проверьте версию командой curl --version и используйте вариант с -H и -d.

Другие полезные команды:

КомандаЧто делаетПример
wgetСкачивает файл, если программа установленаwget https://example.com/file.zip
pingОтправляет диагностические ICMP-запросы хостуping example.com
sshПодключается к удалённой системе по SSHssh user@host

Ответ ping не гарантирует, что сайт или API работает: сервер может блокировать ICMP-запросы, сохраняя доступность других протоколов. Отсутствие ответа также не доказывает, что хост полностью недоступен.

Основные команды Git

Git — система контроля версий для отслеживания изменений в коде, конфигурациях и других файлах.

КомандаЧто делаетПример
git initСоздаёт репозиторий в текущей папкеgit init
git clone URLКлонирует существующий репозиторийgit clone URL
git statusПоказывает состояние рабочего дерева и индексаgit status
git add .Добавляет в индекс изменения под текущим каталогомgit add .
git commit -m "Описание"Создаёт коммит с сообщениемgit commit -m "Описание"
git pushОтправляет локальные коммиты в удалённый репозиторий, если настроена ветка назначенияgit push
git pullПолучает изменения и интегрирует их в текущую ветку; способ зависит от настроек Gitgit pull
git log --onelineПоказывает краткую историю коммитовgit log --oneline
git diffПоказывает изменения, ещё не добавленные в индексgit diff
git diff --cachedПоказывает изменения, уже добавленные в индексgit diff --cached
git checkout -b новая-веткаСоздаёт ветку и переключается на неёgit checkout -b новая-ветка

Перед коммитом полезно проверить и рабочее дерево, и содержимое индекса:

git status
git diff
git add path/to/file
git diff --cached
git status
git commit -m "Краткое описание изменения"

Если нужно добавить все изменения под текущим каталогом, используйте git add . только после проверки области действия. Повторный git status показывает, какие файлы попадут в коммит.

Переменные окружения

Переменная окружения хранит значение, доступное оболочке и запущенным из неё программам.

echo "$PATH"                    # показать значение PATH
export APP_MODE=development      # установить переменную в текущей сессии
echo "$APP_MODE"                 # проверить значение

Установка через export действует для текущей сессии оболочки и её дочерних процессов. После закрытия оболочки значение обычно исчезает.

Чтобы устанавливать переменную при каждом запуске оболочки, команду обычно добавляют в файл конфигурации:

  • ~/.zshrc для zsh;
  • ~/.bashrc для bash.

Не помещайте токены, пароли и другие секреты в примеры, публичные репозитории или историю команд без понимания последствий.

Конвейеры, перенаправление и алиасы

История и автодополнение

  • history показывает историю введённых команд.
  • Ctrl + R запускает поиск по истории.
  • Tab дополняет имя команды, файла или папки.
  • Повторное нажатие Tab во многих оболочках показывает доступные варианты.

Конвейер

Символ | передаёт стандартный вывод одной команды на стандартный ввод другой:

find . -type f -name "*.json" | less
grep "ERROR" server.log | less

Передавать файл через cat необязательно: grep умеет принимать путь к файлу напрямую.

Перенаправление вывода

> записывает вывод в файл с заменой его содержимого, а >> добавляет данные в конец:

echo "hello" > message.txt
ls -la >> file-list.txt

Алиасы

Алиас задаёт короткое имя для команды. Например, в ~/.zshrc:

alias ll="ls -la"
alias gs="git status"

После изменения конфигурации откройте новую сессию терминала или загрузите соответствующий файл в текущую оболочку:

source ~/.zshrc   # если используется zsh
source ~/.bashrc  # если используется bash

Практические комбинации

Найти ошибки в журнале

grep -i "error" server.log | less

grep выбирает подходящие строки, а less позволяет просматривать длинный результат постранично.

Найти JSON-файлы и сохранить список

find . -type f -name "*.json" > json-files.txt

Проверка результата:

less json-files.txt

В файле будут перечислены найденные пути, по одному на строку.

Создать рабочую папку и убедиться, что она появилась

mkdir -p project/data
cd project
pwd
ls -la

Ожидаемый результат: pwd показывает путь к папке project, а в выводе ls -la присутствует папка data.

Проверить API и сохранить ответ

curl -sS -o response.txt -w "HTTP status: %{http_code}\n" https://example.com
less response.txt

Тело ответа сохраняется в response.txt, а HTTP-статус выводится в терминал. Для полноценной проверки API дополнительно учитывайте авторизацию, заголовки, формат данных и смысл ответа. Без параметра -f код завершения curl сам по себе не означает успешный HTTP-статус.

Что делать, если команда не работает

  • Терминал сообщает command not found. Проверьте написание команды, установлена ли программа и входит ли её папка в PATH. Посмотреть значение можно командой echo "$PATH".
  • Файл не найден. Выполните pwd и ls -la, затем проверьте путь и точное написание имени.
  • Нет прав доступа. Посмотрите подробную информацию через ls -la. Не добавляйте права администратора автоматически, пока не понятно, какой файл или системный ресурс изменит команда.
  • Команда долго выполняется. Попробуйте остановить её сочетанием Ctrl + C. Для отдельного процесса найдите PID через ps aux.
  • После Ctrl + Z программа исчезла. Она, вероятно, приостановлена. Верните её командой fg.
  • Вывод слишком длинный. Добавьте | less или перенаправьте результат в файл через >.
  • grep не находит текст из-за регистра. Используйте параметр -i.
  • curl не знает параметр --json. Выполните curl --version; на старой версии используйте -H "Content-Type: application/json" вместе с -d.
  • Перед удалением есть сомнения в пути. Выполните pwd и ls -la; не запускайте rm -rf, пока цель не проверена.
  • Git не показывает ожидаемые изменения. Выполните git status, git diff и при необходимости git diff --cached. Убедитесь, что команда запущена внутри нужного репозитория.

Краткая шпаргалка

ЗадачаКоманда
Узнать текущую папкуpwd
Показать файлы, включая скрытыеls -la
Перейти в папкуcd папка
Создать вложенные папкиmkdir -p путь/к/папке
Скопировать папкуcp -R источник назначение
Переименовать файлmv старое новое
Удалить файлrm файл
Найти файлfind . -type f -name "имя"
Найти текст в одном файлеgrep "текст" файл
Найти текст рекурсивно в macOS/Linuxgrep -r "текст" .
Просмотреть длинный файлless файл
Получить ответ по URLcurl URL
Посмотреть процессыps aux
Проверить состояние Gitgit status
Посмотреть незакоммиченные измененияgit diff
Посмотреть подготовленные измененияgit diff --cached

Официальные источники

Снимки источников для этой проверки получены 8 сентября 2026 года. Страница curl в переданном снимке описывает curl 8.22.1; на более старых версиях отдельные параметры могут отсутствовать.

Следующий шаг

Если нужен терминал с AI-агентами, продолжите с Warp — терминал с AI-агентами для разработчиков.

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

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov