Seus problemas com .bashrc
não estão relacionados. .profile
precisa ser compatível com todos os shells compatíveis com sh
, enquanto é claro que .bashrc
é específico para Bash e geralmente não deve ser originado por outros shells.
Geralmente, coloque as coisas que você quer compartilhar entre os shells em .profile
, e certifique-se de fazer fonte dos arquivos de inicialização de seus outros shells (a menos que eles já façam isso padrão).
Obviamente, você precisa ter certeza de evitar o código que se comporta de maneira diferente em shells diferentes (a falta de cotações está bem em Zsh, mas um problema em shells compatíveis com Bourne, por exemplo).
Quanto à parte "por que" da sua pergunta, é assim que as configurações do seu .profile
estão disponíveis para os programas executados a partir da sua sessão GUI, não apenas pelos que você executa dentro de um shell (ou talvez deveria dizer shell "tradicional", e considerar a sua sessão GUI como um shell "não-tradicional".