I .profile
risale al guscio originale Bourne noto come sh
. Poiché la shell GNU bash
è (a seconda delle sue opzioni) un superset della shell Bourne, entrambe le shell possono usare lo stesso file di avvio. Cioè, a condizione che sh
vengano inseriti solo i comandi.profile
Ad esempio, alias
è un comando incorporato valido bash
ma sconosciuto a sh
. Pertanto, se avessi solo un .profile
nella tua home directory e metti una alias
dichiarazione in esso, sh
si lamenterebbe. Quindi esiste un file specifico di bash che ha comandi di inizializzazione della shell che bash leggerà se e solo se non è presente un .profile
file.
In realtà è un po 'una semplificazione eccessiva in alcune installazioni, e non ho familiarità con Fedora. Sotto bash, /etc/profile
viene letto dalla shell prima di qualsiasi file nella tua home directory. Se esiste uno script di inizializzazione a livello di sistema, spesso si dice qualcosa del genere
if there is a $HOME/.profile:
source it
elseif bash is my shell and there is a $HOME/.bash_profile:
source that
Perché è così? Un tentativo di compatibilità attraverso decenni di dialetti shell. Perché il tutorial è scritto in questo modo? La shell Bourne non viene più utilizzata molto di più e alcune persone non sanno nemmeno che esiste un'altra shell simile a Bourne oltre a bash. Anche quando la sintassi (limitata) di Bourne viene utilizzata per una maggiore compatibilità multipiattaforma, viene spesso eseguita dash
o bash in modalità di compatibilità POSIX. In effetti, l'attuale sorgente di shell Bourne è probabilmente un componente protetto da copyright di Unix System V che sembra essere di proprietà di Novell ora, ma non ho idea di cosa, se non altro, ci stanno facendo.
Per l'utente principiante, utilizzare uno $HOME/.profile
o $HOME/.bash_profile
entrambi, e andrà tutto bene. Dal momento che hai già .bash_profile
lavorato su questo perché potrebbe contenere elementi specifici del sistema necessari per l'installazione.