Risposte:
tmuxavvia una shell di login per impostazione predefinita, quindi ~/.bashrcnon verrà eseguita (che quindi esegue il sorgente ~/.bash_aliases. È necessario eseguire il source ~/.bashrcdal proprio ~/.bash_profile. Vedere la INVOCATIONsezione di man bash.
( La risposta di Chris Down ha la spiegazione giusta ma non una buona soluzione)
Il problema deriva da una combinazione di un bug di progettazione bash e un bug di progettazione tmux.
Per impostazione predefinita, tmux avvia una shell di accesso in ogni finestra. Questo non ha alcun senso: se hai impostato tmux come shell di accesso, devi impostare l' default-commandopzione su qualcosa di diverso da tmux; e se non hai impostato tmux come shell di accesso, devi impostare l' default-commandopzione per evitare di avviare una shell di accesso all'interno di tmux. Quindi ~/.tmux.confmetti il broncio nel tuo per dire a tmux di avviare una shell normale:
set-option -g default-command $SHELL
Allora la tua .bashrcverrà letta. C'è un altro problema con bash, che non ha importanza se si configura tmux come raccomandato sopra, ma che riapparirà se si accede in modalità testo (su una console di testo o su SSH). Bash legge ~/.bash_profilenelle shell di accesso e ~/.bashrcnelle shell interattive, ma solo se non sono shell di accesso. Per leggere ~/.bashrcanche nelle shell di login se sono interattive, aggiungi questo al tuo ~/.bash_profile:
case $- in *i*) . ~/.bashrc;; esac
tmux? Uso tmux da circa un anno e non ho riscontrato alcun problema con gli alias. Prova ad aggiungereset -xall'inizio del tuo.bashrced esegui iltmuxcomandosource ~/.bashrc. Forse troverai errori e risolverai il tuo problema.