macOSСредняя

Command not found в macOS: причины и 5 способов исправить

Статья объясняет, почему в macOS появляется ошибка 'command not found', и предлагает проверенные способы её решения: от настройки переменной PATH до установки пакетов через Homebrew.

Обновлено 17 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:macOS Sonoma 14macOS Ventura 13macOS Monterey 12zshbash

Что означает ошибка "command not found"

Ошибка command not found (на русском: "команда не найдена") возникает, когда операционная система macOS не может locate (найти) исполняемый файл команды, которую вы пытаетесь запустить в терминале. Она обычно выглядит так:

zsh: command not found: git

или

bash: git: command not found

Эта ошибка означает, что система проверила все директории, перечисленные в переменной окружения PATH, но не обнаружила в них исполняемого файла с указанным именем. Она может появиться при попытке запуска любой команды — от стандартных утилит (git, python, node) до ваших собственных скриптов.

Причины возникновения

  1. Команда не установлена. Самая частая причина — требуемое программное обеспечение (например, Git, Python, Node.js) просто не установлено в системе.
  2. Команда не находится в PATH. Исполняемый файл существует, но директория, в которой он расположен, не включена в переменную PATH. Это часто случается с программами, установленными вручную (например, в /usr/local/bin или ~/bin).
  3. Ошибка в написании команды. Простая опечатка или использование неверного регистра символов (хотя в macOS обычно нечувствительно к регистру, но некоторые утилиты могут быть).
  4. Проблемы с конфигурацией оболочки. Файлы конфигурации (~/.zshrc, ~/.bash_profile, ~/.profile) повреждены или содержат ошибки, из-за чего PATH не задаётся корректно.
  5. Команда установлена, но путь не экспортирован. Некоторые установщики (например, через pip install --user) помещают бинарники в ~/.local/bin, но не добавляют этот путь в PATH автоматически.

Способ 1: Проверьте правильность написания команды

Перед глубоким погружением убедитесь, что вы не сделали опечатку. macOS чувствителен к пробелам и специальным символам. Также проверьте, что команда действительно существует, с помощью утилит type или which:

type git

Если команда не найдена, вы увидите ту же ошибку. Если найдена — вы узнаете её полный путь и тип (алиас, функция, исполняемый файл).

Способ 2: Установите недостающую команду

Если команда не установлена, установите её. Рекомендуемый способ для macOS — менеджер пакетов Homebrew:

  1. Если Homebrew не установлен, установите его согласно официальной инструкции.
  2. Установите нужный пакет. Например, для Git:
    brew install git
    
  3. После установки команда должна сразу стать доступной. Если нет — перейдите к Способу 3.

Для некоторых утилит (например, python3) можно использовать официальные установщики с сайта разработчика или pip (для Python-пакетов).

Способ 3: Проверьте и настройте переменную PATH

Переменная PATH — это список директорий, где система ищет исполняемые файлы. Посмотрите её текущее значение:

echo $PATH

Вывод будет похож на:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Как добавить директорию в PATH

Если вы знаете, где находится исполняемый файл (например, which git показал /usr/local/bin/git), а этой директории нет в PATH, добавьте её:

  1. Определите, какую оболочку вы используете:
    echo $SHELL
    
    • /bin/zsh — zsh (по умолчанию с macOS Catalina)
    • /bin/bash — bash
  2. Откройте соответствующий конфигурационный файл в текстовом редакторе (например, nano или vim):
    • Для zsh: nano ~/.zshrc
    • Для bash: nano ~/.bash_profile или ~/.profile
  3. В конце файла добавьте строку (замените /ваш/путь на нужный):
    export PATH="/ваш/путь:$PATH"
    

    Важно: :$PATH в конце сохраняет существующие пути.
  4. Сохраните файл (Ctrl+O, Enter) и закройте редактор (Ctrl+X).
  5. Примените изменения без перезагрузки терминала:
    source ~/.zshrc   # для zsh
    # или
    source ~/.bash_profile   # для bash
    
  6. Проверьте, что путь добавился:
    echo $PATH
    

Способ 4: Перезагрузите оболочку или терминал

Иногда изменения в конфигурационных файлах не применяются автоматически к текущей сессии терминала. После редактирования ~/.zshrc или ~/.bash_profile выполните:

exec $SHELL

Эта команда перезапускает текущую оболочку, загружая обновлённые настройки. Альтернативно — просто закройте окно терминала и откройте новое.

Способ 5: Переустановите проблемную команду

Если команда установлена, но исполняемый файл повреждён или имеет неверные права доступа, переустановите её:

  • Через Homebrew:
    brew reinstall <пакет>
    

    Например: brew reinstall git.
  • Через pip (для Python-пакетов):
    pip install --user --upgrade --force-reinstall <пакет>
    
  • Системные утилиты (например, ls, cp) обычно не требуют переустановки. Если они сломаны, возможно, потребуется восстановление системы или переустановка macOS.

Профилактика

Чтобы избежать ошибки command not found в будущем:

  1. Используйте Homebrew для установки CLI-утилит. Он автоматически управляет путями и зависимостями.
  2. Регулярно проверяйте PATH. Убедитесь, что в нём есть стандартные системные пути (/usr/bin, /bin, /usr/sbin, /sbin) и пути к установленным вами программам (/usr/local/bin, ~/.local/bin).
  3. Не удаляйте файлы вручную из /usr/local/bin или других системных директорий. Это может сломать ссылки.
  4. Для языковых пакетов (Python, Node.js) используйте виртуальные окружения (venv, nvm), чтобы изолировать зависимости и управлять путями.
  5. Перед выполнением команды проверьте её наличие через which или type, особенно если вы вводите её впервые.

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

Часто задаваемые вопросы

Почему в macOS возникает ошибка 'command not found'?
Как проверить, добавлена ли команда в PATH?
Что делать, если команда установлена, но всё равно не работает?
Как добавить новый путь в переменную PATH на постоянной основе?

Полезное

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