别名和 tmux

别名和 tmux

中定义的别名在.bash_aliases.bashrc中不起作用tmux

可以在某些配置中更改此设置,以便别名在 下工作吗tmux

答案1

克里斯·唐的回答有正确的解释,但不是一个好的解决方法)

您的问题源于 bash 设计错误和 tmux 设计错误的组合。

默认情况下,tmux 在每个窗口中启动一个登录 shell。这没有任何意义:如果您已将 tmux 设置为登录 shell,则需要将该default-command选项设置为 tmux 以外的其他选项;如果您尚未将 tmux 设置为登录 shell,则需要设置选项default-command以避免在 tmux 内启动登录 shell。因此,将以下内容放入您的文件中~/.tmux.conf以告诉 tmux 启动普通 shell:

set-option -g default-command $SHELL

然后你的遗嘱.bashrc将被阅读。 bash 还有另一个问题,如果您按照上面的建议配置 tmux,这个问题并不重要,但如果您以文本模式(在文本控制台或通过 SSH)登录,这个问题就会再次出现。 Bash~/.bash_profile在登录 shell 和交互式 shell 中读取,~/.bashrc但前提是它们不是登录 shell。~/.bashrc如果还想在登录 shell 中读取它们(如果它们是交互式的),请将其添加到您的~/.bash_profile

case $- in *i*) . ~/.bashrc;; esac

答案2

tmux默认情况下会启动一个登录 shell,因此~/.bashrc不会被执行(随后会从 中获取源~/.bash_aliases。您需要~/.bashrc从您的 中获取源~/.bash_profile。请INVOCATION参阅man bash.

相关内容