tmux
inicia um shell de login por padrão, portanto, ~/.bashrc
não será executado (e, em seguida, origina ~/.bash_aliases
. Você precisa obter ~/.bashrc
do seu ~/.bash_profile
. Consulte a seção INVOCATION
do man bash
.
Os alias definidos em .bash_aliases
e .bashrc
não funcionam em tmux
.
Isso pode ser alterado em alguma configuração, portanto, os aliases funcionam em tmux
?
( A resposta de Chris Down tem a explicação correta, mas não uma boa solução)
Seu problema deriva de uma combinação de um bug de projeto bash e um erro de design do tmux.
Por padrão, o tmux inicia um shell de login em todas as janelas. Isso não faz sentido: se você configurou o tmux como seu shell de login, você precisa definir a opção default-command
para algo diferente de tmux; e se você não tiver configurado o tmux como seu shell de login, você precisa definir a opção default-command
para evitar iniciar um shell de login dentro do tmux. Então, faça isso no seu ~/.tmux.conf
para dizer ao tmux para iniciar um shell comum:
set-option -g default-command $SHELL
Então seu .bashrc
será lido. Há outro problema com o bash, que não importa aqui se você configurar o tmux como recomendado acima, mas que aparecerá novamente se você efetuar login no modo de texto (em um console de texto ou por SSH). Bash lê ~/.bash_profile
em shells de login e ~/.bashrc
em shells interativos, mas somente se eles não forem shells de login. Para ler ~/.bashrc
também em shells de login, se forem interativos, adicione isso ao seu ~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
Tags command-line tmux terminal