macOS zsh_cmd_nfСредняя

Ошибка 'command not found' в zsh: как исправить на macOS

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

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:macOS 10.15+zsh 5.0+

Что означает ошибка 'command not found' в zsh

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

zsh: command not found: имя_команды

Она появляется в терминале macOS при вводе команды, которая либо не установлена в системе, либо её путь не прописан в переменной окружения PATH. Это распространённая проблема при настройке нового Mac или после установки дополнительных инструментов.

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

  1. Команда не установлена — вы пытаетесь запустить утилиту, которую ещё не добавили в систему (например, git, node, docker).
  2. Путь к команде отсутствует в PATH — команда установлена, но директория с её исполняемым файлом не добавлена в переменную PATH.
  3. Опечатка в имени команды — случайная ошибка при вводе (например, gti вместо git).
  4. Конфликт оболочек — команда настроена только для bash (через ~/.bash_profile), но не для zsh.
  5. Повреждение кэша zsh — иногда zsh не обновляет список доступных команд после установки нового ПО.

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

Первым делом убедитесь, что команда вообще присутствует в системе.

  1. Используйте which или type для поиска:
    which имя_команды
    

    Если команда найдена, вы увидите полный путь к исполняемому файлу (например, /usr/local/bin/git). Если нет — команда не установлена.
  2. Установите команду, если её нет:
    • Через Homebrew (рекомендуется):
      brew install имя_пакета
      
    • Через MacPorts:
      sudo port install имя_пакета
      
    • Или скачайте установщик с официального сайта (например, для Git).

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

Если команда установлена, но which не находит её, проблема в переменной PATH.

  1. Просмотрите текущий PATH:
    echo $PATH
    

    Вывод будет списком директорий, разделённых двоеточиями (например, /usr/local/bin:/usr/bin:/bin).
  2. Найдите, где установлена команда:
    sudo find / -name "имя_команды" 2>/dev/null
    

    Это покажет все файлы с таким именем. Обычно пользовательские утилиты хранятся в /usr/local/bin или ~/bin.
  3. Добавьте недостающую директорию в PATH:
    • Откройте файл конфигурации zsh (обычно ~/.zshrc):
      nano ~/.zshrc
      
    • Добавьте строку (замените /путь/к/директории на найденный путь):
      export PATH=$PATH:/путь/к/директории
      
    • Сохраните файл (Ctrl+O, Enter, Ctrl+X) и примените изменения:
      source ~/.zshrc
      
  4. Проверьте, что команда теперь работает:
    which имя_команды
    

Способ 3: Проверьте опечатки и регистр

Иногда ошибка возникает из-за простой опечатки. Убедитесь, что команда написана правильно:

  • Регистр имеет значение: Gitgit.
  • Нет ли лишних символов или пробелов.
  • Для проверки используйте type:
    type имя_команды
    
    Если команда не найдена, zsh покажет ошибку. Если найдена — выведет тип (alias, function, builtin и т.д.).

Способ 4: Переустановите команду через менеджер пакетов

Если команда была установлена через Homebrew или MacPorts, но перестала работать, попробуйте переустановить:

  • Homebrew:
    brew reinstall имя_пакета
    brew cleanup  # удаляет старые версии
    
  • MacPorts:
    sudo port upgrade имя_пакета
    

После переустановки проверьте PATH (Способ 2) — иногда менеджеры пакетов добавляют пути автоматически.

Способ 5: Обновите кэш оболочки

Zsh кэширует расположение команд. Если вы установили новую утилиту, но zsh её не видит, обновите кэш:

  1. Выполните rehash:
    rehash
    

    Это принудительно обновит список команд.
  2. Или перезапустите терминал — иногда достаточно просто закрыть и снова открыть окно терминала.
  3. Если проблема осталась, проверьте, нет ли конфликта с файлами конфигурации:
    • Убедитесь, что в ~/.zshrc нет ошибок (можно проверить через zsh -n ~/.zshrc).
    • Временно переименуйте ~/.zshrc (например, в ~/.zshrc.backup) и перезапустите zsh. Если ошибка исчезла — проблема в конфигурации.

Способ 6: Используйте полный путь к команде (временное решение)

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

/полный/путь/к/имя_команды [аргументы]

Например:

/usr/local/bin/python3 --version

Чтобы узнать полный путь, используйте which (если команда установлена) или find (см. Способ 2).

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

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

  1. Устанавливайте команды через Homebrew — он автоматически настраивает PATH для zsh.
  2. Проверяйте PATH после установки нового ПО — убедитесь, что директория с бинарниками добавлена.
  3. Используйте ~/.zshrc для настроек — не редактируйте ~/.bash_profile (он не влияет на zsh).
  4. Регулярно обновляйте Homebrew и пакеты:
    brew update && brew upgrade
    
  5. Не удаляйте системные директории из PATH — оставьте стандартные значения (/usr/bin, /bin, /usr/sbin, /sbin).

Если проблема возникает с конкретной командой, проверьте её документацию — некоторые утилиты требуют дополнительных шагов настройки.

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

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

Полезное

Проверьте, установлена ли команда
Проверьте переменную PATH
Добавьте путь в PATH
Переустановите команду