【问题标题】:Change tmux default to zsh将 tmux 默认更改为 zsh
【发布时间】:2014-04-27 01:12:20
【问题描述】:

当 tmux 打开时,我希望它默认使用 zsh 而不是 bash。我将如何做到这一点?

【问题讨论】:

    标签: zsh tmux


    【解决方案1】:

    来自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 不会改变:tmux set-option -g default-shell /bin/zsh
    【解决方案2】:

    您可能希望 zsh 成为大多数事情的默认 shell(但这不适用于 cron)。以下内容将使 zsh 成为您的默认 shell,然后您不需要告诉 tmux 任何内容。

    chsh -s /usr/bin/zsh
    

    请注意,有些操作系统仍然使用/bin/zsh 作为 zsh 的路径。

    【讨论】:

    • 这是一个不正确的用例:有一个多人使用的“构建”帐户,其中一些人无法一直使用 tmux/zsh。 ^_~
    • 另一种情况是使用 tmux 本身作为默认 shell
    • 另一种情况是 chsh 被破坏,这在特定(未命名)大学的 CS 服务器上是正确的
    【解决方案3】:

    如果您希望为某个会话单独设置它,而不是为其他(未来)会话设置,您可以使用

     tmux new-session /bin/zsh \; set default-shell /bin/zsh
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多