Se existir .bash_profile, o Bash não lerá .bash_login (ou .profile). Esse recurso irritante é descrito em algumas versões do manual do Bash, mas não em todas.
.bash_profile
e .bash_login
são análogos, então eu recomendo que você coloque seus comandos em .bash_profile
, porque é comumente usado e .bash_login
é relativamente desconhecido. Considere também colocar seus comandos em .bashrc
em vez de .bash_profile
. O manual descreve a diferença entre "shell interativo de não-login" e "shell de login interativo", portanto, leia essa seção.
O Manual de Referência do GNU Bash versão 4.1: Arquivos de Inicialização do Bash diz:
procura ~ / .bash_profile, ~ / .bash_login e ~ / .profile, nesse ordem, e lê e executa comandos do o primeiro que existe e é legível.
Veja também esta pergunta no superusuário e < hash="http://freeunix.dyndns.org:8088/site2/howto/Bash.shtml"> este Bash howto (não se deixe intimidar pelo endereço freeunix.dyndns.org: 8088 - - ainda é um manual de boa qualidade e eu o uso há anos).
Atualizar , já que você diz que não tem um .bash_profile.
Parece que você não está usando o que é chamado de "shell interativo sem login" (consulte o manual do Bash para obter uma descrição detalhada).
Para testar isso, adicione algo como o seguinte em cada arquivo: .bashrc
, .bash_profile
e .bash_login
.
echo "DEBUG: I am .bashrc"
echo "DEBUG: I am .bash_profile"
Em seguida, efetue logout e faça login novamente. Quando você logar, aposto que você só verá a frase "DEBUG: Eu sou .bashrc" mas não "Eu sou .bash_profile". Em caso afirmativo, significa que você é um "shell interativo de não-login", o que significa simplesmente que o Bash chamará .bashrc
, mas não .bash_profile
. Para saber por que esses arquivos de ponto são como são, veja a postagem de @Andrejs Cainikovs abaixo e o link