Где $ PATH устанавливается в OS X 10.6 Snow Leopard?

Я набираю echo $PATH в командной строке и получаю

/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin

Мне интересно, где это делается, поскольку мой .bash_login файл пуст.

Я особенно обеспокоен тем, что после установки MacPorts он установил кучу мусора в /opt . Я не думаю, что этот каталог существует даже в обычной установке Mac OS X.

Обновление: благодаря jtimberman для исправления моего утверждения echo $PATH

8 Solutions collect form web for “Где $ PATH устанавливается в OS X 10.6 Snow Leopard?”

Когда bash запускается, он читает следующие файлы при каждом входе в систему. Для целей OS X это означает каждый раз, когда вы открываете новое окно Terminal .

 /etc/profile ~/.bash_profile ~/.bash_login (if .bash_profile does not exist) ~/.profile (if .bash_login does not exist) и /etc/profile ~/.bash_profile ~/.bash_login (if .bash_profile does not exist) ~/.profile (if .bash_login does not exist) 

Когда вы запускаете новую оболочку, введя bash в командной строке, она читает .bashrc

OS X также использует ~/.MacOSX/environment.plist для установки дополнительных переменных среды, включая пути, если это необходимо.

Наконец, /etc/paths и /etc/paths.d также читаются оболочкой.


/opt/local/bin и т. Д. Добавлены в ~/.tcshrc помощью MacPorts. Также обязательно посмотрите в ~/.cshrc .

Взгляните на файл /etc/paths , который используется /usr/libexec/path_helper , который используется /etc/profile .

Для MacPorts используйте sudo /etc/paths/opt/local/bin и снова закройте окно терминала.

Серьезно, Leopard дал нам новый способ добавить путь. Просто создайте файл, содержащий часть пути, которую вы хотите добавить, и поместите его в /etc/paths.d

Быстрый пример этого в один шаг:

 echo "/some/path/to/add" >> /etc/paths.d/somefilename 

В противном случае вы можете просто перейти в /etc/paths.d и поместить файл туда напрямую. В любом случае любые части пути в файлах в этом каталоге будут добавлены к пути по умолчанию.

Это также работает для manpath.

Вот ссылка на более подробную информацию:

Ars technica: как я могу что-то добавить к PATH в снежном барсе?

Во второй заметке: MacPorts помещает все в каталог opt именно потому, что он не используется материалами Apple. Таким образом, это не будет конфликтовать. Их руководство (отлично написанное, BTW) объясняет, почему оно использует opt и как изменить этот параметр по умолчанию, если хотите.

Руководство MacPorts

Чтобы показать свой путь, выполните echo $ PATH.

 echo $PATH 

Чтобы задать свой путь, отредактируйте файл ~/.bash_profile , а не ~/.bash_login .

Существует также путь, определяемый ssh .

Сравните echo $PATH с ssh localhost 'echo $PATH' . Поскольку ssh не читает / etc / profile, / usr / libexec / path_helper не запускается и, таким образом, пропускается / etc / paths. Теперь попробуйте ssh localhost 'source /etc/profile; echo $PATH' ssh localhost 'source /etc/profile; echo $PATH' . Пути должны быть ближе. Остальные различия, вероятно, будут связаны с изменением пути в вашем .bash_profile (который также пропускается ssh) и .bashrc (который читается ssh).

Если вы хотите, чтобы ваш путь ssh был похож на ваш обычный конечный путь, вы можете добавить source /etc/profile в ваш .bashrc.

Его можно определить в:

  • Системные переменные – /etc/paths
  • Пользовательские переменные – см. Объяснение @Steve Folly

На самом деле он сохраняется в вашем файле .profile вместо .bash_login и обычно считается, что MacPorts будет использовать это вместо файла .bash_login .

Также каталог /opt обычно создается MacPorts и хранит его файлы в этой папке.

Что касается документов для утилиты /usr/libexec/path_helper , начальные компоненты для $ PATH были взяты из /etc/paths и по умолчанию выглядят как

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

Для OS-X Snow Leopard

  • Такой же абсолютный путь на linux и windows 7
  • Возможные проблемы с добавлением / usr / local / bin к корневому пути?
  • Как я могу обновить установку Python по умолчанию или исправить мой $ PATH на Mac OS X 10.6.7?
  • Получить реальный путь от URI, Android KitKat новая система хранения данных
  • Где хранить скрипты bash, которые все пользователи могут выполнять на Debian?
  • Как получить путь к запущенному файлу JAR?
  • Как я могу перечислить разрешения каждого компонента в пути к файлу?
  • Eclipse - нет Java (JRE) / (JDK) ... нет виртуальной машины
  • Как настроить пользовательские переменные среды (например, PATH) из учетной записи не администратора для Windows 7
  • Interesting Posts

    VIMRC, SCREENRC, BASHRC, KSHRC и т. Д. Что означает «RC»?

    Как отправлять сообщения в stream STA с помощью насоса сообщений?

    Внешний жесткий диск вращается слишком рано

    Почему я не могу изменить параметр «При запуске» Chrome?

    Как отключить автоматическое открытие PDF-файлов в chrome

    Ключ Windows продолжает «застревать»,

    Соответствуют ли скобки после имени типа с новым?

    Как удалить параметр выхода из окна Windows XP shutdown?

    Отключить приглашение администратора сервера Mac OS X?

    Установка нескольких переменных среды в оболочке, созданной через пакетный скрипт Windows

    Подключение mysql через 127.0.0.1 вместо localhost

    Как найти драйверы, нарушающие применение цифровой подписи в Windows 7 64bit

    Зеленые мерцающие пиксели, которые движутся с черными изображениями

    Как создать резервную копию профиля пользователя и восстановить его в Windows 7?

    Маршрутизация определенной подсети в туннель VPN

    Давайте будем гением компьютера.