O que faz o “comando Executar como um shell de login”?

20

Eu tenho alguns programas separados instalados, alguns dos quais requerem que eu vá para as configurações do terminal GUI e ative / desative a opção "Executar comando como um shell de login" para trabalhar.

Exemplo:

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

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

Então, minha pergunta é essencialmente: o que "Executar comando como shell de login" faz? Existe uma maneira de obter as coisas que são executadas quando ele é desativado para ser executado quando você executa como shell de login?

    
por Dropped.on.Caprica 16.08.2013 / 18:53

1 resposta

25

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

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

  • Quando executado como um shell sem login , o Bash lerá ~/.bashrc .

Então, por que você vê comportamentos diferentes quando executado como um shell de login / não-login? Porque o seu .bash_profile / .profile está fazendo coisas diferentes do seu .bashrc .

A solução que eu recomendaria no seu caso é copiar as personalizações feitas para .bash_profile / .profile , colar elas em .bashrc e desativar "Executar comando como um shell de login".

    
por Andrea Corbellini 26.08.2013 / 16:59