Há um grande número de lugares onde poderia ser definido.
Para uma explicação completa, você precisa olhar a bash manpage, em INVOCATION , mas tenho que avisá-lo que provavelmente lhe dará dor de cabeça antes de entender tudo: -)
Dependendo de como o shell é invocado e quais arquivos existem, pode ser um ou mais dos seguintes:
-
/etc/profile. -
/etc/bash.bashrc -
~/.bash_profile. -
~/.bash_login. -
~/.profile. -
~/.bashrc. - o que for especificado com a opção
--rcfile. - o que for especificado com a variável de ambiente
BASH_ENV. - o que for especificado com a variável de ambiente
ENV. - qualquer arquivo chamado dos arquivos anteriores.
Por que vale a pena, eu geralmente me certifico de ter um ~/.bash_profile (já que essa é a maior prioridade do conjunto {~/.bash_profile, ~/.bash_login, ~/.profile} - ele só processará o primeiro que encontrar naquele grupo ).
Eu também me certifico de que eu tenha ~/.bashrc e que ~/.bash_profile as forneça no final.
Dessa forma, ~/.bash_profile contém apenas as coisas que eu preciso em shells de login e ~/.bashrc contém as coisas que eu quero em todos os shell. Você só precisa ter certeza de que o último não contém nenhum comando "cumulativo" (como adicionar algo ao final do caminho).
Existem outras maneiras de configurá-lo, especialmente se você estiver usando shells diferentes e tiver que compartilhar perfis entre eles, mas o esquema acima é o mais fácil que encontrei nas configurações bash -only.