zsh: command not found: имя
#Что значит
Оболочка ищет команду в каталогах, перечисленных в переменной PATH. Если команды в них нет, выдаётся command not found. Причин три: программа не установлена; установлена, но её каталог не добавлен в PATH; в имени ошибка или другая регистр (macOS различает регистр в командах). На Apple Silicon типичный случай: brew или установленная им программа не находятся, пока в профиль не добавлена строка с brew shellenv.
#Причины по ситуации
| Возможная причина | Как узнать | Что делать |
|---|---|---|
Homebrew не в PATHApple Silicon использует /opt/homebrew/bin. | brew: command not found. | Добавьте brew shellenv в ~/.zprofile. |
| Не установлена программаНет в системе. | which пусто. | brew install или установщик с сайта разработчика. |
| Установка без перезапуска терминалаPATH обновляется при запуске оболочки. | Команда не видна в старом окне. | Откройте новое окно. |
| nvm, pyenv, rbenvМенеджеры версий не инициализированы. | Команда пропадает. | Добавьте инициализацию в ~/.zshrc по их инструкции. |
Переменная PATH перезаписанаВ профиле export PATH=... без $PATH. | Пропали стандартные команды (ls, cat). | Исправьте на export PATH="новый:$PATH". |
| Кириллица в имени или символКопирование из документа. | Команда с «умными» кавычками или дефисом. | Вводите вручную простые символы. |
#Диагностика
- Проверьте написаниеЕсли Терминал сообщает
zsh: command not found: ..., скопируйте точное имя команды и убедитесь, что оно написано без лишних пробелов, кавычек и неправильного регистра. В macOS многие команды чувствительны к регистру;Nodeиnodeразличаются. Проверьте, не вставили ли вы текст приглашения терминала$или условноеимяиз примера — их вводить не нужно. - Проверьте, где командаОткройте «Терминал» → введите
command -v node(заменитеnodeфактической командой). Если программа найдена, вы увидите путь к исполняемому файлу; если вывода нет, команда отсутствует в текущемPATH. Дополнительно можно выполнитьtype -a node, чтобы увидеть несколько установок. Не устанавливайте второй экземпляр программы прежде, чем выясните наличие первого. - Поищите файлЕсли программа установлена, но оболочка её не находит, выясните каталог через Finder → «Программы» или штатную команду установленного менеджера пакетов (
brew list --versions node, если Homebrew работает). Для известных системных префиксов допустимо проверить конкретный файлls -l /opt/homebrew/bin/node /usr/local/bin/node 2>/dev/null. Не запускайте рекурсивныйfindпо всему диску без необходимости и не скачивайте исполняемые файлы из поисковой выдачи. - Посмотрите PATHВ том же терминале выполните
printf "%s\n" "$PATH" | tr ':' '\n'. Сравните список каталогов с фактическим местом исполняемого файла. На Apple Silicon Homebrew обычно использует/opt/homebrew/bin, на Intel —/usr/local/bin; оболочка может иметь другой путь при входе по SSH или из редактора. Если нужный каталог отсутствует, переходите к его настройке, а не изменяйте права на файл. - Добавьте каталог в профильДля Homebrew на Apple Silicon при существующем файле
/opt/homebrew/bin/brewоткройтеnano ~/.zprofile, добавьте один разeval "$(/opt/homebrew/bin/brew shellenv)", сохраните Ctrl+O → Enter → Ctrl+X. Для личного каталога$HOME/.local/binпри необходимости добавьтеexport PATH="$HOME/.local/bin:$PATH"в~/.zshrc. Это разные сценарии, выбирайте только соответствующий настоящей установке. Сделайте копию профиля перед изменением. - Выберите способ в командной строке или терминалеЕсли предыдущие действия не помогли, прочитайте назначение каждого варианта ниже. Не выполняйте их все подряд: выбирайте только соответствующий вашей ситуации.
- Установите программу, если её нетЕсли программы действительно нет, откройте её официальный сайт или при настроенном Homebrew найдите формулу
brew info nodeи только затем выполнитеbrew install node, если это именно нужный пакет. После установки проверьтеcommand -v nodeиnode --version. Не вводите буквальноbrew install имя:имя— обозначение для вашего реального пакета, а не существующее название.
Если PATH стал пустым и даже ls не работает, временно вызовите команды полным путём (/bin/ls) или выполните export PATH=/usr/bin:/bin:/usr/sbin:/sbin, затем исправьте файл профиля. Проверьте также, нет ли команды, объявленной алиасом или функцией: type имя покажет это.