Как просмотреть все команды Terminal на Mac

Mac имеет огромное количество команд в Terminal. Поисковые системы и man-страницы помогут понять назначение команд, но не покажут сразу полный список. Ниже — подробные инструкции, альтернативы, советы и шпаргалка для разных сценариев.
Просмотр всех доступных команд Terminal
- Откройте Terminal (Программы/Утилиты/Terminal.app).

Удерживайте клавишу «Escape» (или кнопку на Touch Bar в некоторых MacBook Pro) секунду-две.
Когда появится подсказка «Display all N possibilities?», нажмите «Y» (Да). Число N зависит от вашей установки — обычно около 1000–2000.

- Terminal выведет все доступные команды в алфавитном порядке. Чтобы продвигаться по списку построчно, нажимайте «Enter». Обратной прокрутки во встроенном просмотре нет — читайте внимательно.

- Чтобы вернуться к приглашению командной строки, нажмите «Control + C» или «Delete». Также можно просто продолжать нажимать «Enter» до конца списка — после завершения вы автоматически вернётесь к приглашению.

Important: этот приём — удобный быстрый обзор, но неудобен для поиска и экспорта списка в файл.
Генерация списка команд с помощью compgen
Если вы хотите получить текстовый файл со всеми командами (поиск, поиск по шаблону, экспорт), используйте compgen — это встроенная команда Bash, которая генерирует список команд, алиасов, функций и ключевых слов.
Откройте Terminal (Программы/Утилиты/Terminal.app).
Чтобы быстро вывести все команды и алиасы, выполните:
compgen -ac- Чтобы записать результат в текстовый файл в текущей директории, выполните:
compgen -ac > commandlist.txtФайл commandlist.txt появится в вашей текущей рабочей директории (по умолчанию — домашняя папка).

Дополнительные опции compgen
compgen -b— только встроенные команды Bash (built-ins), напримерcd,kill.compgen -k— ключевые слова (keywords), полезно при написании bash-скриптов.
Для быстрого поиска в выводе используйте grep. Пример: найти все команды с «net» в названии:
compgen -ac | grep net
Important: compgen — это встроенная команда Bash. В macOS по умолчанию с Catalina и выше оболочка по умолчанию — zsh. Если вы используете zsh, compgen может быть недоступен — см. раздел «Когда это не сработает».
Альтернативные способы получить список команд
Если compgen недоступен или вы хотите другие представления, можно использовать несколько альтернатив:
- Просмотреть стандартные каталоги с исполняемыми файлами:
ls /bin /usr/bin /usr/local/bin /usr/sbin /sbin- Использовать
which -aилиtype -aдля проверки, откуда берётся конкретная команда. - Поиск по man-страницам:
man -k <ключевое_слово>(аналогapropos). - Получить список алиасов и функций:
alias
declare -f- Если ваша оболочка — zsh, получить список команд можно запуском Bash однократно:
bash -c 'compgen -ac'или использовать встроенные возможности zsh (если знакомы с синтаксисом zsh), например:
print -rl -- ${(k)commands}(для безопасного и совместимого подхода лучше временно запустить bash).
Когда эти методы не сработают
- Если вы используете zsh и пытаетесь вызвать
compgenнапрямую, команда может отсутствовать — compgen является bash-билтином. - Некоторые команды — это функции оболочки или алиасы, определённые в пользовательских конфигурациях (
~/.bashrc,~/.zshrc). Их не будет в системных каталогах, пока конфигурация не загружена. - Команды, установленные через менеджеры пакетов (Homebrew, MacPorts), могут находиться в каталогах, не входящих в PATH; убедитесь, что проверяете правильные директории.
- Графические утилиты и приложения с бандлами не всегда имеют явные командные инструменты в PATH.
Если compgen не доступен — запустите bash -c 'compgen -ac > commandlist.txt' для быстрого экспорта без переключения оболочки на постоянной основе.
Практические советы и эвристики
- Порядок поиска: сначала введите
type -a <имя>, чтобы увидеть, является ли команда алиасом, функцией, builtin или файлом в PATH. - Для быстрой навигации по большому списку используйте перенаправление в файл и откройте его в редакторе (less, nano, TextEdit):
compgen -ac > commands.txt && less commands.txt. - Чтобы понять назначение команды, сначала вызовите
man <команда>или--help, например:<команда> --help. - Если хотите отфильтровать только исполняемые файлы в PATH:
IFS=:
for dir in $PATH; do ls -1 "$dir" 2>/dev/null; done | sort -u(этот цикл перечислит содержимое всех директорий из PATH).
Шпаргалка — полезные команды (cheat sheet)
# Показать все команды и алиасы (bash)
compgen -ac
# Записать в файл
compgen -ac > ~/commandlist.txt
# Фильтрация
compgen -ac | grep -i network
# Показать только built-ins (bash)
compgen -b
# Проверка, какой тип команды
type -a ls
# Просмотреть каталоги с исполняемыми файлами
ls /bin /usr/bin /usr/local/bin /usr/sbin /sbin
# Использовать bash временно, если вы в zsh
bash -c 'compgen -ac | grep git'
# Просмотр man-страницы
man <команда>Контексты использования: чек-листы по ролям
Для начинающего пользователя:
- Откройте Terminal.
- Нажмите Escape и подтвердите «Display all…» для обзора.
- Попробуйте
man <команда>для изучения.
Для разработчика / DevOps:
- Выполните
compgen -ac > ~/commands.txt. - Поиск по файлу:
grep -i.~/commands.txt - Проверьте
type -aперед запуском неизвестной команды.
- Выполните
Для администратора системы:
- Проанализируйте пути в $PATH:
echo $PATH. - Сравните списки команд между машинами
diff <(bash -c 'compgen -ac | sort') <(ssh host bash -c 'compgen -ac | sort').
- Проанализируйте пути в $PATH:
Безопасность и приватность
- Просмотр списка команд безопасен, но никогда не выполняйте команды, которые вы не понимаете.
- Перед запуском скрипта из интернета проверьте его содержимое и источник.
- Используйте
type -aиwhichчтобы убедиться, что вы запускаете ожидаемую версию утилиты.
Краткое резюме
Чтобы быстро просмотреть все команды — используйте трюк с клавишей Escape в Terminal. Для поиска и экспорта списка в файл удобнее использовать compgen -ac (bash). Если ваша оболочка — zsh, выполните compgen внутри bash или применяйте эквиваленты zsh. Всегда проверяйте тип команды перед выполнением.
Заметки: метод с Escape полезен для быстрого обзора, compgen — для автоматизации и анализа.
Глоссарий в одну строку
- compgen — bash-билтин для генерации команд/алиасов/функций;
- built-in — команда, реализованная в самой оболочке;
- alias — короткая замена команды;
- PATH — список директорий, где оболочка ищет исполняемые файлы;
- zsh — оболочка по умолчанию в современных macOS.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента