.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.