网站搜索

如何托管多个 Linux 终端以使用 Wemux 进行查看和协作


在上一篇文章中,我们解释了如何使用 tmux(Terminal MultipleXer)从单个终端访问和控制多个终端(或窗口)。

现在我们向您介绍wemuxtmux的多用户版本),它不仅包含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) 

在继续之前安装它(使用yumaptitude,具体取决于您的发行版):

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) 

其中 user1user2user3 是允许启动 wemux 服务器的用户。您可以根据需要添加任意数量的用户,并用空格分隔。其他用户将能够连接到正在运行的 wemux 服务器,但不允许启动服务器。

wemux 多用户终端简介

为了简化事情,请记住,您可以将 wemux 视为一种工具,可促进同一 tmux 会话上的控制台查看和相互协作。

如前所述,在配置文件 (/usr/local/etc/wemux.conf) 中,您必须已经指定允许哪些用户启动 wemux 服务器,或者换句话说,其他用户可以附加到的 tmux 会话。在这种情况下,这些“用户”被称为客户。

总结一下:

  1. Wemux 服务器:一个 tmux 会话。
  2. Wemux 客户端:加入上述 tmux 会话的用户。

这些是用于管理 wemux 服务器的命令:

  1. wemuxwemux start:启动一个新的 wemux 服务器(如果不存在;否则创建一个新服务器)并在 /tmp/wemux-wemux 中创建一个套接字 其权限需要设置为 1777 以便其他用户可以连接或附加到它:
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. wemux Attach 将您连接到现有的 wemux 服务器。
  4. wemux stop 终止 wemux 服务器并删除之前创建的套接字。该命令需要从单独的终端执行。或者,您可以使用内置的 exit shell 来关闭窗格并最终返回到常规 shell 会话。
  5. wemux kick username 删除当前通过 SSH 从 wemux 服务器登录的用户,并删除他/她的恶意会话(稍后将详细介绍)。此命令要求 wemux 服务器已作为 root 或具有 sudo 权限启动。
  6. wemux config 在环境变量 $EDITOR 指示的文本编辑器中打开配置文件(仅当您的系统中配置了此类变量时,您可以使用 echo $EDITOR 进行验证)。

前面列出的所有 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"

要启动两个名为 laemea 的会话,请在两个不同的终端中执行以下命令:

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 存储库中,您可以找到有关此程序的更多信息。

您觉得这篇文章有用吗?请使用下面的表格告诉我们您的想法。