.profile non in esecuzione quando avvio un terminale bash


15

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:


23

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

Quindi quando eseguo 'konsole' in KDE, quella è una shell senza login, giusto? Su un'altra macchina ho sicuramente messo le cose in .profile e le ho fatte funzionare quando apro un terminale come questo - immagino di non capire quando vorresti che accadesse qualcosa di diverso al login vs quando apri un terminale?
— David Doria,

@DavidDoria dipende, ho cambiato le configurazioni o creato degli alias su ciò che Konsole esegue, per farlo funzionare bash --login. Nel tuo caso sembra solo eseguire bash, che per impostazione predefinita non attiverà una shell di accesso
— Rich Homolka

Se stai usando LightDM, questo potrebbe essere il motivo. Altri display manager come GDM e KDM sorgente .profile all'accesso, ma LightDM no (in base alla progettazione). Vedi bugs.debian.org/cgi-bin/bugreport.cgi?bug=636108
— jhenninger

Sto usando KDM.
— David Doria,

2
Se stai usando Gnome Terminal, puoi fare Modifica-> Preferenze profilo, andare alla scheda Titolo e comando e selezionare "Esegui comando come shell di accesso". Verrà quindi generato il tuo .bash_profile o .profile ogni volta che apri un terminale, come previsto.
— Lambart,


1

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:


1
Questo spiega come ottenere la tua .profilefonte di accesso al login, ma in realtà si sta chiedendo come arrivare bashalla fonte quando lancia un terminale (non al momento del login)
— cpast

Non dovresti avere .profile proveniente quando avvii un nuovo terminale (da KDE). Lo scopo di .profile è di averlo una volta effettuato l'accesso al login, su un terminale grafico o su un terminale di testo; .profile dovrebbe essere stato fornito nel momento in cui hai effettuato l'accesso a KDE.
— Freddy Vulto,

Il file .profile deve essere fornito dal desktop manager. Bene, questo dipende dalla comprensione dello scopo del file. In Debian, / etc / profile (e ~ / .profile come estensione) è pensato per shell simili a bash .
— Alois Mahdal,

Non è necessario cercarlo di nuovo SE è originato all'accesso. tuo bash lo erediterà a meno che tu non stia facendo qualcosa di stupido come "export PATH = ~ / .bin" o qualcosa che lo fa sovrascrivere.
— RichieHH,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.