Come posso aggiungere una directory al $PATH
in Ubuntu e rendere le modifiche permanenti?
Un percorso impostato in .bash_profile
sarà impostato solo in una shell di login bash (bash -l
).
Se metti il tuo percorso in .profile
sarà disponibile per tutta la tua sessione desktop. Questo significa che anche metacity lo userà.
Per esempio ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, potete controllare la variabile PATH di un processo guardando il suo ambiente in /proc/[pid]/environ
(sostituite [pid] con il numero da ps axf
). Per esempio usa grep -z "^PATH" /proc/[pid]/environ
.
bash
come shell di login non analizza .profile
se esiste o .bash_profile
o .bash_login
. Da man bash
:
cerca ~/.bash_profile, ~/.bash_login, e ~/.profile, in questo ordine, e legge ed esegue i comandi dal primo che esiste e che sia leggibile.
Vedi le risposte sotto per informazioni su .pam_environment
, o .bashrc
per le shell interattive non-login, o imposta il valore globalmente per tutti gli utenti mettendo uno script in /etc/profile.d/
o usa /etc/X11/Xsession.d/
per influenzare la sessione dei manager di visualizzazione.
Modifica .bashrc
nella tua home directory e aggiungi la seguente linea:
export PATH="/path/to/dir:$PATH"
Dovrai creare il tuo .bashrc
o fare logout/login (o riavviare il terminale) perché le modifiche abbiano effetto. Per creare il tuo .bashrc
, digita semplicemente
$ source ~/.bashrc
Aggiungerlo in .bashrc funzionerà, ma penso che il modo più tradizionale di impostare le variabili di percorso sia in .bash_profile aggiungendo le seguenti linee.
PATH=$PATH:/my/path/foo
export PATH
Secondo questo thread sembra che il comportamento di Ubuntu sia leggermente diverso da quello di RedHat e dei cloni.