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 应用程序时,我的意思是这是一个很棒的赞美。 Terminator 是一款非常可配置和灵活的应用程序。 在许多方面,它通过采用朴实的 GNOME 终端并将其转换为强大的复用器,体现了开源的力量。

? 大小

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

?️ 控制

Terminator 的默认控件没有太多一致性。 您对某些命令使用 Alt 键,对其他命令使用 Ctrl 键,Shift+CtrlCtrl+AltShift+Super 和鼠标。 话又说回来,它是我尝试过的最可配置的复用器之一,因此凭借观点和一点努力,您可以设计出适合您的方案。

⌨️ 黑客因子

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

全部选择

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

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

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

11 条评论

在某个时候,我以为 Screen 已经被弃用了,这篇文章很棒,可以让我了解终端复用领域的最新动态。

我认为它“休息”了一段时间,但醒来并已更新,所以又复活了...

回复 作者 alanfd_oss

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

不爱 Tilix 吗? 在过去的 ~3 年里,我一直使用它,效果很好。 ymmv

我[字面上]抛硬币,Terminator 胜过了 Tilix,才有了这篇文章。 但下次,就轮到 Tilix 了!

回复 作者 Craigo

啊哈,但是 Byobu 呢,它包含在某个 RHEL 竞争对手的服务器发行版中。 您可以拥有单独的会话、窗口和窗格,我喜欢 byobu。 然后将其与 Micro 文本编辑器结合使用,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 年

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.