如何让tmux指向指定Bash二进制文件且保留Zsh为默认shell?
解决tmux内优先调用Homebrew版Bash的方案
问题原因
tmux启动时未正确继承外部Shell的PATH环境变量,或PATH中/bin的优先级高于/opt/homebrew/bin,导致执行which bash时优先匹配系统自带的/bin/bash。
具体解决方法
方法1:在Zsh配置中固定PATH顺序
编辑Zsh配置文件(通常为~/.zshrc),添加以下代码,确保/opt/homebrew/bin处于PATH最前端:
export PATH="/opt/homebrew/bin:$PATH"
保存后,在tmux内执行source ~/.zshrc,或重启tmux即可生效。
方法2:让tmux继承外部PATH
编辑tmux配置文件~/.tmux.conf,添加配置让tmux启动时继承外部Shell的PATH:
set -g update-environment "PATH"
执行tmux source ~/.tmux.conf重新加载配置,新打开的tmux窗格即可应用。
方法3:直接在tmux中指定PATH
若前两种方法无效,可在~/.tmux.conf中直接定义PATH顺序:
set -g default-environment "PATH=/opt/homebrew/bin:/usr/bin:/bin:$PATH"
重新加载tmux配置后,系统会优先从/opt/homebrew/bin查找命令。
以上所有方法均不会改变默认Shell(保持Zsh),仅调整tmux环境下命令的查找优先级。
内容的提问来源于stack exchange,提问作者brenobarreto
相关产品推荐
相关产品推荐

