Antworten:
tmux
Startet standardmäßig eine Anmeldeshell, ~/.bashrc
wird also nicht ausgeführt (was anschließend quellt ~/.bash_aliases
. Sie müssen ~/.bashrc
von Ihrer Quelle ~/.bash_profile
. Siehe INVOCATION
Abschnitt von man bash
.
( Chris Downs Antwort hat die richtige Erklärung, ist aber keine gute Lösung)
Ihr Problem rührt von einer Kombination eines Bash-Design-Fehlers und eines TMUX-Design-Fehlers her.
Standardmäßig startet tmux in jedem Fenster eine Login-Shell. Dies macht keinen Sinn: Wenn Sie tmux als Anmeldeshell festgelegt haben, müssen Sie die default-command
Option auf einen anderen Wert als tmux festlegen. Wenn Sie tmux nicht als Anmeldeshell festgelegt haben, müssen Sie die default-command
Option festlegen , um das Starten einer Anmeldeshell in tmux zu vermeiden. Also schreiben Sie dies in Ihr ~/.tmux.conf
, um tmux anzuweisen, eine gewöhnliche Shell zu starten:
set-option -g default-command $SHELL
Dann wird dein .bashrc
Text gelesen. Es gibt ein weiteres Problem mit bash, das hier keine Rolle spielt, wenn Sie tmux wie oben empfohlen konfigurieren. Es tritt jedoch erneut auf, wenn Sie sich im Textmodus (auf einer Textkonsole oder über SSH) anmelden. Bash liest ~/.bash_profile
in Login-Shells und ~/.bashrc
in interaktiven Shells, jedoch nur, wenn es sich nicht um Login-Shells handelt. Um ~/.bashrc
auch in Login-Shells zu lesen , ob diese interaktiv sind, fügen Sie Folgendes hinzu ~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
tmux
? Ich benutze tmux ungefähr im Jahr und habe keine Probleme mit Aliasen gesehen. Versuchen Sie,set -x
am Anfang Ihres Befehls einzufügen.bashrc
und dentmux
Befehl auszuführensource ~/.bashrc
. Möglicherweise finden Sie Fehler und Ihr Problem wird dadurch behoben.