4 款值得尝试的 Linux 终端复用器

比较 tmux、GNU Screen、Konsole 和 Terminator,看看哪个最适合你。
100 位读者喜欢这篇文章。
FreeDOS

Opensource.com

Linux 用户通常需要大量的虚拟可视空间。一个终端窗口永远不够,所以终端有标签页。一个桌面太局限,所以有虚拟桌面。当然,应用程序窗口可以堆叠,但平铺不是更好吗?甚至后端文本控制台都有 F1 到 F7 可用于在任务之间来回切换。

有了如此多的多任务处理,有人发明终端复用器的概念也就不足为奇了。 诚然,这是一个令人困惑的术语。 在传统电子学中,“复用器”是一种接收多个输入信号并将选定的一个转发到单个输出的组件。 终端复用器则相反。 它接收来自一个输入端的指令(键盘上的用户输入到终端窗口中),并将该输入转发到任意数量的输出端(例如,一组服务器)。

另一方面,“multiplex”一词在美国也很流行,指的是拥有多个屏幕的电影院(与“cineplex”一词共享受众)。 在某种程度上,这很好地描述了终端复用器可以做什么:它可以在一个框架内提供大量屏幕。

无论这个术语是什么意思,任何尝试过复用器的人都有自己喜欢的。 因此,我决定看看几个流行的复用器,看看它们的表现如何。 就我的评估标准而言,至少我需要每个复用器都能拆分堆叠终端窗口。

Tmux

据我所知,是 tmux 开始使用“复用器”这个术语的。 它在它的工作上很出色。

它作为守护进程运行,因此即使您关闭用于查看它的终端模拟器,您的终端会话仍保持活动状态。 它将您的终端屏幕分成窗格,以便您可以在每个窗格中打开唯一的终端提示符。

从扩展来看,这意味着您还可以远程连接到任意数量的系统,并在终端中打开它们。 利用 tmux 将输入镜像(或在电子学术语中,反向复用)到其他打开窗格的能力,可以从一个中央命令窗格同时控制多台计算机。

当 GNU Screen 只有水平分割时,Tmux 就有了垂直分割,这吸引了寻求最大灵活性的粉丝。 用户通过 tmux 获得的就是灵活性。 它可以分割、堆叠、选择和服务; 实际上没有它做不到的事情。

? 大小

从软件包安装 tmux 大约占用 700K 空间,不包括它所依赖的十几个共享库。

?️ 控制

tmux 的默认触发键是 Ctrl+B,尽管很容易在其配置文件中重新定义此键。

⌨️ 黑客因子

即使您只是在学习如何使用终端,通过使用 tmux,您也一定会觉得自己像个黑客。 它看起来很复杂,但是一旦你了解了正确的按键绑定,它就很容易使用。 它为您提供了许多有用的技巧来让自己忙碌起来,并且它是构建一个快速 HUD 的一种非常简单的方法,其中包含您需要的所有信息。

GNU Screen

与 tmux 一样,GNU Screen 运行一个守护进程,因此即使在您关闭用于启动它的终端后,您的 shell 仍然可用。 您可以从不同的计算机连接并共享 Screen。 它将您的终端屏幕分成水平或垂直窗格。

与 tmux 不同,GNU Screen 可以通过串行连接进行连接(screen 9600 /dev/ttyUSB0 就是全部),带有用于轻松实现 XON 和 XOFF 信号的按键绑定。

通过串行连接比通过 SSH 会话更需要复用器的情况可能不太常见,因此 Screen 的真正特殊功能对大多数用户来说都失去了意义。 尽管如此,GNU Screen 仍然是一个出色的复用器,具有许多有用的选项,并且如果您真的需要一次向多个服务器发送信号,那么总是有像 ClusterSSH 和 Ansible 这样的专用工具。

? 大小

从软件包安装 GNU Screen 大约占用 970K 空间,不包括它所依赖的十几个共享库。

?️ 控制

GNU Screen 的默认触发键是 Ctrl+A,对于任何熟悉 Bash 快捷键的人来说,这尤其令人讨厌。 幸运的是,您可以轻松地在配置文件中重新定义此触发器。

⌨️ 黑客因子

当您使用 Screen 通过串行连接连接到路由器或原型电路板时,您将成为所有硬件黑客朋友羡慕的对象。

Konsole

Konsole 并没有将自己标榜为复用器,但它却是一个非常有效的复用器。 它可以利用 Qt 窗格和选项卡来完成所需的窗口拆分和堆叠,但它也可以通过编辑(将输入复制到)菜单中的一个选项将输入从一个窗格回显到另一个窗格(或全部)。

然而,它最显着的缺点是无法作为守护进程运行以进行远程重新连接。 与 Tmux 和 GNU Screen 不同,您无法远程连接到运行 Konsole 的计算机并加入会话。 对于某些管理员来说,这可能不是问题。 许多管理员 VNC 连接到机器的频率高于 SSH,因此“重新加入”会话就像在 VNC 客户端中单击 Konsole 窗口一样简单。

使用 Konsole 作为复用器是 KDE 极客的一种实力表现。 Konsole 是我使用的第一个 Linux 终端(直到今天,我有时还会按 Ctrl+N 来打开一个新选项卡),因此能够将这个熟悉的终端用作复用器是一种极大的便利。 这绝不是必需的,因为 tmux 和 Screen 无论如何都在 Konsole 中运行,但通过让 Konsole 处理窗格,我不必调整我的肌肉记忆。 这种微妙的功能包含正是 KDE 如此出色的原因

? 大小

