如何托管多个 Linux 终端以便使用 Wemux 查看和协作
在之前的文章中,我们解释了如何使用tmux(终端多路复用器)从单个终端访问和控制多个终端(或窗口)。
现在我们将向您介绍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.在$PATH变量中创建指向wemux可执行文件内部/usr/local/bin
或其他目录的符号链接。
# 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 attachment将您连接到现有的 wemux 服务器。
- wemux stop会终止 wemux 服务器并删除先前创建的套接字。此命令需要从单独的终端执行。或者,您可以使用 exit shell 内置命令关闭窗格并最终返回到常规 shell 会话。
- wemux kick username会从 wemux 服务器中清除当前通过 SSH 登录的用户,并删除其恶意会话(稍后会详细介绍)。此命令要求 wemux 服务器已以 root 身份或具有sudo权限启动。
- wemux config在环境变量 $EDITOR 指示的文本编辑器中打开配置文件(仅当您的系统中配置了此类变量时,您可以使用 echo $EDITOR进行验证)。
# chmod 1777 /tmp/wemux-wemux
前面列出的所有tmux命令在wemux中都是有效的,其优点是客户端可以以三种模式之一连接到wemux服务器。
为此,请在“潜在客户”中执行下面的命令列中的命令,可以这么说(一旦加入 wemux 服务器,它将成为实际客户端):
模式 | 描述 | 命令 |
镜子 | 只读、非交互式 | wemux 镜像 |
一对 | 交互式,客户端与服务器共享光标 | wemux 对 |
流氓 | 加入现有会话但允许客户端使用独立窗口 | wemux流氓 |
让我们看一下下面的截屏视频,它简要演示了上表中列出的三种客户端模式(顺序相同)。请注意,我使用Terminator在左侧窗格中启动服务器(作为用户gacanepa),并在右侧窗格中连接客户端(作为用户 test )。
因此,您可以轻松了解wemux服务器在与一个客户端交互时的工作方式。通过重复客户端加入 wemux 服务器的过程,您可以让多个客户端同时执行相同的操作。
wemux 终端的其他功能
如果以上段落没有给您足够的理由去尝试wemux,希望以下功能可以说服您。
如果allow_server_change指令设置为 true,则允许启动wemux服务器(根据文件中的host_list/usr/local/etc/wemux.conf
指令)的用户可以同时主持多个会话:
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 存储库中,您可以找到有关该程序的更多信息。
您觉得这篇文章有用吗?请使用下面的表格告诉我们您的想法。