Де встановлена ​​загальносистемна змінна $ PATH?


10

Я використовую Ubuntu Desktop 14.04, і як такий я використовую оболонку без входу. Коли я відкриваю термінал GUI, спочатку сеанси оболонки без входу читають такі файли запуску:

/etc/bash.bashrc
~/.bashrc

Оболонки без входу успадковують середовище від батьківського процесу, який є оболонкою для входу, тому сеанс також читає такі файли запуску:

/etc/profile
~/.bash_profile

Тим НЕ менше, я не можу знайти $PATHдля загальносистемних шляху подобається /bin, /sbin, /usr/bin, /usr/sbin, встановити в будь-який з цих файлів. Де $PATHнабір цих каталогів?

Відповіді:


16

У файлі PATHвстановлена система (за замовчуванням) /etc/environment.

$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

В основному це місце для збереження глобальних змінних середовища.


+1, однак чи трапляється вам знати, чи $PATHпередається він у спадок від батьківської оболонки для входу чи вона перезавантажується кожним bashекземпляром?
кос

@kos Усі дочірні процеси успадковують середовище від батьківської оболонки, якщо, звичайно, не працювати в зміненому середовищі ..
heemayl

Я помічаю, що оболонка, схоже, не розширює $HOMEзмінну. Наприклад, додавання $HOME/.composer/vendor/binдо PATHin /etc/environmentне дозволяє виконувати бінарні файли в цьому каталозі без префіксу шляху. Використання ~/.composer/vendor/binтакож не працює. Я знаходжу , що це необхідно , щоб додати абсолютний шлях, наприклад: /home/vagrant/.composer/vendor/bin. Це здається пов'язаним (хоча це не пояснює цю поведінку): askubuntu.com/questions/402353/…
Бен Джонсон,

2
@BenJohnson Це просто тому, що /etc/environment~/.pam/environment) читається pam_envмодулем PAM, а не оболонкою або чим-небудь іншим, що розуміє змінні оболонки / середовища; те саме стосується ~розширення. Отже, вам потрібно використовувати абсолютний шлях туди.
heemayl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.