Konsole 本身大约为 11KB,但它依赖于 105 个 KDE 和 Qt 库,因此实际上,它至少有 50MB。

?️ 控制

大多数重要的 Konsole 快捷键都以 Shift+Ctrl 开头,拆分屏幕、打开新选项卡、将输入复制到其他窗格等也是如此。 它只是 Konsole,所以如果您对 Plasma 桌面感到满意,这会感觉很熟悉。

⌨️ 黑客因子

使用 Konsole 作为您的复用器,您有权称自己为 KDE 高级用户。

Terminator

对于 GNOME 用户,Terminator 复用器是一种轻松的方式,可以为他们原本最小化的 GNOME 终端添加功能。 除了必需的复用功能外,Terminator 还可以将输入广播到所有打开的窗格,但与 Konsole 一样,它无法在后台运行,因此您无法通过 SSH 重新连接到它。 另一方面,由于 GNOME 和 Wayland 使 VNC 变得如此简单,因此您可能不会感到需要 SSH 进入来继续终端会话。

如果您愿意,Terminator 可以完全通过鼠标驱动。 Konsole 通过其主菜单也具有相同的功能。 使用 Terminator,您可以右键单击 shell 中的任何位置,并调出相关选项以水平或垂直拆分窗口、将窗格分组在一起以将其用作广播目标、广播输入、关闭窗格等等。 您还可以为所有这些操作配置键盘快捷键,因此在许多方面,您可以构建自己的体验。

我主要认为自己是 KDE 用户,所以当我说 Terminator 感觉像一个 K-app 时,我指的是一种赞扬。 Terminator 是一个令人惊讶的可配置和灵活的应用程序。 在许多方面,它通过采用简陋的 GNOME 终端并将其转换为强大的复用器,体现了开源的力量。

? 大小

Terminator 的安装大小为 2.2MB,其中大部分是 Python 模块。 但是,它依赖于 GTK3 和 GNOME,因此,如果您没有运行完整的 GNOME 桌面,您可能会看到更大的安装包来引入这些依赖项。

?️ 控制

Terminator 的默认控件没有太多一致性。 您对某些命令使用 Alt 键,对其他命令使用 CtrlShift+CtrlCtrl+AltShift+Super 和鼠标。 另一方面,它是我尝试过的最可配置的复用器之一,因此,如果您有自己的想法并付出一些努力,您可以设计一个适合您的方案。

⌨️ 黑客因子

当您使用 Terminator 时,您会感觉自己是最现代,最务实的黑客。 凭借其所有极客选项,它是多路复用的绝佳选择,并且由于它非常灵活,因此无论您的手放在键盘上还是放在键盘和鼠标之间,您都可以轻松地使用它。

全部选择

还有更多的复用器,以及一些具有类似复用功能的应用程序。 您不必找到一个复用器来完全按照您想要的方式完成您需要做的所有事情。 您可以同时使用多个。 实际上,您甚至可以同时使用多个,因为 tmux 和 Screen 实际上是 shell,而 Konsole 和 Terminator 是显示 shell 的终端。 重要的事情是您对触手可及的工具感到满意,并且它们可以帮助您管理工作区,以便您可以高效地工作。

去尝试一个复用器,或者在您喜欢的应用程序中发现类似复用的功能。 它可能会改变您对计算的看法。

接下来读什么
标签
Seth Kenlon
Seth Kenlon 是一名 UNIX 极客,自由文化倡导者,独立多媒体艺术家和 D&D 爱好者。 他曾在电影和计算机行业工作,并且经常同时从事这两个行业。

11 条评论

我一度以为 Screen 已经被弃用了,这篇文章能让我及时了解终端复用领域的最新动态。

我认为它“休息”了一段时间,但现在醒了,已经更新了,所以又活跃起来了...

回复 作者:alanfd_oss

Screen 似乎是最有可能开箱即用的,但它不允许你轻松滚动查看历史记录,所以对我来说 tmux 胜出。

没有人喜欢 Tilix 吗?在过去的三年里我一直在使用它,效果很好。个人情况可能不同 (ymmv)。

我[真的]抛硬币决定,Terminator 在这篇文章中胜过了 Tilix。 但下次,就用 Tilix 吧!

回复 作者:Craigo

啊,但是 Byobu 呢?它包含在某个 RHEL 竞争对手的服务器发行版中。你可以拥有独立的会话、窗口和窗格,我喜欢 byobu。然后将它与 Micro 文本编辑器结合起来,它也可以在自己的权限范围内分割屏幕。 :)

我已将其添加到我的列表中,以便下次查看多路复用器选项时使用! 它看起来很棒,谢谢!

回复 作者:Paul

还有另一种(但相当小众的)选择 - 在 Neovim 中使用拆分和终端缓冲区。 过去,我在远程 Linux 服务器上使用过这样的配置,令人惊讶的是,该服务器安装了 Neovim,但既没有 screen 也没有 tmux。
我会启动 nvim,输入 ':term',稍后,如果我需要更多终端窗口,我会打开另一个终端缓冲区(在拆分窗口、选项卡或直接在当前窗口中),分别是 (':sp | term'/':vsp | term', ':tabnew | term' 和 ':term')。

我特意避免提及 Vim 和 Emacs 中的拆分窗口,只是因为我觉得这太小众了。 然而,你提出了一个很好的观点:通常 Vim 安装在没有安装多路复用器的系统上,所以也许它根本不小众...

我感觉未来还会有一篇关于多路复用器的文章,所以我把它记在我的笔记里。 谢谢!

回复 作者:Mariusz Włodarczyk

Tmux 首次发布于 2007 年
Gnu Screen 首次发布于 1987 年

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.