Где $ 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 в окнах или наоборот
  • Получить текущий путь к папке
  • Как добавить собственную библиотеку в «java.library.path» с запуском Eclipse (вместо того, чтобы переопределять его)
  • Как я могу перечислить разрешения каждого компонента в пути к файлу?
  • Переменная окружения Deleted Path, как восстановить?
  • Компилятор Linux C
  • Где хранить скрипты bash, которые все пользователи могут выполнять на Debian?
  • Перепутала переменную $ PATH в Mac OS X
  • Eclipse - нет Java (JRE) / (JDK) ... нет виртуальной машины
  • Как добавить Python к пути Windows
  • Передача двух параметров команды с использованием привязки WPF
  • Interesting Posts

    Какую библиотеку CI / O следует использовать в коде на C ++?

    Существует ли средство шифрования томов системы Windows 7, позволяющее удаленную разблокировку через ssh во время фазы загрузки?

    Что такое служба CDPUserSvc?

    Аппаратное обеспечение USB и программное обеспечение

    Debian Wheezy без звука через выходное гнездо

    Сделайте аккорд USB-накопителя, как компакт-диск

    Мой приятельский список в Excel ушел

    Как SHA1 hash строку в Android?

    Алгоритм поиска наименьших прямоугольников для покрытия набора прямоугольников без перекрытия

    Как я могу смотреть боковое 3D-видео в 2D?

    Windows 7 – Быстрые приложения / переключатели окон, например, набрав имя приложения?

    POSTing ассоциация суб-ресурсов @OneToMany в Spring Data REST

    Плагин Firefox / Google Chrome для включения многосеансового просмотра

    Установите две разные версии одного и того же приложения на OSX?

    Не удается передать ssh на рабочий стол

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