有什么比温暖闪烁的 Linux 终端更好的呢?

当然有:两个温暖闪烁的 Linux 终端。事实上,越多越好。

很久以前,终端是物理设备,但是当然,今天,它们只是在您的计算机上模拟为应用程序。如果您更喜欢终端作为您的界面,您可能知道只有一个终端是不够的。不可避免地,您将打开一个新终端或新选项卡,这样您就可以在第一个忙于编译或转换或以其他方式处理数据时使用它。

如果您是系统管理员,那么您知道在同时在多个系统上工作时您将需要至少四个打开的窗口。

更多 Linux 资源

  • Linux 命令备忘单

  • 高级 Linux 命令备忘单

  • 免费在线课程:RHEL 技术概述

  • Linux 网络备忘单

  • SELinux 备忘单

  • Linux 常用命令备忘单

  • 什么是 Linux 容器?

  • 我们最新的 Linux 文章

带有标签的终端应用程序在 Linux 上已经存在了很长时间,幸运的是,这种趋势似乎已经流行起来,因此它是现代终端的预期功能。然而,有时在选项卡之间来回切换会让人分心或不方便。

唯一的答案是分屏,这样两个或多个终端可以同时存在于一个应用程序窗口中。您的 Linux 工具包中有许多工具可以帮助您对控制台进行切片和切块。

外壳、终端和控制台

在对屏幕进行切片和切块之前,您应该知道终端、外壳和“控制台”之间的区别。要全面了解,请阅读我在启用系统管理员博客上关于该主题的文章。

简短版本:

  • shell 是一个带有提示的输入和输出屏幕。从技术上讲,您的POSIX桌面下方的某处运行了一个 shell,即使它不可见(因为它是一个启动您的用户会话的 shell)。

  • 终端是在图形服务器(例如 X11 或 Wayland)中运行的应用程序,其中加载了 shell。仅当您启动终端窗口时,终端才会运行。它或多或少是您外壳的“门户”。

  • “控制台”或“虚拟控制台”是一个术语,通常用于暗示在您的桌面之外运行的外壳。您可以通过按 Alt-Ctrl-F2 进入虚拟控制台(更多通常从 F3F7 可用,其中 F1F7 代表您的桌面,具体取决于您的发行版)。

一些应用程序允许您拆分 shell 或控制台,而其他应用程序允许您拆分终端。

tmux

tmux 终端

tmux可以说是最灵活和最有能力的屏幕分割器,它是一种以键盘为中心的终端多路复用器,这意味着您可以将一个控制台“分层”在另一个控制台之上,然后在两者之间切换。您还可以将控制台视图分成两半(或三分之一或四分之一等),以便您可以看到旁边的其他控制台。

所有控件都以键盘为中心,这意味着您无需将手从按键上移开即可寻找鼠标,而且您必须学习一些新的键盘组合。

如果您主要使用 tmux 进行屏幕分割,那么您真正需要的唯一命令是:

  • Ctrl-B % 用于垂直分割(左侧一壳,右侧一壳)

  • Ctrl-B" 用于水平分割(顶部一壳,底部一壳)

  • Ctrl-B O 激活另一个shell

  • Ctrl-B ? 寻求帮助

  • Ctrl-B d 与 Tmux 分离,使其在后台运行(使用 tmux attach 重新进入)

tmux 有很多好处,包括能够在一台计算机上启动 tmux 会话,然后从另一台计算机远程加入同一会话。它本质上是守护你的shell。

例如,通过在 Pi 上运行 tmux,我可以永久保持登录到 IRC——我在 Pi 上启动 tmux,然后从我碰巧在的任何计算机上登录。当我注销时,tmux 继续运行,耐心地等待我从另一台计算机重新连接到会话。

GNU 屏幕

GNU Screen 终端

与 tmux 类似,GNU Screen是一个 shell 多路复用器。您可以从正在运行的会话中分离和重新连接,并且可以水平和垂直分割屏幕。

屏幕比 tmux 有点笨拙。它的默认键绑定是 Ctrl-A,这也恰好是 Bash 的键盘快捷键,可以转到行首。这意味着,如果您正在运行 Screen,则必须按 Ctrl-A 两次而不是仅按一次才能转到行首。就我个人而言,我用 $HOME/.screenrc 中的这一行将触发键重新定义为 Ctrl-J:

escape ^jJ

