Che cosa fa "Esegui comando come shell di login"?

21

Ho alcuni programmi separati installati, alcuni dei quali richiedono che entri nelle impostazioni del mio terminale GUI e abiliti / disabiliti l'opzione "Esegui comando come shell di login" per funzionare.

Esempio:

Ho installato Ruby on Rails . Sfortunatamente devo andare nelle opzioni del terminale e abilitare "Esegui comando come shell di login" perché si trovi nel mio PERCORSO.

Questo non è stato un problema fino a quando non ho installato sexy-bash-prompt , che funziona solo se l'opzione è disabilitata.

Quindi la mia domanda è essenzialmente: cosa fa "Esegui comando come shell di login"? C'è un modo per ottenere le cose che vengono eseguite quando è disabilitato per l'esecuzione quando si esegue come shell di accesso?

    
posta Dropped.on.Caprica 16.08.2013 - 18:53

1 risposta

26

Supponendo che la tua shell sia Bash (l'impostazione predefinita in Ubuntu), queste sono le differenze:

  • Quando viene eseguito come shell login , Bash leggerà ~/.bash_profile (o, se non esiste, ~/.profile ) all'avvio. In alcuni casi, questo file legge anche ~/.bashrc .

  • Quando viene eseguito come shell non-login , Bash leggerà ~/.bashrc .

Quindi, perché vedi comportamenti diversi quando sei in esecuzione come shell di login / non-login? Perché .bash_profile / .profile sta facendo cose diverse da .bashrc .

La soluzione che raccomando nel tuo caso è di copiare le personalizzazioni apportate a .bash_profile / .profile , incollarle in .bashrc e disabilita "Esegui comando come shell di login".

    
risposta data Andrea Corbellini 26.08.2013 - 16:59

Leggi altre domande sui tag