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 键,对其他命令使用 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 年

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.