Answers:
(Chris Down的回答有正确的解释,但不是一个好的解决方法)
您的问题源于bash设计错误和tmux设计错误的结合。
默认情况下,tmux在每个窗口中启动一个登录shell。这没有任何意义:如果您将tmux设置为登录shell,则需要将default-command
选项设置为tmux以外的其他选项;如果尚未将tmux设置为登录shell,则需要设置default-command
选项以避免在tmux中启动登录shell。因此,在您~/.tmux.conf
告诉tmux启动普通shell时,请p一下:
set-option -g default-command $SHELL
然后您.bashrc
将被阅读。bash还有另一个问题,如果您按照上面的建议配置tmux,则在这里无关紧要,但是如果您以文本模式(在文本控制台上或通过SSH)登录,它将再次浮出水面。Bash ~/.bash_profile
在登录外壳程序和~/.bashrc
交互式外壳程序中读取,但前提是它们不是登录外壳程序。要~/.bashrc
在登录shell交互时也要阅读它们,请将其添加到您的~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
tmux
吗?我使用tmux大约一年,还没有看到别名的任何问题。尝试set -x
在您的开头添加内容.bashrc
并在tmux
command中运行source ~/.bashrc
。也许您会发现任何错误,它将解决您的问题。