如何将 byobu 配置为登录 shell?

如何将 byobu 配置为登录 shell?

我需要让我的 telnet 和 ssh 用户使用屏风作为他们的登录 shell。我想避免使用.login/ .profile/.bashrc和类似的东西来生成 Byobu。我想让 Byobu 作为 中定义的 shell /etc/passwd

我已经做了一些测试,但无法正常工作。有什么想法吗?

答案1

Byobu 本身并不是一个 shell。它是一个在 shell 中运行的程序。实用程序byobu-启用byobu-禁用~/.profile,在启动的末尾放一行屏风(如果需要)当您生成新登录时。包装器脚本会为您进行一些健全性检查并防止递归。

现在,我会告诉你如何做你想做的事情,但我强烈建议不要这么做。你最终可能会陷入一些令人讨厌的递归或无限循环。小心!

  1. 在 /etc/passwd 的最后一个字段中将 /usr/bin/screen 设置为您的登录 shell。
  2. 将其放入您的~/.screenrc

    source /usr/share/byobu/profiles/byoburc

答案2

这并没有回答问题的细节,而是回答了问题的标题。因此,如果您的问题是 byobu 在启动时没有源/etc/profile,可以按如下方式修复。添加~/.byobu/.tmux.conf

set -g default-command '/bin/bash --login'

这将使用 bash 作为登录 shell,因此在启动 byobu 时/etc/profile将被获取。

答案3

将其添加到 /etc/profile

echo $- | grep -qs i && byobu-launcher && exit 0

答案4

我在各种系统上使用带有 tmux 的 Byobu,但在发布之前,我刚刚在 Debian 8 上进行了全新的用户测试。

对我来说似乎有效的是:

  1. 登录 shell 为/bin/sh

  2. Byobu 通过“byobu-launcher-install”启用

  3. Tmux 正在启动 Fish,我发现:如何更改 Byobu(tmux)中使用的默认 shell?

    set -g default-shell /usr/bin/fish
    set -g default-command /usr/bin/fish
    

我也让用户先启动 Fish,然后通过 fish.config 启动 Byobu,这两种方式都可以,但我认为登录 shell 可能更简单一些。

相关内容