Używam Ubuntu Desktop 14.04 i jako taki używam powłoki niezalogowanej. Kiedy otwieram terminal GUI, najpierw sesje powłoki niezalogowane czytają następujące pliki startowe:
/etc/bash.bashrc
~/.bashrc
Powłoki bez logowania dziedziczą środowisko z procesu nadrzędnego, który jest powłoką logowania, więc sesja odczytuje również następujące pliki startowe:
/etc/profile
~/.bash_profile
Jednak nie mogę znaleźć $PATH
dla całego systemu ścieżek podoba /bin
, /sbin
, /usr/bin
, /usr/sbin
, mieszczący się w żadnej z tych plików. Gdzie jest $PATH
zestaw tych katalogów?
command-line
bash
Donato
źródło
źródło
$PATH
jest dziedziczony przez nadrzędną powłokę logowania, czy też jest przeładowywany przez każdąbash
instancję?$HOME
zmiennej. Na przykład dodanie$HOME/.composer/vendor/bin
doPATH
in/etc/environment
nie pozwala na uruchomienie plików binarnych w tym katalogu bez prefiksu ścieżki. Korzystanie~/.composer/vendor/bin
również nie działa. Uważam za konieczne dodanie ścieżki bezwzględnej, np/home/vagrant/.composer/vendor/bin
. : . Wydaje się to powiązane (choć nie wyjaśnia tego zachowania): askubuntu.com/questions/402353/…/etc/environment
(i~/.pam/environment
) jest odczytywany przezpam_env
moduł PAM, a nie powłokę lub cokolwiek innego, co rozumie zmienne powłoki / środowiska; to samo dotyczy~
ekspansji. Musisz więc użyć absolutnej ścieżki.