Как установить переменную PATH в macOS
Выполнение программ через терминал на macOS — быстрый и гибкий способ автоматизировать и управлять задачами. Однако при запуске команд иногда появляется ошибка «command not found». Часто причина в том, что система не знает, где искать исполняемый файл. Решение — добавить директорию с этим файлом в переменную окружения PATH.

Ниже — подробное, практическое руководство: что такое PATH, как временно и постоянно добавить путь, как проверить результат, распространённые ошибки и рекомендации по безопасности и совместимости.
Что такое PATH — кратко
PATH — это переменная окружения, в которой хранится упорядоченный список директорий. Когда вы вводите имя команды, оболочка последовательно ищет исполняемый файл в этих директориях. Краткое определение: PATH — список каталогов, где оболочка ищет исполняемые файлы.
Почему важно настроить PATH
Если директория с нужной программой не включена в PATH, терминал выдаст «command not found» при попытке запустить команду простым именем. Вместо этого придётся постоянно указывать абсолютный путь:
/path/to/program/script.sh
Это неудобно при частом использовании. Добавление директории в PATH позволяет запускать программу просто по имени:
script.sh
Быстрая проверка текущего PATH
Откройте Terminal и выполните:
echo $PATHВы увидите список путей, разделённых двоеточиями. Пример вывода можно увидеть ниже.

Если нужная директория уже есть — ничего дополнительно делать не нужно.
Когда добавлять временно, а когда постоянно
- Временно: тестируете программу или нужен путь только в текущей сессии.
- Постоянно: регулярно используете программу и хотите иметь её доступной в любых новых сессиях и терминалах.
Временное добавление в PATH
Для текущей сессии выполните:
export PATH=$PATH:/absolute/path/to/program/directoryПример для Python 3.6 (путь указан для примера):
export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.6/binЭта команда добавит директорию в конец PATH на текущее время. После закрытия терминала изменения пропадут.
Постоянное добавление в PATH — общая схема
Чтобы PATH сохранялся между сессиями, нужно добавить строку экспорта в файл конфигурации вашей оболочки.
- Определите, какую оболочку вы используете:
echo $SHELL- Найдите подходящий конфигурационный файл:
- Для bash (старые macOS): ~/.bash_profile, ~/.bashrc
- Для zsh (macOS Catalina и новее): ~/.zshrc, ~/.zprofile
Примечание: macOS Terminal обычно запускает логин-shells, поэтому изменения в ~/.zprofile могут применяться сразу; ~/.zshrc отвечает за интерактивные сессии. Чтобы покрыть оба варианта, можно добавить строку в оба файла.
- Добавьте строку экспорта в файл. Пример с nano:
nano ~/.zshrcВставьте:
export PATH=$PATH:/path/to/directoryСохраните (Control+O, Enter), выйдите (Control+X).
- Примените изменения без перезапуска:
source ~/.zshrcПроверьте:
echo $PATHПрактические советы и примеры
- Добавление Homebrew в PATH (Apple Silicon и Intel):
- На Intel (обычно): /usr/local/bin
- На Apple Silicon (M1/M2): /opt/homebrew/bin
Пример для Apple Silicon:
echo 'export PATH=/opt/homebrew/bin:$PATH' >> ~/.zshrc
source ~/.zshrc- Добавление пользовательских скриптов (~/bin):
Создайте директорию и добавьте её в PATH:
mkdir -p ~/bin
echo 'export PATH=~/bin:$PATH' >> ~/.zshrc
source ~/.zshrc- Идempotентный способ добавить путь (не дублировать записи):
grep -qxF 'export PATH=/my/path:$PATH' ~/.zshrc || echo "export PATH=/my/path:\$PATH" >> ~/.zshrcЭтот приём проверяет, есть ли уже строка, и только тогда добавляет её.
Как найти абсолютный путь к программе
- Через Finder: нажмите правой кнопкой, удерживая Option (Alt), и выберите “Copy “имя” as Pathname” (Скопировать как путь). Затем вставьте в терминал.
- Через which или command -v:
which python3
command -v nodeЭти команды вернут путь к исполняемому файлу, если он уже доступен в PATH.
Частые ошибки и как их исправлять
- Изменения не применяются
- Убедитесь, что вы редактируете файл нужной оболочки (zsh vs bash).
- Выполните source соответствующего файла или закройте/откройте терминал.
- Изменения видны в терминале, но не в GUI-приложениях
- Приложения, запущенные через Finder или Dock, наследуют окружение от launchd, а не от shell. Для системного добавления используйте /etc/paths или /etc/paths.d, либо launchctl setenv (см. раздел «Когда это не работает»).
- Путь добавлен, но команда всё ещё не запускается
- Проверьте, что в указанной директории действительно есть исполняемый файл и у него есть права на исполнение:
ls -l /path/to/directory
chmod +x /path/to/directory/your-script- Нежелательное дублирование записей
- Используйте grep-проверку перед добавлением, как показано выше.
Когда добавление в PATH не решит проблему
- Если вы пытаетесь изменить переменные окружения для GUI-приложений, простая правка ~/.zshrc не поможет. Решения:
- Для системного пути редактируйте /etc/paths или добавьте файл в /etc/paths.d/ (требуются права sudo).
- Используйте launchctl для настройки переменных среды, которые наследуют GUI-процессы:
sudo launchctl config user path /custom/path:/usr/bin:/bin:/usr/sbin:/sbin(Изменения launchctl требуют осторожности и часто перезагрузки).
- Не стоит добавлять в PATH директории с неопределёнными или ненадёжными исполняемыми файлами: это угроза безопасности.
Безопасность и рекомендации
- Не добавляйте “.” (текущую директорию) в начало PATH — это риск исполнения нежелательных программ при работе в каталогах.
- Избегайте директорий с правами записи для других пользователей в начале PATH.
- Проверяйте содержимое директорий, которые добавляете.
Совместимость и особенности macOS
- Homebrew на Apple Silicon использует /opt/homebrew/bin; на Intel — /usr/local/bin.
- Системные пути задаются в /etc/paths и /etc/paths.d/. Эти файлы влияют на все пользователи.
- macOS Terminal может запускать логин-оболочки; для корректности лучше знать, какой файл считывается вашим терминалом: ~/.zprofile или ~/.zshrc.
Инструменты и альтернативные подходы
- Вместо ручного редактирования можно использовать менеджеры версий (pyenv, nvm, rbenv), которые управляют PATH автоматически.
- Для временных задач используйте alias или функции оболочки.
- Для системных установок используйте пакетные менеджеры (Homebrew) — они автоматически обновляют пути.

