it-swarm-eu.dev

Come impostare permanentemente $ PATH su Linux/Unix?

Sto cercando di aggiungere una directory al mio percorso in modo che rimanga sempre nel mio percorso Linux. Ho provato:

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

Funziona, tuttavia ogni volta che esco dal terminale e avvio una nuova istanza del terminale, questo percorso è perso e ho bisogno di eseguire nuovamente il comando export.

Come posso farlo in modo che questo sarà impostato in modo permanente?

700
Click Upvote

Devi aggiungerlo al tuo file ~/.profile o ~/.bashrc.

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

A seconda di quello che stai facendo, potresti anche voler collegare i link simbolici ai binari:

cd /usr/bin
Sudo ln -s /path/to/binary binary-name

Nota che questo non aggiornerà automaticamente il tuo percorso per il resto della sessione. Per farlo, dovresti eseguire:

source ~/.profile 
or
source ~/.bashrc
884
mpowered

In Ubuntu, modifica /etc/environment. Il suo unico scopo è quello di memorizzare le variabili ambientali. Originariamente la variabile $ PATH è definita qui . Si tratta di una copia dal mio file /etc/environment:

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

Quindi puoi semplicemente aprire questo file come root e aggiungere quello che vuoi.

Per risultati immediati, Esegui (prova come utente normale e root):

source /etc/environment && export PATH

AGGIORNARE:

Se usi zsh (a.k.a Z Shell), aggiungi questa riga subito dopo i commenti in /etc/zsh/zshenv:

source /etc/environment

Ho incontrato questo piccolo capriccio su Ubuntu 15.10, ma se il tuo zsh non sta ottenendo il correttoPERCORSO, questo potrebbe essere il motivo per cui

220
trve.fa7ad

Ci sono molti modi per farlo. La soluzione reale dipende dallo scopo.

I valori delle variabili vengono solitamente memorizzati in un elenco di assegnazioni o in uno script Shell eseguito all'inizio del sistema o della sessione utente. Nel caso dello script Shell è necessario utilizzare una sintassi Shell specifica.

