Non riesco a trovare .bash_profilein Ubuntu 14.04 nella mia /home/userdirectory. Ho usato il ls -acomando per vedere il .bash_profile, ma non esiste un file del genere.
Non riesco a trovare .bash_profilein Ubuntu 14.04 nella mia /home/userdirectory. Ho usato il ls -acomando per vedere il .bash_profile, ma non esiste un file del genere.
Risposte:
Ubuntu usa ~/.profile.
puoi creare il tuo .bash_profilein Ubuntu ma .profilenon verrà letto.
Se leggiamo il contenuto .profile:
cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
Quindi usa ~/.profileinvece di~/.bash_profile
vim ~/.bashrcallora. ~/.bashrc
Quando si richiama una shell di login bash cercherà i suoi file di configurazione in questo ordine:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
Dopo aver trovato il primo, smette di ricerca per gli altri, quindi se c'è un .bash_profilemio $HOMEbash non cercherà .bash_logine .profilepiù.
Da questi tre nomi di file, Ubuntu per impostazione predefinita utilizza .profileè possibile rinominarlo .bash_profilese ti piace:
mv ~/.profile ~/.bash_profile
Ora, se apriamo una nuova shell bash usando bash -l, su - $USER, sudo -u $USER -io qualsiasi altro comando che corre bash come shell di login, ~/.bash_profileandranno di provenienza.
Ciò di cui ho parlato fino ad ora si applica solo a Bash stesso, quando si accede al sistema da una GUI, il gestore del display è responsabile per l'approvvigionamento dei file corretti.
Ubuntu usa gdm3come display manager, se diamo un'occhiata a: /etc/gdm3/Xsessionpossiamo vedere che nessuno dei file avrà origine tranne .profile::
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
quindi se stai usando una GUI per accedere, tieni il file sotto il .profilenome, altrimenti potresti perdere alcune variabili e impostazioni nei tuoi ambienti.
Immagino che l'opzione migliore sia la creazione di un link simbolico a .profile:
ln -s ~/.profile ~/.bash_profile
Ora i tuoi dati vivono .profile, gdmnon perdono nulla, bash carica ciò .bash_profileche è effettivamente .profilee modificando ognuno di essi ottieni lo stesso risultato.
Se non lo hai, .profileprendine una copia da qui:
cp /etc/skel/.profile ~/.profile
o
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bashsu Ubuntu descrive ancora come cercherà prima .bash_profile.
.bash_profile prima non riesce a trovarlo (perché non esiste), quindi cerca .bash_loginnon riesce a ritrovarlo (perché Ubuntu non utilizza questi due nomi) alla fine cerca .profilee sì, eccolo lì. Quindi se crei un .bash_profilein ~allora stai sovrascrivendo quello di Ubuntu ~/.profile, è il comportamento predefinito di bash che qui non è stato modificato nulla.
.bash_profile, non viene letto. Mi sono appena reso conto che questo è perché Ubuntu non utilizza più 'Bash' come shell di login della GUI. Utilizza invece "Dash". Penso che questo sia vero dal 18.04.
Ciò significa che il file non esiste. Tuttavia, è possibile creare il file ed basheseguire / origini il file se bashviene invocato come shell di accesso. Quindi straordinariamente accedi tramite una shell (ad esempio tramite ssh).
Se vuoi che il contenuto venga eseguito ogni volta che apri un terminale, devi .bashrcinvece modificare il file.
/etc/skel/directory.
.bash_profilemanca (e non funziona) su Ubuntu nei commenti su altre risposte.
La risposta migliore da usare ~/.profileinvece di ~/.bash_profilenon ha funzionato per me.
Modifica ha .bashrcfunzionato
Appena:
vim ~/.bashrc
Nota: sto usando Ubuntu WSL.
~/.profilesemplicemente non caricato di default in Ubuntu 18.04
Se intendi il .bashrc lo troverai nella tua cartella home. Se non è presente, è possibile copiarlo dalla cartella / etc / skel alla cartella principale.
Se hai bisogno di maggiori informazioni su questo argomento, visita la pagina di stefaan lippens.
~/.profileinvece.