Где установлена ​​общесистемная переменная $ PATH?


10

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

/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.