This commit is contained in:
Xingyu Wang 2021-05-24 20:45:21 +08:00
parent de71462a7a
commit c9bd117e20

View File

@ -14,25 +14,25 @@
![4 different color terminal windows with code][1] ![4 different color terminal windows with code][1]
Linux 用户通常需要大量的虚拟视觉空间。一个终端窗口是永远不够的,所以终端有了标签。一个桌面太受限制了,所以有了虚拟桌面。当然,应用程序窗口可以堆叠,但当它们堆叠起来时,又有多大的好处呢?哎呀,即使是后台文本控制台也有 F1 到 F7可以在任务之间来回翻转。 Linux 用户通常需要大量的虚拟视觉空间。一个终端窗口是永远不够的,所以终端有了标签。一个桌面太受限制了,所以有了虚拟桌面。当然,应用程序窗口可以堆叠,但当它们堆叠起来时,又有多大的好处呢?哎呀,即使是后台文本控制台也有 `F1``F7`,可以在任务之间来回翻转。
有了这么多的多任务处理方式,有人发明了终端 *多路复用器* 的概念就不奇怪了。诚然,这是一个令人困惑的术语。在传统的电子学中,“<ruby>多路复用器<rt>multiplexer</rt></ruby>”是一个接收多个输入信号并将选定的信号转发到单一输出的部件。终端多路复用器的作用正好相反。它从一个输入(人类在键盘上向一个终端窗口打字)接收指令,并将该输入转发给任数量的输出(例如,一组服务器)。 有了这么多的多任务处理方式,有人发明了终端 *多路复用器* 的概念就不奇怪了。诚然,这是一个令人困惑的术语。在传统的电子学中,“<ruby>多路复用器<rt>multiplexer</rt></ruby>”是一个接收多个输入信号并将选定的信号转发到单一输出的部件。终端多路复用器的作用正好相反。它从一个输入(人类在键盘上向一个终端窗口打字)接收指令,并将该输入转发给任数量的输出(例如,一组服务器)。
然后,“多路复用器”一词在美国也是一个流行的术语,指的是有许多屏幕的电影院(与“<ruby>影城<rt>cineplex</rt></ruby>”一词一个意思)。在某种程度上,这很好地描述了终端复用器的作用。它可以在一个框内提供许多屏幕。 然后,“多路复用器”一词在美国也是一个流行的术语,指的是有许多屏幕的电影院(与“<ruby>影城<rt>cineplex</rt></ruby>”一词一个意思)。在某种程度上,这很好地描述了终端复用器的作用。它可以在一个框内提供许多屏幕。
不管这个词是什么意思,任何尝试过它的人都有自己的喜好的某一种多路复用器。因此,我决定看一看一些流行的终端多路复用器,看看每一个都怎么样。就我的评估标准而言,最低限度,我需要每个多路复用器能够分割*和*堆叠终端窗口。 不管这个词是什么意思,任何尝试过它的人都有自己的喜好的某一种多路复用器。因此,我决定考察一些流行的终端多路复用器,看看每一个都怎么样。就我的评估标准而言,最低限度,我需要每个多路复用器能够分割*和*堆叠终端窗口。
### tmux ### tmux
![tmux][2] ![tmux][2]
据我所知,是从 tmux 开始使用“多路复用器”这个术语的。它工作很出色。 据我所知,是从 tmux 开始使用“多路复用器”这个术语的。它工作很出色。
它作为一个守护程序运行,这样即使你关闭了正在查看的终端模拟器,你的终端会话仍然处于活动状态。它将你的终端屏幕分割成多个面板,这样你就可以在每个面板上打开独特的终端提示符。 它作为一个守护程序运行,这样即使你关闭了正在查看的终端模拟器,你的终端会话仍然处于活动状态。它将你的终端屏幕分割成多个面板,这样你就可以在每个面板上打开独特的终端提示符。
推而广之,这意味着你也可以远程连接到任何数量的系统,并在你的终端中打开它们。利用 tmux 的能力,镜像(或者以电子术语说是“反向多路复用”)输入到其他打开的窗格,就能从一个中央命令窗格同时控制几台计算机。 推而广之,这意味着你也可以远程连接到任何数量的系统,并在你的终端中打开它们。利用 tmux 的能力,将输入镜像(或者以电子术语说是“反向多路复用”)到其他打开的窗格,就能从一个中央命令窗格同时控制几台计算机。
tmux 在 GNU Screen 还只能水平分割的时候就有了垂直分割,这吸引了追求最大灵活性的粉丝。而灵活性正是用户在 tmux 中得到的。它可以分割、堆叠、选择和服务;几乎没有什么是它做不到的。 tmux 在 GNU Screen 还只能水平分割的时候就有了垂直分割能力,这吸引了追求最大灵活性的粉丝。而灵活性正是用户在 tmux 中得到的。它可以分割、堆叠、选择和提供服务;几乎没有什么是它做不到的。
#### 📦 软件包大小 #### 📦 软件包大小
@ -44,7 +44,7 @@ tmux 的默认触发键是 `Ctrl+B`,尽管很容易在其配置文件中重新
#### ⌨️ 黑客因子 #### ⌨️ 黑客因子
即使你只是在学习如何使用终端,你也一定会觉得使用 tmux 的人很像黑客。它看起来很复杂,但一旦你了解了正确的键绑定,就很容易使用。它为你提供了很多有用的技巧,让你忙得不亦乐乎,而且它是一种快速构建一个 HUD抬头显示器的超简单方法可以把你需要的所有信息摆在你面前。 即使你只是在学习如何使用终端,你也一定会觉得使用 tmux 的人很像黑客。它看起来很复杂,但一旦你了解了正确的键绑定,就很容易使用。它为你提供了很多有用的技巧,让你玩的飞起,而且它是一种快速构建 HUD抬头显示器的超简单方法可以把你需要的所有信息摆在你面前。
### GNU Screen ### GNU Screen
@ -52,7 +52,7 @@ tmux 的默认触发键是 `Ctrl+B`,尽管很容易在其配置文件中重新
像 tmux 一样GNU Screen 也运行一个守护程序,所以即使你关闭了用来启动它的终端,你的 shell 仍然可用。你可以从不同的计算机上连接并共享屏幕。它可以将你的终端屏幕分割成水平或垂直的窗格。 像 tmux 一样GNU Screen 也运行一个守护程序,所以即使你关闭了用来启动它的终端,你的 shell 仍然可用。你可以从不同的计算机上连接并共享屏幕。它可以将你的终端屏幕分割成水平或垂直的窗格。
与 tmux 不同的是GNU Screen 可以通过串行连接(`screen 9600 /dev/ttyUSB0` 就可以了),通过按键绑定可以方便地发出 `XON``XOFF` 信号。 与 tmux 不同的是GNU Screen 可以通过串行连接进行连接`screen 9600 /dev/ttyUSB0` 就可以了),通过按键绑定可以方便地发出 `XON``XOFF` 信号。
与 SSH 会话相比,在串行连接中需要多路复用器的情况可能并不常见,所以大多数用户并不了解 Screen 这个真正特殊的功能。不过GNU Screen 是一个很棒的多路复用器,有很多有用的选项。而如果你真的需要同时向多个服务器发送信号,还有专门的工具,比如 ClusterSSH 和 [Ansible][5]。 与 SSH 会话相比,在串行连接中需要多路复用器的情况可能并不常见,所以大多数用户并不了解 Screen 这个真正特殊的功能。不过GNU Screen 是一个很棒的多路复用器,有很多有用的选项。而如果你真的需要同时向多个服务器发送信号,还有专门的工具,比如 ClusterSSH 和 [Ansible][5]。
@ -74,9 +74,9 @@ GNU Screen 的默认触发键是 `Ctrl+A`,这对于熟悉 Bash 快捷键的人
对于没有标榜自己是多路复用器的 Konsole 来说,令人惊讶的是它也是其中一个。它可以使用 Qt 窗格和标签进行必要的窗口分割和堆叠,但它也可以通过“编辑(将输入复制到)”菜单中的一个选项将输入从一个窗格传到另一个(或全部)。 对于没有标榜自己是多路复用器的 Konsole 来说,令人惊讶的是它也是其中一个。它可以使用 Qt 窗格和标签进行必要的窗口分割和堆叠,但它也可以通过“编辑(将输入复制到)”菜单中的一个选项将输入从一个窗格传到另一个(或全部)。
然而,它所最明显缺乏的功能是作为一个守护程序运行以进行远程重新连接的能力。与 tmux 和 GNU Screen 不同,你不能远程连接到运行 Konsole 的机器并加入会话。对于一些管理员来说,这可能不是一个问题。许多管理员 [VNC][7] 连接到机器的次数比用 [SSH][8] 还要多,所以“重新加入”一个会话就像在 VNC 客户端上点击 Konsole 窗口一样简单。 然而,它所最明显缺乏的功能是作为一个守护程序运行以进行远程重新连接的能力。与 tmux 和 GNU Screen 不同,你不能远程连接到运行 Konsole 的机器并加入会话。对于一些管理员来说,这可能不是一个问题。许多管理员 [VNC][7] 连接到机器的次数比用 [SSH][8] 还要多,所以“重新加入”一个会话就像在 VNC 客户端上点击 Konsole 窗口一样简单。
使用 Konsole 作为多路复用器是 KDE 极客们的大招。Konsole 是我使用的第一个 Linux 终端(直到今天,我有时也会按 `Ctrl+N` 来切换新标签),所以有能力使用这个熟悉的终端作为复用器是一个很大的便利。这绝不是必要的,因为无论如何 tmux 和 Screen 都可以在 Konsole 里面运行,但是通过让 Konsole 处理窗格,我就不必调整肌肉记忆。这种微妙的功能包容正是 [KDE 的伟大之处][9]。 使用 Konsole 作为多路复用器是 KDE 极客们的大招。Konsole 是我使用的第一个 Linux 终端(直到今天,我有时也会按 `Ctrl+N` 来切换新标签),所以有能力使用这个熟悉的终端作为多路复用器是一个很大的便利。这绝不是必要的,因为无论如何 tmux 和 Screen 都可以在 Konsole 里面运行,但是通过让 Konsole 处理窗格,我就不必调整肌肉记忆。这种微妙的功能包容正是 [KDE 的伟大之处][9]。
#### 📦 软件包大小 #### 📦 软件包大小
@ -88,7 +88,7 @@ Konsole 本身大约是 11KB但它依赖于 105 个 KDE 和 Qt 库,所以
#### ⌨️ 黑客因子 #### ⌨️ 黑客因子
使用 Konsole 作为你的复用器让你有资格称自己为 KDE 高级用户。 使用 Konsole 作为你的多路复用器让你有资格称自己为 KDE 高级用户。
### Terminator ### Terminator