Screen 的 split 功能运行良好,但它遗漏了 tmux 缺乏的一些玩笑。例如,当您拆分 shell 时,新的 shell 不会在另一个面板中启动。您必须使用 Ctrl-A Tab 导航到另一个空间(或者 Ctrl-J 如果您像我一样重新定义键盘快捷键)并使用 Ctrl-A C 手动创建一个新外壳

与 tmux 不同,当您退出 shell 时拆分不会消失,这是一个在某些情况下相当不错的设计功能,但有时也可能很麻烦,因为它迫使您手动管理拆分。

尽管如此,Screen 是一个可靠且灵活的应用程序,如果您发现 tmux 对您不可用,您可以运行它。

以下是使用默认键盘快捷键的基本拆分命令:

  • Ctrl-A | 用于垂直分割(左侧一壳,右侧一壳)

  • Ctrl-A S 用于水平分割(顶部一壳,底部一壳)

  • Ctrl-A Tab 激活另一个shell

  • Ctrl-A ? 寻求帮助

  • Ctrl-A d 从 Screen 中分离,让它在后台运行(使用 screen -r 重新进入)

控制台

控制台屏幕

Konsole是与 KDE Plasma 桌面捆绑在一起的终端。与 KDE 本身一样,Konsole 以高度可定制和强大而闻名。

它的众多功能之一是能够拆分其窗口,类似于 tmux 和 GNU Screen。因为 Konsole 是一个图形终端,你可以用鼠标而不是键盘来控制它的分屏功能。

拆分位于 Konsole 的 View 菜单中。您可以水平或垂直拆分窗口。要更改哪个面板处于活动状态,只需单击它。每个面板都是一个独特的终端,因此它可以有自己的主题和选项卡。

与 tmux 和 GNU Screen 不同,您不能从 Konsole 分离和重新连接。与大多数图形应用程序一样,您在实际使用 Konsole 时使用它,而在您离开时则无法访问它(除非您使用远程桌面软件)。

Emacs

Emacs rpg

Emacs 并不完全是一个终端多路复用器,但它的接口支持拆分和调整大小,并且它有一个内置终端。

如果您每天都在使用 Emacs,那么在本质上不同的应用程序之间拆分窗口的能力意味着您永远不必离开您最喜欢的文本编辑器的熟悉和舒适。此外,由于 Emacs eshell 模块是在 eLISP 中实现的,因此您可以使用在 Emacs 本身中使用的相同命令与它进行交互,从而可以轻松复制和拉取长文件路径或命令输出。

如果您在图形窗口中使用 Emacs,您可以使用鼠标执行一些操作。使用键盘快捷键更快,并且或多或少需要一些。例如,您可以通过单击来更改哪个面板是活动面板,并且您可以使用鼠标调整分屏的比例。

这些是重要的键盘快捷键:

  • Ctrl-X 3 用于垂直分割(左侧一壳,右侧一壳)

  • Ctrl-X 2 用于水平分割(顶部一壳,底部一壳)

  • Ctrl-X O 激活另一个shell(你也可以用鼠标来做)

  • Ctrl-X 0(就是零)关闭当前面板

与 tmux 和 GNU Screen 类似,只要运行 emacs-client,就可以从 Emacs 分离和重新附加。

窗口管理器

鼠毒分屏

如果您认为可以拆分屏幕并加载终端的文本编辑器很棒,想象一下您的桌面也有同样的用途。有 Linux 桌面,例如Ratpoison、Herbsluftwm、i3、Awesome,甚至是启用了特定设置的 KDE Plasma 桌面,它们将每个应用程序窗口作为桌面网格中的固定磁贴呈现给您。

与漂浮在桌面“上方”的窗口不同,它们保留在可预测的位置,因此您可以从一个切换到另一个。您可以在网格中打开任意数量的终端,模拟终端多路复用器。事实上,您甚至可以在桌面多路复用器中加载终端多路复用器。

没有什么能阻止您在其中加载带有拆分缓冲区的 Emacs。没有人知道如果你更进一步会发生什么,大多数 Linux 用户都同意最好不要去发现。

与 tmux 和 GNU Screen 不同,除非您使用远程桌面软件,否则您无法从桌面分离和重新连接。

其他选项

信不信由你,这些并不是在 Linux 上分割屏幕的唯一选择。还有其他终端仿真器,例如Tilix和之前的 Terminator,可以分成多个部分,以及带有嵌入式终端组件的应用程序等等。在评论中告诉我们您最喜欢的划分工作空间的方式。

Logo

更多推荐