【发布时间】:2014-04-27 01:12:20
【问题描述】:
当 tmux 打开时,我希望它默认使用 zsh 而不是 bash。我将如何做到这一点?
【问题讨论】:
当 tmux 打开时,我希望它默认使用 zsh 而不是 bash。我将如何做到这一点?
【问题讨论】:
来自man tmux:
默认外壳路径
指定默认外壳。当 default-command 选项设置为空时,它用作新窗口的登录 shell,并且必须 是可执行文件的完整路径。启动时 tmux 尝试从第一个适合的 SHELL 环境中设置默认值 变量,getpwuid(3) 返回的 shell,或 /bin/sh。当 tmux 用作登录 shell 时,应配置此选项。
所以,在你的tmux.conf:
# set shell
set -g default-shell /bin/zsh
如果您愿意,可以在每次启动新窗口时添加默认命令:
# Retach userspaces
set -g default-command "reattach-to-user-namespace -l zsh"
【讨论】:
killall tmux
killall tmux 由于某种原因在这里不起作用。我不得不top 并单独杀死所有进程以再次重新加载配置
tmux set-option -g default-shell /bin/zsh
您可能希望 zsh 成为大多数事情的默认 shell(但这不适用于 cron)。以下内容将使 zsh 成为您的默认 shell,然后您不需要告诉 tmux 任何内容。
chsh -s /usr/bin/zsh
请注意,有些操作系统仍然使用/bin/zsh 作为 zsh 的路径。
【讨论】:
如果您希望为某个会话单独设置它,而不是为其他(未来)会话设置,您可以使用
tmux new-session /bin/zsh \; set default-shell /bin/zsh
【讨论】: