Linux用户经常需要大量的虚拟可视空间。一个终端窗口永远不够,所以终端有标签。一个桌面限制太多,所以有虚拟桌面。当然,应用程序窗口可以堆叠,但是堆叠起来有多好呢?哎呀,即使是背景文本控制台也有F1到F7可以在任务之间来回切换。有了这么多的多任务处理方式,有人发明了终端多路复用器的概念也就不足为奇了。不可否认,这是一个令人困惑的术语。在传统电子产品中,“多路复用器”是一种接收多个输入信号并将选定信号转发到单个输出的组件。终端多路复用器恰恰相反。它从输入(人在键盘上键入终端窗口)获取指令并将该输入转发到任意数量的输出(例如,一组服务器)。话又说回来,“多路复用器”一词在美国也是一个流行术语,指的是有许多屏幕的电影院(与“cineplex”一词的含义相同)。在某种程度上,这几乎描述了终端多路复用器的作用。它可以在一个盒子中提供多个屏幕。无论这个术语是什么意思,任何尝试过它的人都会找到自己喜欢的某种类型的多路复用器。因此,我决定看一看一些流行的终端多路复用器,看看它们的性能如何。就我的评估标准而言,至少,我需要每个多路复用器能够拆分和堆叠终端窗口。tmux据我所知,tmux是tmux中的术语“多路复用器”。它工作出色。它作为守护进程运行,因此即使您关闭正在查看的终端仿真器,您的终端会话仍然处于活动状态。它将您的终端屏幕分成多个面板,这样您就可以在每个面板上打开一个独特的终端提示符。通过扩展,这意味着您还可以远程连接到任意数量的系统并在您的终端中打开它们。使用tmux的镜像(或电子术语中的“反向多路复用”)输入到其他打开的窗格的能力,可以从中央命令窗格同时控制多台计算机。当GNUScreen只能水平分割时,tmux具有垂直分割的能力,这吸引了追求最大灵活性的爱好者。而灵活性正是用户在tmux中获得的。它可以切片、堆叠、选择和服务;没有什么是它做不到的。📦包大小从包中安装tmux大约需要700K,这还不包括它所依赖的十几个共享库。🎛?ControlKeystmux的默认触发键是Ctrl+B,虽然在它的配置文件中很容易重新定义。??黑客因素即使你只是在学习如何使用终端,你也一定会觉得使用tmux的人看起来像黑客。它看起来很复杂,但是一旦您知道了正确的键绑定就很容易使用。它为您提供了许多助您飞行的有用技巧,并且是快速构建HUD(平视显示器)的超级简单方法,可将您需要的所有信息呈现在您面前。GNUScreenGNUScreen与tmux一样,GNUScreen也运行一个守护进程,因此即使您关闭了用于启动它的终端,您的shell仍然可用。您可以连接和共享来自不同计算机的屏幕。它可以将您的终端屏幕拆分为水平或垂直窗格。与tmux不同,GNUScreen可以通过串行连接(屏幕9600/dev/ttyUSB0可以),并且可以通过键绑定轻松地向XON和XOFF发出信号。在串行连接中,对多路复用器的需求可能不如在SSH会话中常见,因此大多数用户都没有意识到Screen的这个真正特殊的功能。然而,GNUScreen是一个很棒的多路复用器,有很多有用的选项。如果您真的需要同时向多个服务器发送信号,可以使用ClusterSSH和Ansible[1]等专用工具。📦包大小从包中安装GNUScreen大约需要970K,这还不包括它所依赖的十几个共享库。🎛?控制键GNUScreen的默认触发键是Ctrl+A,这对于那些熟悉Bash快捷键的人来说尤其烦人。幸运的是,您可以轻松地在配置文件中重新定义这个触发键。??黑客因素当使用Screen通过串口连接到您的路由器或原型板时,您将成为所有硬件黑客朋友羡慕的对象。KonsoleKonsole令人惊讶的是,Konsole并不标榜自己是多路复用器,但它是其中之一。它可以使用Qt窗格和选项卡进行必要的窗口拆分和堆叠,但它也可以通过“编辑(将输入复制到)”菜单中的选项将输入从一个窗格传递到另一个(或两个)。但是,它缺少的最值得注意的功能是作为远程重新连接的守护进程运行的能力。与tmux和GNUScreen不同,您无法远程连接到运行Konsole的机器并加入会话。对于某些管理员来说,这可能不是问题。与SSH[3]相比,许多管理员更频繁地使用VNC[2]连接到计算机,因此“重新加入”会话就像单击VNC客户端上的Konsole窗口一样简单。使用Konsole作为多路复用器在KDE极客中大受欢迎。Konsole是我使用的第一个Linux终端(直到今天,我有时会按Ctrl+N来切换新选项卡),因此能够将这个熟悉的终端用作多路复用器是一个很大的便利。这绝不是必要的,因为tmux和Screen无论如何都可以在Konsole中运行,但是通过让Konsole处理窗格,我不必调整我的肌肉记忆。这种微妙的功能包含使??KDE变得伟大[4]。📦Konsole本身的包大小约为11KB,但它依赖于105个KDE和Qt库,因此实际上至少有50MB。🎛?控制键最重要的Konsole快捷键以Shift+Ctrl开头,分割屏幕、打开新选项卡、将输入复制到其他窗格等也是如此。这是KDE中的主控制台,所以如果您熟悉Plasma桌面,快捷方式会很熟悉。??黑客因素使用Konsole作为您的多路复用器使您有资格称自己为KDE高级用户。TerminatorTerminator对于GNOME用户,Terminator多路复用器是一种向其极简主义GNOME终端添加功能的简单方法。除了必要的多路复用功能外,Terminator还向所有打开的窗格广播输入,但与Konsole一样,它不在后台运行,因此您可以通过SSH重新连接到它。也就是说,GNOME和Wayland使VNC变得如此简单,您可能会发现没有必要通过SSH恢复终端会话。如果你愿意,终结者可以完全由鼠标驱动。Konsole通过其主菜单具有相同的功能。使用Terminator,您可以右键单击shell中的任意位置以显示水平或垂直拆分窗口、将窗格分组为广播目标、广播输入、关闭窗格等选项。您还可以为所有这些操作配置键盘快捷键,因此在很多方面,您都可以打造属于自己的体验。我认为自己主要是KDE用户,所以当我说Terminator感觉像一个KDE应用程序时,我实际上是在给它一个巨大的赞美。Terminator是一款可配置且灵活的应用程序。在许多方面,它体现了开源的力量,将不起眼的GNOME终端变成了强大的多路复用器。📦PackageSizeTerminator安装大小为2.2MB,其中大部分是Python模块。但它依赖于GTK3和GNOME,因此如果您没有运行完整的GNOME桌面,则可能需要更大的安装来引入这些依赖项。🎛?ControlKeysTerminator的默认控制键不一致。您可以对某些命令使用Alt键,对其他命令使用Ctrl,Shift+Ctrl、Ctrl+Alt、Shift+Super等,以及鼠标。话虽如此,这是我尝试过的最可配置的多路复用器之一,因此您可以通过一些思考和一些努力来设计适合您的模式。??黑客因素当您使用Terminator时,您会觉得自己是最现代、脚踏实地的黑客。由于其各种极客选项,它是多路复用的完美选择,而且由于它非常灵活,无论您的手是否在键盘上,您都可以同样轻松地使用它。我确信有更多的多路复用器和一些具有类似多路复用功能的应用程序。您不必找到一个多路复用器,它可以完全按照您想要的方式完成您需要的一切。您可以使用多个。其实你甚至可以同时使用多个,因为tmux和Screen其实就是shell,而Konsole和Terminator是显示shell的终端。对触手可及的工具感到满意,并且它们可以帮助您管理工作空间,从而使您能够有效地工作,这才是最重要的。去试用多路复用器,或在您最喜欢的应用程序中发现类似多路复用器的功能。它可能会改变您看待计算的方式。
