Réponses:
tmuxlance un shell de connexion par défaut, il ~/.bashrcne sera donc pas exécuté (qui ensuite les sources ~/.bash_aliases. Vous devez source à ~/.bashrcpartir de votre ~/.bash_profile. Voir la INVOCATIONsection de man bash.
( La réponse de Chris Down a la bonne explication mais pas une bonne solution)
Votre problème provient d'une combinaison d'un bogue de conception bash et d'un bogue de conception tmux.
Par défaut, tmux démarre un shell de connexion dans chaque fenêtre. Cela n'a aucun sens: si vous avez défini tmux comme shell de connexion, vous devez définir l' default-commandoption sur autre chose que tmux; et si vous n'avez pas défini tmux comme shell de connexion, vous devez définir l' default-commandoption pour éviter de démarrer un shell de connexion dans tmux. Alors faites la moue dans votre ~/.tmux.confpour dire à tmux de démarrer un shell ordinaire:
set-option -g default-command $SHELL
Ensuite, votre .bashrcsera lu. Il y a un autre problème avec bash, qui n'a pas d'importance ici si vous configurez tmux comme recommandé ci-dessus, mais qui réapparaîtra si vous vous connectez en mode texte (sur une console texte ou via SSH). Bash lit ~/.bash_profiledans les shells de connexion et ~/.bashrcdans les shells interactifs, mais uniquement s'ils ne sont pas des shells de connexion. Pour lire ~/.bashrcégalement dans les shells de connexion s'ils sont interactifs, ajoutez ceci à votre ~/.bash_profile:
case $- in *i*) . ~/.bashrc;; esac
tmux? J'utilise tmux depuis environ un an et je n'ai vu aucun problème avec les alias. Essayez d'ajouterset -xau début de votre.bashrcet exécutez latmuxcommandesource ~/.bashrc. Vous trouverez peut-être des erreurs et cela résoudra votre problème.