Come aggiungere una directory al PERCORSO?

622

Come faccio ad aggiungere una directory a $PATH in Ubuntu e rendere le modifiche permanenti?

    
posta justingrif 22.07.2009 - 22:42

17 risposte

395

Usando ~ / .profile per impostare $ PATH

Un percorso impostato in .bash_profile verrà impostato solo in una shell di login bash ( bash -l ). Se inserisci il tuo percorso in .profile sarà disponibile per la sessione desktop completa. Ciò significa che anche la metacity lo utilizzerà.

Ad esempio ~/.profile :

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw, puoi controllare la variabile PATH di un processo osservando il suo ambiente in /proc/[pid]/environ (sostituisci [pid] con il numero da ps axf ). Per esempio. usa grep -z "^PATH" /proc/[pid]/environ

Nota:

bash come shell di login non analizza .profile se esiste .bash_profile o .bash_login . Da man bash :

  

cerca ~ / .bash_profile, ~ / .bash_login e ~ / .profile, in quello   ordine e legge ed esegue comandi dal primo esistente   ed è leggibile.

Vedi le risposte di seguito per informazioni su .pam_environment , o .bashrc per shell interattive non di login, o imposta il valore globale per tutti gli utenti inserendo uno script in /etc/profile.d/ o usando /etc/X11/Xsession.d/ per influenzare la sessione di display manager.

    
risposta data ko-dos 23.07.2009 - 00:04
255

Modifica .bashrc nella tua home directory e aggiungi la seguente riga:

export PATH="/path/to/dir:$PATH"

Devi avere il tuo .bashrc o logout / login (o riavviare il terminale) affinché le modifiche abbiano effetto. Per generare il tuo .bashrc , digita semplicemente

$ source ~/.bashrc
    
risposta data Ophidian 22.07.2009 - 22:45
101

La posizione consigliata per definire variabili di ambiente permanenti, a livello di sistema applicabili a tutti gli utenti è in:

/etc/environment

(che è dove è definito il PATH predefinito)

Funzionerà su desktop o console, gnome-terminal o TTY, pioggia o sole;)

  • Per modificare, premi Alt + F2 e scrivi:

    gksudo gedit /etc/environment
    

    (o apri il file usando sudo nel tuo editor di testo preferito)

Per applicare le modifiche, esegui . /etc/environment . Poiché questo file è solo un semplice script, verrà eseguito e assegnerà il nuovo percorso alla variabile di ambiente PATH . Per verificare l'esecuzione di env e vedere il valore di PATH nell'elenco.

Related:

risposta data ish 31.07.2012 - 05:49
54

Penso che il modo canonico in Ubuntu sia:

  • crea un nuovo file sotto /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • aggiungi lì:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • e dargli il permesso di esecuzione

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    
risposta data woto 09.01.2010 - 02:31
44

Per i neofiti completi (come me) che sono più a loro agio con la GUI:

  1. Apri la cartella $HOME .
  2. Vai a Visualizza Mostra file nascosti o premi Ctrl + H .
  3. Fai clic destro su .profile e fai clic su Apri con editor di testo .
  4. Scorri fino in fondo e aggiungi PATH="$PATH:/my/path/foo" .
  5. Salva.
  6. Esci e accedi di nuovo per applicare le modifiche (lascia che Ubuntu carichi effettivamente .profile ).
risposta data dain 25.10.2011 - 00:05
40

Per variabili di ambiente persistenti disponibili solo per determinati utenti. Consiglio vivamente la documentazione ufficiale di Ubuntu.

link

In riferimento alla documentazione di cui sopra, ho configurato i miei strumenti per il percorso dell'SDK per Android di:

  1. creando ~/.pam_environment file nella directory home.
  2. il cui contenuto è PATH DEFAULT=${PATH}:~/android-sdk-linux/tools .
  3. percorso aggiuntivo personalizzato dell'utente può essere aggiunto separando i percorsi con due punti (:) .
  4. questo richiede re-login , il che significa che devi disconnetterti e accedere di nuovo all'ambiente desktop.
risposta data Eduardo B. 09.12.2012 - 00:07
25

Metti quella riga nel tuo file ~/.bashrc .

Viene acquisito ogni volta che apri un terminale

EDIT : basato sui commenti seguenti, per un'impostazione più generale che si applicherà a tutte le shell (anche quando si preme Alt - F2 in Unity), aggiungi la linea al tuo file ~/.profile . Probabilmente non dovresti fare entrambe le cose, poiché il percorso verrà aggiunto due volte al tuo ambiente PATH se apri un terminale.

    
risposta data Ian B. 31.07.2012 - 03:08
15

