GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare in modo permanente $ PATH su Linux/Unix?

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

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

A seconda di ciò che stai facendo, potresti anche voler collegare simbolicamente ai binari:

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

Tieni presente che questo non aggiornerà automaticamente il tuo percorso per il resto della sessione. Per fare ciò, dovresti eseguire:

source ~/.profile 
or
source ~/.bashrc

In Ubuntu, modifica /etc/environment . Il suo unico scopo è memorizzare le variabili d'ambiente . Originariamente la variabile $PATH è definita qui.

Questa è una copia del mio /etc/environment file:

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 immediato risultati,

Esegui (prova come utente normale e radice):

source /etc/environment && export PATH

Se usi la shell Z (zsh ), aggiungi questa riga subito dopo i commenti in /etc/zsh/zshenv file:

source /etc/environment

Ho riscontrato questa piccola stranezza su Ubuntu 15.10 (Wily Werewolf), ma se il tuo zsh non riceve il PATH corretto , questo potrebbe essere il motivo.


Ci sono diversi modi per farlo. La soluzione effettiva dipende dallo scopo.

I valori delle variabili sono generalmente memorizzati in un elenco di assegnazioni o in uno script di shell che viene eseguito all'avvio del sistema o della sessione utente. Nel caso dello script di shell devi usare una specifica sintassi di shell e export o set comandi.

A livello di sistema

  1. /etc/environment Elenco di incarichi univoci. Consente referenze. Perfetto per aggiungere directory a livello di sistema come /usr/local/something/bin a PATH variabile o definendo JAVA_HOME . Utilizzato da PAM e systemd.

  2. /etc/environment.d/*.conf Elenco di incarichi univoci. Consente referenze. Perfetto per aggiungere directory a livello di sistema come /usr/local/something/bin a PATH variabile o definendo JAVA_HOME . La configurazione può essere suddivisa in più file, solitamente uno per ogni strumento (Java, Go e Node.js). Utilizzato da systemd che per impostazione predefinita non passa questi valori alle shell di login degli utenti.

  3. /etc/xprofile Script di shell eseguito durante l'avvio della sessione di X Window System. Questo viene eseguito per ogni utente che accede a X Window System. È una buona scelta per PATH voci valide per ogni utente come /usr/local/something/bin . Il file è incluso da altri script, quindi usa la sintassi della shell POSIX e non la sintassi della tua shell utente.

  4. /etc/profile e /etc/profile.d/* Script di shell. Questa è una buona scelta per i sistemi solo shell. Questi file vengono letti solo dalle shell in modalità login.

  5. /etc/<shell>.<shell>rc . Script di shell. Questa è una scelta sbagliata perché è specifica per singolo guscio. Utilizzato in modalità senza accesso.

Sessione utente

  1. ~/.pam_environment . Elenco di incarichi univoci, non sono consentiti riferimenti. Caricato da PAM all'inizio di ogni sessione utente irrilevante se si tratta di una sessione o di una shell del sistema X Window. Non puoi fare riferimento ad altre variabili tra cui HOME o PATH quindi ha un uso limitato. Utilizzato da PAM.

  2. ~/.xprofile Script di shell. Questo viene eseguito quando l'utente accede al sistema X Window System. Le variabili qui definite sono visibili a ogni applicazione X. Scelta perfetta per estendere PATH con valori come ~/bin o ~/go/bin o definire GOPATH specifico dell'utente o NPM_HOME . Il file è incluso da altri script, quindi usa la sintassi della shell POSIX e non la sintassi della tua shell utente. Il tuo editor di testo grafico o IDE avviato tramite scorciatoia vedrà questi valori.

  3. ~/.profile , ~/.<shell>_profile , ~/.<shell>_login Script di shell. Sarà visibile solo per i programmi avviati dal terminale o dall'emulatore di terminale. È una buona scelta per i sistemi solo shell. Utilizzato dalle shell in modalità login.

  4. ~/.<shell>rc . Script di shell. Questa è una scelta sbagliata perché è specifica per singolo guscio. Utilizzato dalle shell in modalità non di accesso.

Note

GNOME su Wayland avvia una shell di accesso utente per ottenere l'ambiente. Utilizza efficacemente le configurazioni della shell di login ~/.profile , ~/.<shell>_profile , ~/.<shell>_login file.

Pagine man

  • ambiente
  • environment.d https://linux.die.net/man/1/environment.d
  • bash
  • trattino

Documentazione specifica della distribuzione

  • Ubuntu
  • Arch Linux

Differenza tra shell di login e shell non di login?


Linux
  1. Come impostare la tua variabile $PATH in Linux

  2. Scopri come impostare le variabili $PATH in modo permanente in Linux

  3. Come impostare in modo permanente $ PATH in Linux

  4. Come impostare/creare variabili di ambiente e shell in Linux

  5. Android - Come si configura il pass-through Internet (reverse-tether) su Linux?

Come impostare un Cron Job in Linux

Come aggiungere una directory a PATH in Linux

Come impostare o modificare il nome host su Linux

Come eseguire il debug di script Bash in Linux e Unix

Come modificare una shell utente in Linux

Come impostare permanentemente $ PATH nel sistema Linux