Sistema largo

  1. /etc/environment Elenco di incarichi unici. Perfetto per aggiungere directory di sistema come /usr/local/something/bin a PATH variabile o definire Java_HOME.
  2. /etc/xprofile Script della shell eseguito durante l'avvio della sessione del sistema X Window. Questo viene eseguito per ogni utente che accede a X Window System. È una buona scelta per le voci PATH valide per ogni utente come /usr/local/something/bin. Il file è incluso in un altro script, quindi utilizza la sintassi della shell POSIX e non la sintassi della shell dell'utente.
  3. /etc/profile e /etc/profile.d/* Script della shell. Questa è una buona scelta per i sistemi solo Shell. Questi file sono letti solo dalle shell.
  4. /etc/<Shell>.<Shell>rc. Script di shell Questa è una scelta sbagliata perché è specifica per una singola shell.

Sessione utente

  1. ~/.pam_environment. Elenco di incarichi unici. Caricato da PAM all'inizio di ogni sessione utente irrilevante se si tratta di una sessione di sistema X Window o Shell. Non puoi fare riferimento ad altre variabili, tra cui HOME o PATH, quindi ha un uso limitato.
  2. ~/.xprofile Script di shell. Questo viene eseguito quando l'utente accede al sistema X Window System. Le variabili qui definite sono visibili ad ogni applicazione X. Scelta perfetta per estendere PATH con valori come ~/bin o ~/go/bin o definendo GOPATH o NPM_HOME specifici dell'utente. Il file è incluso in un altro script, quindi utilizza la sintassi della shell POSIX e non la sintassi della shell dell'utente. L'editor di testo grafico o IDE avviato dal collegamento vedrà quei valori.
  3. ~/.profile Script di shell. Sarà visibile solo per i programmi avviati dall'emulatore terminale o terminale. È una buona scelta per i sistemi solo Shell.
  4. ~/.<Shell>rc. Script di shell Questa è una scelta sbagliata perché è specifica per una singola shell.

Documentazione specifica di distribuzione

132
Grzegorz Żur

Metti la dichiarazione export in ~/.bashrc. Il mio .bashrc contiene questo:

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
68
Fraxtil

Puoi impostare $PATH in modo permanente in 2 modi.

  1. Per impostare il percorso per un particolare utente: Potrebbe essere necessario inserire la voce in .bash_profile nella directory home dell'utente.

    Ad esempio, nel mio caso imposterò il percorso Java nel profilo utente Tomcat

    [Tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/Tomcat/.bash_profile
    
  2. Per impostare un percorso comune per TUTTI gli utenti del sistema, potrebbe essere necessario impostare un percorso come questo:

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
    
29
Mohit M

Puoi usare su Centos o RHEL per l'utente locale:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

Questo aggiunge la directory corrente (o puoi usare un'altra directory) al PERCORSO, questo lo rende permanente ma ha effetto al successivo accesso dell'utente.

Se non vuoi eseguire un nuovo accesso, puoi utilizzare:

source ~/.bash_profile

Ricarica # User specific environment and startup programs questo commento è presente in .bash_profile

È possibile aggiungere tale riga al file di configurazione della console (ad esempio .bashrc) o al file .profile

6
aqua

Penso che il modo più elegante sia:

1.add questo in ~/.bashrc file Esegui questo comando

gedit ~/.bashrc

aggiungi il tuo percorso al suo interno 

export PATH = $ PATH:/opt/node/bin

2.source ~/.bashrc

(Ubuntu)

6
Himanshu sharma

Puoi anche impostare in modo permanente, modificando uno di questi file:

/etc/profile (per tutti gli utenti)

~/.bash_profile (per l'utente corrente)

~/.bash_login (per l'utente corrente)

~/.profile (per l'utente corrente)

Puoi anche usare /etc/environment per impostare una variabile d'ambiente PATH permanente, ma it non supporta l'espansione delle variabili

Estratto da: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html

6
Delucaramos

Ieri mi sono imbattuto in questa domanda mentre cercavo un modo per aggiungere una cartella contenente i miei script al PERCORSO - e sono stato sorpreso di scoprire che il mio file ~/.profile (su Linux Mint 18.1) conteneva già questo: 

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

Quindi, tutto quello che dovevo fare era creare la cartella ~/bin e mettere lì i miei script.

5
RobertG

i file in cui si aggiunge il comando di esportazione dipendono se si è in modalità login o non-login.

se si è in modalità login, i file che si cercano sono/etc/bash o /etc/bash.bashrc

se si è in modalità non-login, si sta cercando il file /.profile o i file all'interno della directory /.profiles.d

i file sopra menzionati se sono le variabili di sistema.

3
Dikinha

Zues77 ha l'idea giusta. L'OP non ha detto "come posso incappare in questo modo". OP voleva sapere come aggiungere in modo permanente a $ PATH:

Sudo nano /etc/profile

Questo è dove è impostato per tutto ed è il posto migliore per cambiarlo per tutte le cose che necessitano di $ PATH

3
Joe D

La mia risposta è in riferimento alla creazione di go-lang su Ubuntu linux/AMD64. Ho affrontato lo stesso problema di impostare il percorso delle variabili di ambiente (GOPATH e GOBIN), perdendolo all'uscita del terminale e ricostruendolo usando source <file_name> ogni volta. L'errore era di mettere il percorso (GOPATH e GOBIN) nella cartella ~/.bash_profile. Dopo aver perso alcune ore buone, ho trovato che la soluzione era mettere GOPATH e GOBIN nel file ~/.bash_rc nel modo seguente:

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

e così facendo, l'installazione di go funzionava bene e non c'erano perdite di percorso. 

EDIT 1: Il motivo per cui questo problema può essere correlato è che le impostazioni per shell non di login come il tuo terminale Ubuntu o gnome-terminal dove eseguiamo il codice go sono prese dal file ~./bash_rc e le impostazioni per le shell di login sono prese dal file ~/.bash_profile e dal file ~/.profile se il file ~/.bash_profile non è raggiungibile. 

3
Abhiroj Panwar

Aggiungi a /etc/profile.d script di cartella [name_of_script].sh con riga: export PATH=$PATH:/dir. Ogni script all'interno della cartella /etc/profile.d viene automaticamente eseguito da /etc/profile all'accesso.

2
Iurii

Aggiungi permanentemente variabile PATH

Globale:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

Locale (solo per utente):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

Per global restart. Per local relogin.

Esempio

Prima:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

Dopo:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

In alternativa puoi semplicemente modificare il profilo:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Un altro modo (grazie gniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

Non dovresti usare le virgolette qui! echo 'export PERCORSO = $ PERCORSO:/nuovo/percorso/variabile '... E a proposito, la parola chiave export è molto probabilmente inutile in quanto la variabile PATH è già molto probabile contrassegnato come esportato. - gniourf_gniourf

2
user3439968

Penso che il modo più elegante sia:

1.add questo in ~./Bashrc file

if [ -d "new-path" ]; then
  PATH=$PATH:new-path
fi

2.source ~/.bashrc

(Ubuntu)

1
Gimcuan Hui

Installazione rapida usando Homebrew

controlla questo video

passi sotto

Step 1:

Apri https://brew.sh/

 enter image description here

Copia l'URL mostrato nello screenshot above

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Incolla copia URL nel terminale e premi invio/invio chiave

Dopo aver fatto aver fatto con Homebrew installation follow Step 2:

Step 2:Scarica terraform da https://www.terraform.io/downloads.html

extract scaricato Zip terraform file 

Ora avrai un nome file terraform nella cartella scaricata

Per esempio

/Users/username/downloads/terraform

Step 3:

Apri un terminal

cd: cambia directory in /Users/username/downloads/terraform

Step 4:

runbrew install terraform nel terminal

1
Munish Kapoor

il modo migliore è la seguente:
PATH="<directory you want to include>:$PATH"
nel file .bashrc nella home directory.
Non verrà ripristinato anche se si chiude il terminale o si riavvia il PC. È permanente

1
Edward Torvalds

Per la distribuzione debian, devi:

    - edit ~/.bashrc  e.g: vim ~/.bashrc 
    - add export PATH=$PATH:/path/to/dir
    - then restart your computer. Be aware that if you edit ~/.bashrc  as root, your environment variable you added will work only for root
0
onlyme

un modo per aggiungere un percorso permanente, che ha funzionato per me, è: cd /etc/profile.d tocca custom.sh vi custom.sh export PATH = $ PATH:/percorso in base alle impostazioni / riavviare il computer e qui andiamo percorso ci sarà permanente evviva.

0
user6393373

1.modificare il file "/ etc/profile".

#vi /etc/profile

Premere il tasto "i" per accedere allo stato di modifica e spostare il cursore alla fine del file, voci aggiuntive:

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

Premere il tasto "Esc" per uscire dallo stato di modifica, ': wq' salvare il file.

2. Effettuare la configurazione efficace

source /etc/profile

Spiegare: il file di profilo funziona per tutti gli utenti, se vuoi essere valido solo per l'utente attivo, imposta il file ".bashrc"

0
Jia