如何托管多个 Linux 终端以使用 Wemux 进行查看和协作
在上一篇文章中,我们解释了如何使用 tmux(Terminal MultipleXer)从单个终端访问和控制多个终端(或窗口)。
现在我们向您介绍wemux(tmux的多用户版本),它不仅包含tmux提供的功能,还允许用户托管多终端环境,客户端可以在其中以查看或协作模式加入。
换句话说,您可以主持一个会话,其他人可以在其中查看您在终端中执行的操作(例如,执行演示)或与他们协作。
为了帮助您充分利用 wemux,我强烈建议您在阅读本文之前先阅读之前有关 tmux 的指南。
安装和配置 Wemux 多用户终端
作为安装 wemux 之前的先决条件,我们将使用 git 将项目的存储库克隆到本地系统中。如果以下命令显示您的系统中未找到 git:
which git
如下所示:
/usr/bin/which: no git in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
在继续之前安装它(使用yum或aptitude,具体取决于您的发行版):
yum install git [On RedHat based systems]
dnf install git [On Fedora 22+ versions]
aptitude install git [On Debian based systems]
然后,
1.克隆远程存储库。
git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux
2. 在 /usr/local/bin
或 ` PATH 中的其他目录中创建指向 wemux 可执行文件的符号链接变量。
ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux
3.将配置示例配置文件复制到/usr/local/etc
中。
cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf
并插入以下行:
host_list=(user1 user2 user3)
其中 user1
、user2
和 user3
是允许启动 wemux 服务器的用户。您可以根据需要添加任意数量的用户,并用空格分隔。其他用户将能够连接到正在运行的 wemux 服务器,但不允许启动服务器。
wemux 多用户终端简介
为了简化事情,请记住,您可以将 wemux 视为一种工具,可促进同一 tmux 会话上的控制台查看和相互协作。
如前所述,在配置文件 (/usr/local/etc/wemux.conf
) 中,您必须已经指定允许哪些用户启动 wemux 服务器,或者换句话说,其他用户可以附加到的 tmux 会话。在这种情况下,这些“用户”被称为客户。
总结一下:
- Wemux 服务器:一个 tmux 会话。
- Wemux 客户端:加入上述 tmux 会话的用户。
这些是用于管理 wemux 服务器的命令:
- wemux 或 wemux start:启动一个新的 wemux 服务器(如果不存在;否则创建一个新服务器)并在
/tmp/wemux-wemux
中创建一个套接字 其权限需要设置为 1777 以便其他用户可以连接或附加到它: - wemux Attach 将您连接到现有的 wemux 服务器。
- wemux stop 终止 wemux 服务器并删除之前创建的套接字。该命令需要从单独的终端执行。或者,您可以使用内置的 exit shell 来关闭窗格并最终返回到常规 shell 会话。
- wemux kick username 删除当前通过 SSH 从 wemux 服务器登录的用户,并删除他/她的恶意会话(稍后将详细介绍)。此命令要求 wemux 服务器已作为 root 或具有 sudo 权限启动。
- wemux config 在环境变量 $EDITOR 指示的文本编辑器中打开配置文件(仅当您的系统中配置了此类变量时,您可以使用 echo $EDITOR 进行验证)。
chmod 1777 /tmp/wemux-wemux
前面列出的所有 tmux 命令在 wemux 中都有效,其优点是客户端可以以三种模式之一连接到 wemux 服务器。
为此,请执行“潜在客户端”下面的 COMMAND 列中的命令(可以这么说(一旦加入 wemux,它将成为实际客户端)服务器):
Mode | Description | Commands |
Mirror | Read-only, non-interactive | wemux mirror |
Pair | Interactive, client shares cursor with the server | wemux pair |
Rogue | Joins an existing session but allows the client to uses independent windows | wemux rogue |
让我们看一下下面的截屏视频,简要演示上表中列出的三种客户端模式(顺序相同)。请注意,我使用 Terminator 来启动左窗格中的服务器(作为用户 gacanepa)并在右窗格中连接客户端(作为用户 test)。
因此,您可以轻松了解 wemux 服务器在与一个客户端交互时如何工作。通过重复客户端加入 wemux 服务器的过程,您可以让多个客户端同时执行相同的操作。
wemux 终端的其他功能
如果上面的段落没有给您足够的理由来尝试 wemux,希望以下功能能够说服您。
被允许启动 wemux 服务器的用户(根据 /usr/local/etc/wemux.conf
文件中的 host_list 指令)可以托管如果 allow_server_change 指令设置为 true,则同时进行多个会话:
allow_server_change="true"
要启动两个名为 la 和 emea 的会话,请在两个不同的终端中执行以下命令:
wemux join la && wemux start
wemux join emea && wemux start
再次,我们将使用 Terminator 同时查看两个终端(这类似于您通过使用 Ctrl+Alt+F1 切换到不同控制台所期望的结果) F7):
按 Enter 后,两个会话将分别启动:
然后您可以让客户端通过以下方式加入任一会话:
wemux join la && wemux attach
Or
wemux join emea && wemux attach
最后,要让远程用户(通过 SSH 连接)在登录后自动在 wemux 上启动,并在分离时从服务器断开连接,请将以下节附加到其 ~/.bash_profile
文件中:
wemux [mode]; exit
其中 [mode]
是前面列出的客户端模式之一。
或者,客户端可以使用以下命令从一台服务器切换到另一台服务器:
exit
wemux join [server name here] && wemux [mode]
概括
在本文中,我们解释了如何使用 wemux 轻松设置终端的远程查看(甚至相互协作)。 wemux 在 MIT 许可下发布,是开源软件,您可以根据您的需求进一步定制它。
源代码可以在 wemux Github 中找到,也可以在您的系统中的 /usr/local/bin/wemux 中找到。在同一个 Github 存储库中,您可以找到有关此程序的更多信息。
您觉得这篇文章有用吗?请使用下面的表格告诉我们您的想法。