GNU/Linux >> Linux Esercitazione >  >> Linux

Visualizzazione completa di dove è impostata la variabile Path in Bash?

Ho letto in un paio di punti che il PATH è impostato in /etc/profile o il .profile file che si trova nella home directory.

Sono questi gli unici luoghi in cui è impostato il percorso? Voglio una migliore comprensione.

Nel /etc/profile file, come dice il commento seguente "system-wide .profile file for the Bourne shell" . Significa che i file di profilo sono i principali file di configurazione per bash?

In quel file non vedo il PATH var essendo impostato affatto. Nel .profile file nella home directory c'è questa riga:

PATH="$HOME/bin:$PATH"

Questo è il ripristino di PATH dagli sguardi perché sta concatenando il già impostato $PATH stringa con $HOME/bin: giusto? Ma se etc/profile e ~/.profile sono gli unici file che impostano PATH dove è $PATH proveniente da quella riga di codice se non è definita in /etc/profile ?

Qualcuno esperto può fornire una spiegazione ampia e dettagliata del PATH variabile? Grazie!

Risposta accettata:

Ci sono molti posti in cui PATH può essere impostato.

Il login programma lo imposta su un valore predefinito. La modalità di configurazione di questo valore predefinito dipende dal sistema. Sulla maggior parte dei sistemi Linux non embedded, è preso da /etc/login.defs , con valori diversi per root e per altri utenti. Consulta il login(1) manuale sul tuo sistema per scoprire cosa fa.

Sui sistemi che utilizzano PAM, in particolare pam_env modulo, le variabili di ambiente possono essere impostate nel file a livello di sistema /etc/environment e il file per utente ~/.pam_environment .

Quindi la maggior parte dei modi per accedere (ma non i lavori cron) eseguono una shell di accesso che legge i file di configurazione a livello di sistema e per utente. Questi file possono modificare il valore di PATH , in genere per aggiungere voci ma a volte in altri modi. Quali file vengono letti dipendono da quale sia la shell di accesso. Le shell in stile Bourne/POSIX leggono /etc/profile e ~/.profile . Bash legge /etc/profile , ma per il file per utente legge solo il primo file esistente tra ~/.bash_profile , ~/.bash_login e ~/.profile . Zsh legge /etc/zshenv , ~/.zshenv , /etc/zprofile , ~/.zprofile , /etc/zlogin e ~/.zlogin . Molte sessioni della GUI organizzano il caricamento di /etc/profile e ~/.profile , ma questo dipende dal display manager, dall'ambiente desktop o da altri script di avvio della sessione e da come ogni distribuzione li ha impostati.


Linux
  1. Dove viene impostato il termine Default della variabile di ambiente?

  2. Dov'è il file Inittab?

  3. Variabile in Bash Script che mantiene il valore dall'ultima esecuzione

  4. Come ottengo la directory assoluta di un file in bash?

  5. Dove è impostata la variabile PATH in Ubuntu?

I 6 modi migliori per visualizzare i file in Linux

Visualizza il contenuto di un file nella riga di comando di Linux

Come impostare la variabile d'ambiente in Bash

Dov'è il file php.ini su un PC Linux/CentOS?

Dov'è impostata la variabile d'ambiente $HOME?

Dov'è la vista terminale di tty7