Jak dodać katalog do $PATH
w Ubuntu i wprowadzić zmiany na stałe?
Ścieżka ustawiona w .bash_profile
będzie ustawiona tylko w powłoce logowania bash (bash -l
).
Jeśli umieścisz swoją ścieżkę w .profile
, będzie ona dostępna dla całej sesji pulpitu. Oznacza to, że nawet metacity będzie jej używać.
Na przykład ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, możesz sprawdzić zmienną PATH procesu patrząc na jego środowisko w /proc/[pid]/environ
(zamień [pid] na numer z ps axf
). Np. użyj grep -z "^PATH" /proc/[pid]/environ
.
bash
jako powłoka logowania nie parsuje .profile
jeśli istnieje .bash_profile
lub .bash_login
. Z man bash
:
szuka ~/.bash_profile, ~/.bash_login, i ~/.profile, w tej kolejności, oraz czyta i wykonuje polecenia z pierwszego, które istnieje i jest czytelny.
Zobacz odpowiedzi poniżej by uzyskać informacje o .pam_environment
, lub .bashrc
dla interaktywnych powłok niezalogowanych, lub ustaw wartość globalnie dla wszystkich użytkowników przez umieszczenie skryptu w /etc/profile.d/
lub użycie /etc/X11/Xsession.d/
by wpłynąć na sesję menedżerów wyświetlania.
Edytuj .bashrc
w swoim katalogu domowym i dodaj następującą linię:
export PATH="/path/to/dir:$PATH"
Aby zmiany weszły w życie, będziesz musiał pobrać swój .bashrc
lub wylogować się/login (lub zrestartować terminal). Aby pobrać swój .bashrc
, po prostu wpisz
$ source ~/.bashrc
Dodanie go do .bashrc będzie działać, ale myślę, że bardziej tradycyjny sposób ustawiania zmiennych ścieżki jest w .bash_profile przez dodanie następujących linii.
PATH=$PATH:/my/path/foo
export PATH
Według tego wątku wygląda na to, że Ubuntu's zachowanie jest nieco inne niż RedHat i klonów.