Risposte:
tmux
avvia una shell di login per impostazione predefinita, quindi ~/.bashrc
non verrà eseguita (che quindi esegue il sorgente ~/.bash_aliases
. È necessario eseguire il source ~/.bashrc
dal proprio ~/.bash_profile
. Vedere la INVOCATION
sezione 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-command
opzione su qualcosa di diverso da tmux; e se non hai impostato tmux come shell di accesso, devi impostare l' default-command
opzione per evitare di avviare una shell di accesso all'interno di tmux. Quindi ~/.tmux.conf
metti il broncio nel tuo per dire a tmux di avviare una shell normale:
set-option -g default-command $SHELL
Allora la tua .bashrc
verrà 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_profile
nelle shell di accesso e ~/.bashrc
nelle shell interattive, ma solo se non sono shell di accesso. Per leggere ~/.bashrc
anche 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 -x
all'inizio del tuo.bashrc
ed esegui iltmux
comandosource ~/.bashrc
. Forse troverai errori e risolverai il tuo problema.