Quando o computador é inicializado, ele inicia o init e verifica um arquivo (por exemplo, /etc/inittab ) para que os processos iniciem . Normalmente, este arquivo contém algumas linhas como a abaixo.
c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color
Tradução solta:
Quando no nível de execução 5 (modo multiusuário), inicie agetty (processo de login), no console 2 (ALT-F2). Se o processo morrer (por exemplo, após o logout), inicie um novo (respawn).
Se você entrar naquela agetty, você iniciará um shell de login. Isso pode ser bash. Pode ser outro shell . (Você pode definir o shell padrão com chsh ).
Se você tiver o bash configurado como shell padrão, ele iniciará o bash e procurará nesses locais: (observe, esses arquivos são verificar quando o bash é chamado especificamente como um shell de login )
- / etc / profile
- ~ / .bash_profile
- ~ / .bash_login
- ~ / .profile
Como você pode ver, isso inclui o $ HOME / .profile que você mencionou anteriormente, mas não o $ HOME / .bashrc
Neste caso de um shell não-login interativo, mas , o bash verifica /etc/bashrc e ~/.bashrc .
Eu suspeito que a última parte responde à sua pergunta. (Teste com bash -l ou bash --login ).