Основные команды терминала в macOS

Терминал в macOS — это окно к Unix-системе под капотом. Зная десяток команд, вы быстрее перемещаетесь по файлам, ищете нужное и управляете процессами, не отрываясь от клавиатуры. Ниже — практический минимум с примерами, которые можно сразу пробовать.

Открыть терминал: Cmd + Space → введите «Terminal» → Enter. По умолчанию в macOS используется оболочка zsh.

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

Где я сейчас, что вокруг и как перейти в другую папку:

pwd                 # показать текущий путь (print working directory)
ls                  # список файлов в текущей папке
ls -la              # подробный список, включая скрытые файлы (точечные)
cd ~/Documents      # перейти в папку Documents
cd ..               # на уровень выше
cd -                # вернуться в предыдущую папку
cd                  # перейти в домашнюю папку (~)

Полезные сокращения путей:

  • ~ — домашняя папка пользователя (например, /Users/pavel);
  • . — текущая папка;
  • .. — родительская папка;
  • / — корень файловой системы.

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

Создание, копирование, перемещение и удаление:

mkdir project              # создать папку
mkdir -p src/components     # создать вложенные папки сразу
touch index.html           # создать пустой файл (или обновить дату изменения)

cp file.txt backup.txt     # копировать файл
cp -R src/ dist/           # копировать папку рекурсивно

mv old.txt new.txt         # переименовать
mv report.pdf ~/Desktop/   # переместить файл на рабочий стол

rm file.txt                # удалить файл
rm -r folder/              # удалить папку со всем содержимым

Осторожно: rm удаляет мимо Корзины, без подтверждения. Команда rm -rf особенно опасна — она молча сносит всё в указанной папке. Всегда проверяйте путь перед Enter.

Просмотр содержимого файлов

cat notes.txt          # вывести весь файл в терминал
less big.log           # постранично (выход — клавиша q, поиск — /слово)
head -n 20 access.log  # первые 20 строк
tail -n 20 access.log  # последние 20 строк
tail -f app.log        # следить за файлом в реальном времени (логи)

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

Найти файлы по имени и нужную строку внутри файлов:

find . -name "*.php"             # все .php-файлы в текущей папке и вложенных
find ~/Projects -type d -name node_modules   # найти папки node_modules

grep "TODO" app.js               # строки со словом TODO в файле
grep -rn "api_key" .             # рекурсивный поиск по всем файлам с номерами строк
grep -ri "error" logs/           # без учёта регистра (-i)

Команды удобно соединять через конвейер | — вывод одной становится входом другой:

ls -la | grep ".env"     # показать только строки, где встречается .env
history | grep git       # найти прошлые команды с git

Права доступа

В подробном выводе ls -la слева видны права вида -rw-r--r--. Изменить их можно так:

chmod +x deploy.sh       # сделать файл исполняемым
chmod 644 config.php     # владелец — чтение/запись, остальные — чтение
sudo chown pavel file    # сменить владельца (sudo = с правами администратора)

Префикс sudo выполняет команду от имени суперпользователя — нужен для системных действий. Используйте его осознанно.

Процессы и система

top                  # активные процессы и нагрузка (выход — q)
ps aux | grep php    # найти запущенные процессы php
kill 12345           # завершить процесс по PID
kill -9 12345        # принудительно завершить «зависший» процесс
lsof -i :3000        # кто занял порт 3000

Сеть

ping google.com          # проверить доступность хоста (выход — Ctrl + C)
curl https://api.github.com        # запрос к URL, вывод ответа
curl -O https://site.ru/file.zip   # скачать файл
ifconfig | grep inet               # локальные IP-адреса

Полезные мелочи

clear                # очистить экран (или Cmd + K)
open .               # открыть текущую папку в Finder
open index.html      # открыть файл в приложении по умолчанию
echo $PATH           # посмотреть переменную окружения PATH
man ls               # справка по команде (выход — q)

Горячие клавиши, которые экономят время:

  • Tab — автодополнение имени файла или команды;
  • / — листать историю введённых команд;
  • Ctrl + C — прервать текущую команду;
  • Ctrl + A / Ctrl + E — в начало / конец строки;
  • Ctrl + R — поиск по истории команд.

Итог

Этого набора достаточно для повседневной работы: перемещаться по проекту, управлять файлами, искать нужное, следить за логами и процессами. Дальше стоит освоить переменные окружения, алиасы в ~/.zshrc и базовые скрипты на bash — но начинать удобнее именно с команд выше. Лучший способ запомнить — повторять их в реальных задачах.