Per impostarlo a livello di sistema, aggiungi la riga export PATH=/path/you're/adding:$PATH alla fine di /etc/profile .

Per aggiungere la directory solo per l'utente loggato, aggiungi la stessa riga a ~/.bash_profile .

    
risposta data ennuikiller 23.07.2009 - 01:20
14

L'aggiunta a .bashrc funzionerà, ma penso che il modo più tradizionale di impostare le variabili del tuo percorso sia in .bash_profile aggiungendo le seguenti righe.

PATH=$PATH:/my/path/foo
export PATH

Secondo questo thread sembra che il comportamento di Ubuntu sia leggermente diverso da RedHat e cloni.

    
risposta data 3dinfluence 22.07.2009 - 22:58
9

Nel terminale, cd a the_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):${PATH}" >> ~/.bashrc

Questa non era la mia idea. Ho trovato questo modo per esportare il percorso in questo blog qui .

    
risposta data Vittorio Cecchetto 09.09.2012 - 00:44
8
sudo vi /etc/profile.d/SCRIPT_NAME.sh

aggiungi lì

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
    
risposta data Clipping Path 13.01.2011 - 19:44
6

Ogni volta che "installo" la mia cartella di script BASH, seguo lo schema del test per una cartella $HOME/bin che è nella maggior parte dei file .profile nelle versioni recenti di Ubuntu. Ho impostato un test che assomiglia a

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

Funziona solo il 100% delle volte e mi lascia libero di cambiarlo in un editor di testo della GUI con un rapido "Sostituisci tutto" se dovessi decidere di spostare /scripts da qualche parte più vicino alla mia cartella $HOME . Non l'ho fatto in 6 installazioni di Ubuntu, ma c'è "sempre domani". S

BZT

    
risposta data Silversleevesx 29.12.2011 - 03:25
4

Apri il tuo terminale, digita gedit .profile e inserisci quanto segue:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$PATH:$HOME/bin"
fi

 #the following line add Bin where you dont have a Bin folder on your $HOME
    PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"

Chiudi e apri il terminale, dovrebbe funzionare.

    
risposta data djavier 04.02.2013 - 20:09
3

Il modo consigliato di modificare PATH è da /etc/environment file

Esempio di output di /etc/environment :

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Ad esempio, per aggiungere il nuovo percorso di /home/username/mydir

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
  

Variabili di ambiente a livello di sistema

     

Un file adatto per le impostazioni delle variabili di ambiente che riguardano il sistema nel suo complesso (piuttosto che un singolo utente) è / etc / environment. Un'alternativa è creare un file per lo scopo nella directory /etc/profile.d.

     

/ etc / environment

     

Questo file è specificamente pensato per le impostazioni delle variabili di ambiente a livello di sistema. Non è un file di script, ma piuttosto è costituito da espressioni di assegnazione, una per riga.

     

Nota: l'espansione delle variabili non funziona in / etc / environment.

Maggiori informazioni possono essere trovate qui: EnvironmentVariables

    
risposta data Benny 08.11.2016 - 10:04
2

Mettilo nel tuo ~/.bashrc o in whatevershell usi rc (o in precedenza ~/.profile ) AND ~/.xsessionrc così funzionerà anche in X (fuori dalla shell).

    
risposta data Mikaela 01.08.2012 - 11:40
1

Anche se gli script di sistema non lo usano, in tutti i casi in cui si desidera aggiungere un percorso (ad esempio $HOME/bin ) alla variabile d'ambiente PATH, si dovrebbe usare

PATH="${PATH:+${PATH}:}$HOME/bin"

per l'aggiunta (anziché PATH="$PATH:$HOME/bin" ), e

PATH="$HOME/bin${PATH:+:${PATH}}"

per prepending (invece di PATH="$HOME/bin:$PATH" ).

Questo evita i due punti iniziali / finali spuri quando $PATH è inizialmente vuoto, il che può avere effetti indesiderati.

Vedi per es. link

    
risposta data sancho.s 05.01.2018 - 17:25
-1

Per Ubuntu modifica ~/.bashrc e aggiungi la seguente riga.

. ~/.bash_profile

Quindi modifica il tuo .bash_profile come ti serve .....

    
risposta data Vidula 19.11.2009 - 06:03

Leggi altre domande sui tag