Alterando o shell de login

3

Se eu alterar meu shell com chsh para um shell que eu mesmo escrevi, quais scripts ele precisa executar? Eu já tentei mudar para o meu próprio shell e surpreendentemente funcionou sem uma mensagem de erro. Isso significa que o shell de login decide quais scripts devem ser executados e não há script que o shell de login deve executar?

Eu achava que .login ou .aliases ou similares eram sempre executados.

    
por Niklas Rosencrantz 18.06.2016 / 15:46

2 respostas

3

O arquivo profile é sempre executado pelo shell de login, e se você deseja que outros scripts sejam originados pelo shell de login, você os menciona em profile

    
por Sergiy Kolodyazhnyy 18.06.2016 / 18:39
1

Depende do design do seu shell.

  

Ele segue o padrão POSIX?

Se Sim, então seu shell precisa ler a variável de ambiente ENV no início de qualquer sessão interativa e ler / executar o conteúdo do (s) arquivo (s) a que a variável ENV se refere. Nenhum outro arquivo precisa ser lido de acordo com o padrão. Este é um mínimo para a conformação POSIX no que diz respeito à leitura de arquivos durante a inicialização.

  

E a personalização?

O problema é que a maioria dos shells hoje em dia usa arquivos específicos para ler / source / executar enquanto inicia uma sessão. Arquivos diferem para vários tipos de sessão. Por exemplo, bash origina os arquivos /etc/profile e um de ~/.bash_profile , ~/.bash_login , ~/.profile (primeiro disponível após o pedido) ao iniciar uma sessão interativa de login. Os shells mais populares também fazem isso, mas novamente essa é uma decisão de design, não um padrão.

    
por heemayl 18.06.2016 / 20:17