Терминал позволяет управлять файлами, процессами, сетью и инструментами разработки с помощью текстовых команд. Для большинства повседневных задач достаточно освоить несколько базовых команд и понимать, в какой папке они выполняются.
Справочник рассчитан на новичков, которые работают в терминале macOS или Linux. Отдельные команды и параметры зависят от операционной системы, оболочки и установленного программного обеспечения.
Содержание
- Для кого — уровень читателя и границы справочника
- Навигация по файловой системе — текущая папка и переходы
- Работа с файлами и папками — создание, копирование и удаление
- Поиск файлов и текста —
findиgrep - Управление процессами — просмотр, остановка и фоновые задания
- Сетевые команды — HTTP-запросы, загрузка и SSH
- Основные команды Git — состояние, изменения и коммиты
- Переменные окружения — значения для оболочки и программ
- Конвейеры, перенаправление и алиасы — комбинирование команд
- Практические комбинации — готовые сценарии
- Что делать, если команда не работает — типичные причины ошибок
- Краткая шпаргалка — команды на каждый день
- Официальные источники — документация для дальнейшей проверки
Для кого
Материал для новичков, которым нужно:
- понять, в какой папке они находятся;
- создавать, просматривать, копировать и удалять файлы;
- находить файлы и строки текста;
- запускать и останавливать процессы;
- выполнять простые сетевые запросы;
- проверять состояние и изменения 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 | Отправляет процессу сигнал; по умолчанию используется SIGTERM | kill 12345 |
Ctrl + C | Прерывает текущую команду | Ctrl + C |
Ctrl + Z | Приостанавливает текущее foreground-задание в оболочке с поддержкой job control | Ctrl + Z |
fg | Возвращает приостановленное задание на передний план | fg |
команда & | Запускает команду в фоне | long-task & |
Идентификатор процесса (PID) можно найти в выводе ps aux, top или htop:
ps aux
kill 12345Замените 12345 реальным PID. Сигнал SIGTERM просит процесс завершиться, но не гарантирует немедленную остановку.
Сетевые команды
curl передаёт данные по URL и по умолчанию выводит полученный ответ в терминал. Для HTTP простой вызов обычно выполняет GET-запрос:
curl https://example.comPOST-запрос с 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 | Подключается к удалённой системе по SSH | ssh 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 | Получает изменения и интегрирует их в текущую ветку; способ зависит от настроек Git | git 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 | lessgrep выбирает подходящие строки, а 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/Linux | grep -r "текст" . |
| Просмотреть длинный файл | less файл |
| Получить ответ по URL | curl URL |
| Посмотреть процессы | ps aux |
| Проверить состояние Git | git status |
| Посмотреть незакоммиченные изменения | git diff |
| Посмотреть подготовленные изменения | git diff --cached |
Официальные источники
Снимки источников для этой проверки получены 8 сентября 2026 года. Страница curl в переданном снимке описывает curl 8.22.1; на более старых версиях отдельные параметры могут отсутствовать.
Следующий шаг
Если нужен терминал с AI-агентами, продолжите с Warp — терминал с AI-агентами для разработчиков.
Работа с терминалом особенно полезна, когда команды входят в повторяемый рабочий процесс и нужно проверять результат каждого шага. Обсуждение таких сценариев может быть полезно тем, кто настраивает рабочую среду для себя или команды.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov



