Где $ 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 с помощью смайликов?
  • Как отправить F9-F12 в программу curses, запущенную внутри Terminal.app?
  • Мне интересно, где это делается, поскольку мой .bash_login файл пуст.

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

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

  • Bash в Windows 10 - Каталоги, не появляющиеся при создании в Проводнике файлов
  • Сценарий Bash & 'su', дающий ошибку «стандарт должен быть tty»,
  • Удалить или переименовать файл с \ r в качестве имени файла
  • Как я могу найти историю bash и повторить команду?
  • Где находится каталог bash Windows в Windows?
  • Как cd в каталог, содержащий пробел в его имени?
  • 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

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