"Una shell di login interattiva viene avviata dopo un login riuscito, usando / bin / login, leggendo il file / etc / passwd. Questa chiamata della shell normalmente legge / etc / profile e il suo equivalente privato ~ / .bash_profile all'avvio.
Una shell interattiva non di accesso viene normalmente avviata dalla riga di comando utilizzando un programma shell (ad esempio, [prompt] $ / bin / bash) o dal comando / bin / su. Una shell interattiva non di accesso viene anche avviata con un programma terminale come xterm o konsole da un ambiente grafico. Questo tipo di invocazione della shell normalmente copia l'ambiente genitore e quindi legge il file ~ / .bashrc dell'utente per ulteriori istruzioni sulla configurazione di avvio. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Pertanto non metterei le variabili di ambiente in bashrc, perché non è solo contro una convenzione comune, ma mancherete anche le vostre variabili bashrc quando invocate un terminale da un ambiente desktop grafico.
Su Redhat nel /etc/profile
ho trovato questo commento:
"Gli alias e le funzioni di sistema dovrebbero andare in / etc / bashrc. Le variabili di ambiente personale e i programmi di avvio dovrebbero andare in ~ / .bash_profile. Gli alias e le funzioni personali dovrebbero andare in ~ / .bashrc."
Quindi, se si desidera impostare le variabili di ambiente su base utente, farlo nel file .bash_profile dell'utente.
Dirigendosi verso l' .bash_profile
ho letto:
"Variabili d'ambiente personali e programmi di avvio.
Gli alias e le funzioni personali dovrebbero andare in ~ / .bashrc. Le variabili di ambiente di sistema e i programmi di avvio sono in / etc / profile. Gli alias e le funzioni di sistema sono in / etc / bashrc. "
Conclusione
Se si desidera che solo root visualizzi i programmi residenti, ad esempio in / sbin
Vorrei aggiungere quel percorso al .bash_profile
file root . Ma se si vuole ad ogni utente di vedere cosa radice programmi specifici sono installati sulla propria macchina vorrei mettere /sbin
in /etc/.profile
. Ora ogni utente può utilizzare il completamento della scheda per cercare programmi specifici per root ed elevare i diritti se necessario.
Caso speciale: SSH
Quando ssh viene avviato con una riga di comando, viene avviata una shell di login interattiva. Ma in questo caso /etc/profile
non viene letto. Quando ho definito le variabili di ambiente nel .bash_profile
file di ciascun utente ha funzionato con ssh.
~/.profile
è anche un'altra opzione valida