Решение проблем — пошаговый runbook
Ошибка: command not found
- Выполните
whichиcommand -v. - Если путь найден — проверьте права (
ls -l). - Если не найден — найдите расположение исполняемого файла и добавьте его в PATH.
- Выполните
PATH не загружается в новых окнах терминала
- Проверьте файл, который вы редактировали:
echo $SHELL. - Выполните
sourceдля соответствующего файла.
- Проверьте файл, который вы редактировали:
GUI-приложения не видят переменную
- Измените /etc/paths или /etc/paths.d, либо используйте launchctl и перезагрузите систему.
Ментальные модели и эвристики
- “Иерархия поиска”: оболочка перебирает каталоги в порядке, указанном в PATH. Чем раньше директория — тем приоритетнее.
- “Минимум прав — максимум безопасности”: добавляйте только те директории, в которых вы доверяете содержимому.
- “Временное против постоянного”: тестируйте временно, потом закрепляйте в конфиге.
Чеклист по ролям
Разработчик
- Проверить which/command -v
- Добавить ~/bin или проектные bin в PATH
- Обновить .zshrc/.bashrc, выполнить source
Системный администратор
- Управлять /etc/paths и /etc/paths.d
- Проверять launchctl для системных сервисов
- Документировать изменения
Новичок
- Создать ~/bin и добавить его в PATH
- Убедиться, что исполняемые файлы имеют права +x
- Перезапустить терминал
Критерии приёмки
- Команда запускается из любой директории без указания абсолютного пути.
- Изменение устойчиво после закрытия и повторного открытия терминала.
- GUI-приложения видят путь, если это требовалось (для этого применены системные изменения).
Decision — какой способ выбрать
flowchart TD
A[Нужно временно?] -->|Да| B[Использовать export в сессии]
A -->|Нет| C[Постоянно]
C --> D{Какая оболочка?}
D -->|zsh| E[Добавить в ~/.zshrc или ~/.zprofile]
D -->|bash| F[Добавить в ~/.bash_profile или ~/.bashrc]
E --> G[source файл или перезапуск]
F --> GТестовые случаи и приёмка
- Тест 1: Добавить ~/bin и положить туда исполняемый скрипт. Открыть новый терминал, выполнить имя скрипта.
- Тест 2: Добавить Homebrew путь и проверить, что команды brew-пакетов доступны.
- Тест 3: Добавить путь системно через /etc/paths, перезагрузить и убедиться, что GUI-приложения видят путь.
Часто задаваемые вопросы
Как установить переменную окружения в Catalina?
В macOS Catalina и выше по умолчанию используется zsh. Откройте ~/.zshrc или ~/.zprofile и добавьте строку экспорта нужного пути. Затем выполните source ~/.zshrc или перезапустите терминал.
Как навсегда задать PATH на Mac?
Добавьте строку export PATH=$PATH:/путь/к/директории в конфигурационный файл оболочки (~/.zshrc, ~/.zprofile, ~/.bash_profile или ~/.bashrc) в зависимости от используемой оболочки. Затем выполните source соответствующего файла или перезапустите терминал.
Как посмотреть текущий PATH на Mac?
В терминале выполните echo $PATH — оболочка выведет список директорий, разделённых двоеточиями.
Резюме
Добавление директорий в PATH упрощает запуск программ по имени без указания полного пути. Для временных задач используйте export в сессии; для постоянного эффекта вносите изменения в файл конфигурации вашей оболочки. Помните о безопасности, различиях между Intel и Apple Silicon и о том, что GUI-приложения наследуют окружение не от shell, а от launchd.
Короткий план действий:
- Найдите, где находится исполняемый файл (
which, Finder). - Для теста используйте
export PATH=.... - Для постоянного — добавьте
exportв ~/.zshrc или ~/.bash_profile. - Выполните
sourceили перезапустите терминал.

Важно: добавляйте в PATH только доверенные директории и избегайте риска, например, добавления “.” в начало PATH. Следуйте приведённым проверочным спискам и выполните тесты, чтобы убедиться в корректности изменений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента