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_profilecarrega.profilee carrega.bashrcse 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 .