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.