O que "Executar comando como um shell de login" faz?


28

Tenho alguns programas separados instalados, alguns dos quais exigem que eu entre nas configurações do terminal da GUI e ative / desative a opção "Executar comando como um shell de login" para poder funcionar.

Exemplo:

Eu instalei o Ruby on Rails . Infelizmente eu tenho que ir nas opções do terminal e habilitar "Executar comando como shell de login" para que ele esteja no meu PATH.

Isso não foi muito problemático até que eu instalei o sexy-bash-prompt , que funciona apenas se a opção estiver desativada.

Portanto, minha pergunta é essencialmente: o que "Executar comando como shell de login" faz? Existe uma maneira de executar as coisas que estão desabilitadas quando você executa como shell de login?

Respostas:


31

Supondo que seu shell seja Bash (o padrão no Ubuntu), estas são as diferenças:

  • Ao executar como um shell de login , o Bash lerá ~/.bash_profile(ou, se isso não existir ~/.profile) na inicialização. Em alguns casos, esse arquivo também é lido ~/.bashrc.

  • Ao executar como um shell sem login , o Bash lerá ~/.bashrc.

Então, por que você vê comportamentos diferentes ao executar como um shell de logon / não logon? Porque a sua .bash_profile/ .profileé fazer as coisas diferentes do que o seu .bashrc.

A solução que eu recomendaria no seu caso é copiar as personalizações feitas para .bash_profile/ .profile, colá- las .bashrce desativar o "Executar comando como um shell de login".


Ahh, certo. Achei que tinha a ver com o perfil de login que ele lia (o source'ing .bashrc corrige alguns dos problemas que tive). Vou tentar, desculpe pela pergunta horrivelmente escrita.
AlbertEngelB

Obrigado pela explicação concisa. Não é incomum ver pessoas apenas manterem suas personalizações em .bashrc e terem .bash_profile na origem .bashrc. As personalizações específicas de login devem ser mantidas apenas em .bash_profile.
precisa saber é o seguinte

1
Por que não apenas originar .bashrc em .bash_profile e deixar o shell de logon ativado? Isso é viável?
Dr. Nefario
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.