O arquivo .bash_profile (e também o arquivo .profile) é carregado para shells de logon, os shells sem logon usam .bashrc (sem símbolo _). Há uma linha no arquivo .screenrc que informa à tela qual shell deve aparecer ao iniciar uma janela de tela (quando não é iniciado um programa específico como o aplicativo da janela). No meu arquivo .screenrc, é assim (incluindo comentários):
# shell: Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
shell -$SHELL
Verifique o seu arquivo .screenrc e verifique se a linha do shell tem o traço na frente. Ao ter esse símbolo de traço e forçar um shell de login, você obterá o seu .bash_profile de origem. A variável $ SHELL no meu .screenrc está usando o valor do shell conforme fornecido pelo shell que inicia a tela (geralmente para mim é bash).
Caso você esteja se perguntando, a maior diferença que eu pude descobrir entre shells de login e não-login é que um shell sem login é normalmente o que é chamado para a execução de scripts.
.bash_profile
Na verdade, o fornecimento é algo diferente do que o aplicativo de terminal para Mac faz, que a maioria dos aplicativos de terminal não faz. A tela é lida~/.bashrc
no entanto, toda vez que você gera um novo shell.Se você renomear seu
~/.bash_profile
para~/.bashrc
(sem sublinhado entre bash e rc, como na sua pergunta), ele será originado.Minha estratégia preferida, no entanto, é colocar todas as minhas configurações no
bashrc
e, em seguida, obtê-lobash_profile
assim:fonte
Você não precisa alterar nenhum arquivo de configuração, se você escrever todas as suas configurações
.bash_profile
, como normalmente faz para configurar seu terminal, e criar um link nomeado.bashrc
apontando para o seu.bash_profile
para as sessões de tela via:$ ln -s ~/.bash_profile ~/.bashrc
Quaisquer alterações feitas em um dos arquivos são armazenadas,
.bash_profile
mas também acessíveis por.bashrc
.A única desvantagem é que você não pode adicionar configurações a apenas um dos arquivos de configuração.
fonte
Os shells de login do Linux originam os que não são de login adicionando a seguinte linha no caso de arquivos do usuário:
fonte