Quando o tmux inicia ou abre uma nova janela, ele não carrega o meu .profile
ou .bashrc
. Acabo digitando . ~/.bashrc
todas as vezes. Existe uma maneira de fazer isso acontecer automaticamente?
94
Sim, no final do seu .bash_profile
, coloque a linha:
. ~/.bashrc
Isso origina automaticamente o arquivo rc sob as circunstâncias em que normalmente só processaria o perfil.
As regras de quando bash
determinados arquivos são executados são complicadas e dependem do tipo de shell que está sendo iniciado (login / não-login, interativo ou não e assim por diante), junto com os argumentos da linha de comando e variáveis de ambiente.
Você pode vê-los na man bash
saída, apenas procure INVOCATION
- você provavelmente precisará de algum tempo para digerir e decodificar :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
A execução do bash funcionou explicitamente para mim, adicionando esta linha ao meu arquivo ~ / .tmux.conf:
fonte
~/.tmux.conf
:set -g default-command "/bin/bash"
. Obrigado cara.As respostas anteriores forneciam soluções, mas não explicavam o motivo. Aqui está.
Isso está relacionado aos arquivos Bash init. Por padrão,
~/.bashrc
é usado em um shell interativo sem login . Não será originado em um shell de login. Tmux usa um shell de login por padrão. Conseqüentemente, shells iniciados por tmux skip~/.bashrc
.Arquivos de inicialização para Bash,
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(Apenas um primeiro que existe)/etc/bash.bashrc
(algum Linux; não no Mac OS X)~/.bashrc
$BASH_ENV
O estranho requisito de carregamento interativo sem login confunde as pessoas em outras situações também. A melhor solução é mudar a exigência de carga de
~/.bashrc
como única interativa , que é exatamente o que algumas distribuições, como o Ubuntu, estão fazendo.Esta deve ser a solução que você deseja. E eu recomendo que todos os usuários do Bash configurem isso no perfil.
Referências
man tmux
fonte
Deste tópico:
parece que usar
.bash_profile
funcionaria.fonte
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
A solução que funcionou para mim é a seguinte:
.bash_profile
arquivo se você não tiver um em~
.bash_profile
colocaçãosource ~/.bashrc
ousource ~/.profile
O problema agora deve ser corrigido.
fonte
Eu tive o mesmo problema e as soluções até agora não funcionaram para mim. A solução que acabou funcionando para mim pode ser encontrada aqui .
Resumindo, as
tmux
janelas / sessões usam um shell de login que procura~/.profile
entre outros arquivos quando é iniciado.O que eu queria era que zsh começasse com cada nova
tmux
janela, então coloqueiexec zsh
na parte inferior da minha~/.profile
.fonte