Hvordan legger jeg til en katalog i $PATH
i Ubuntu og gjør endringene permanente?
En sti som er angitt i .bash_profile
vil bare bli angitt i et bash-påloggingsskall (bash -l
).
Hvis du setter banen din i .profile
, vil den være tilgjengelig for hele skrivebordsøkten din. Det betyr at selv metacity vil bruke den.
For eksempel ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Du kan forresten sjekke PATH-variabelen til en prosess ved å se på dens miljø i /proc/[pid]/environ
(erstatt [pid] med nummeret fra ps axf
). Bruk f.eks. grep -z "^PATH" /proc/[pid]/environ
.
bash
som påloggingsskall analyserer ikke .profile
hvis enten .bash_profile
eller .bash_login
finnes. Fra man bash
:
ser den etter ~/.bash_profile, ~/.bash_login og ~/.profile, i den rekkefølgen. rekkefølge, og leser og utfører kommandoer fra den første som finnes og er lesbar.
Se svarene nedenfor for informasjon om .pam_environment
, eller .bashrc
for interaktive ikke-påloggingsskall, eller angi verdien globalt for alle brukere ved å legge inn et skript i /etc/profile.d/
eller bruk /etc/X11/Xsession.d/
for å påvirke skjermbehandlingssesjonen.
Rediger .bashrc
i hjemmekatalogen din og legg til følgende linje:
export PATH="/path/to/dir:$PATH"
Du må kilde din .bashrc
eller logge ut/inn (eller starte terminalen på nytt) for at endringene skal tre i kraft. For å kilde din .bashrc
, skriv ganske enkelt inn
$ source ~/.bashrc
Å legge den til .bashrc vil fungere, men jeg tror den mer tradisjonelle måten å sette opp stivariablene dine er i .bash_profile ved å legge til følgende linjer.
PATH=$PATH:/my/path/foo
export PATH
Ifølge denne tråden ser det ut som om Ubuntu&# 39s oppførsel er litt annerledes enn RedHat og kloner.