O arquivo ~/.bash_profile
é lido pelo bash quando é um shell de login. É isso que você recebe quando faz o login no modo de texto.
Quando você faz o login no X, os scripts de inicialização são executados por /bin/sh
. No Ubuntu e no Mint, /bin/sh
é o traço , não o bash. Dash e bash têm os mesmos recursos centrais, mas traçam com esses recursos principais para serem rápidos e pequenos, enquanto o bash adiciona muitos recursos com o custo de exigir mais recursos. É comum usar dash para scripts que não precisam dos recursos extras e bash para uso interativo (embora zsh tem um monte de recursos mais agradáveis ).
A maioria das combinações de gerenciador de exibição (o programa onde você digita seu nome de usuário e senha) e ambiente de área de trabalho lê ~/.profile
dos scripts de login em /etc/X11/Xsession
, /usr/bin/lightdm-session
, /etc/gdm/Xsession
ou o que for aplicável. Portanto, coloque suas definições de variáveis de ambiente em ~/.profile
. Certifique-se de usar apenas a sintaxe que o traço suporta.
Então, o que você deve colocar onde?
-
Um bom
.bash_profile
carrega.profile
e carrega.bashrc
se o shell for interativo.. ~/.profile if [[ $- == *i* ]]; then . ~/.bashrc; fi
-
Em
.profile
, coloque as definições das variáveis de ambiente e outras configurações da sessão, comoulimit
. - Em
.bashrc
, coloque as configurações interativas do bash como aliases, funções, conclusão, associações de teclas (que não estão em.inputrc
),…
Veja também Diferença entre o Login Shell e Non-Login Shell? e Alternativa para .bashrc .