O sh tradicional lê o arquivo ~/.profile
na inicialização quando é um login shell .
Bash, que é compatível com sh, mas oferece recursos adicionais, lê .bash_profile
e, se não existir, tenta .profile
instead¹. Isso permite que você tenha um .profile
para sh simples e um .bash_profile
aproveitando os recursos extras do bash quando seu shell de login é bash.
Bash também lê outro arquivo, .bashrc
, quando é invocado interativamente. Esse é o lugar para colocar prompts, aliases, configuração de conclusão, etc. No entanto, ele não lê esse arquivo em um shell de login interativo. Portanto, seu .bash_profile
deve fornecer .bashrc
quando o shell estiver sendo executado de forma interativa - caso contrário, será necessário manter arquivos separados.
Raramente há qualquer motivo para deixar o seguinte conteúdo para .bash_profile
:
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
Coloque coisas do tempo de login como definições de variáveis de ambiente em .profile
e coisas para shells interativos em .bashrc
.
Se você usar o bash como seu shell de login, talvez não tenha um .profile
e coloque o material de login em tempo .bash_profile
, além da linha para carregar .bashrc
quando interativo.
¹ Também tenta .bash_login
antes de .profile
, mas isso não é realmente útil.