Quando avvio un terminale bash, il mio .profile non viene eseguito. Non ho un ~ / .bash_profile o un ~ / .bash_login, quindi .profile dovrebbe funzionare, giusto? Cos'altro potrebbe essere sbagliato?
Quando avvio un terminale bash, il mio .profile non viene eseguito. Non ho un ~ / .bash_profile o un ~ / .bash_login, quindi .profile dovrebbe funzionare, giusto? Cos'altro potrebbe essere sbagliato?
Risposte:
Non è una shell di accesso.
Se una shell è una shell di login, cercherà .bash_profile se esiste, quindi .profile. Altre shell cercano .bashrc
Quindi, puoi mettere le cose che vuoi in ogni istanza della shell in .bashrc e possibilmente avere un riferimento che genera .bashrc in .profile.
Quindi: .bashrc:
stuff you want
fine del .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. Nel tuo caso sembra solo eseguire bash, che per impostazione predefinita non attiverà una shell di accesso
Se stai usando un desktop grafico, .profile dovrebbe essere fornito dal tuo desktop manager. Lightdm fa fonte .profile ora, almeno su Ubuntu. Vedi: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
Con kdm e Kubuntu-12.04, viene acquisito il file / etc / kde4 / kdm / Xsession, che include il .profile. Kubuntu-12.10 probabilmente utilizzerà LightDM. Ubuntu 12.04 usa lightdm in modo che / usr / sbin / lightdm-session generi .profile.
Penso che la strada da percorrere sia (1) impostare / esportare le impostazioni dell'ambiente in ~ / .profile e (2) avere .profile proveniente da .bash_profile:
[[ -f ~/.profile ]] && . ~/.profile
(e non avere .bashrc proveniente da .profile o .bash_profile).
Guarda anche:
.profile
fonte di accesso al login, ma in realtà si sta chiedendo come arrivare bash
alla fonte quando lancia un terminale (non al momento del login)