显示终端多路复用器的使用方法 Linux

您想从单个终端控制台运行多个虚拟屏幕会话吗? 或者通过 SSH 阻止因特网连接中断而终止您的控制台会话? 如果是这样,欢迎 GNU Screen Terminal Multiplexer 今天加入您的工具包!

使用 GNU 屏幕实用程序

GNU Screen 实用程序用于 Linux 是一个多功能屏幕多路复用器,允许您从当前终端会话启动多个虚拟屏幕会话(将它们视为附加控制台窗口)。

入门很容易。 您可以使用安装 GNU Screen 工具 sudo apt install screen 在终端的命令行上:

如果您使用的是基于 RedHat/RPM 的操作系统,请在上述命令中将 `apt` 替换为 `yum`。

要打开一个新的虚拟控制台,您现在只需键入 screen 然后按 enter,这将显示一个欢迎屏幕:

只需按空格键或返回即可关闭主屏幕。 命令提示符似乎返回,但实际上,您现在处于虚拟屏幕会话中。 将其视为在旧终端会话中运行的备用终端会话。

GNU 屏幕最好的事情之一是,即使主/主终端会话以某种方式失败或崩溃(例如 example 由于网络连接丢失),即使您关闭或结束主/主终端会话,此屏幕会话仍将保持运行状态!

很容易检查我们当前是否在屏幕会话中:

这个 if 语句测试是否 $STY 变量是否设置。 如果他 $STY 设置了环境变量,那么这是一个屏幕会话。

那么我们如何回到我们的主/主终端会话呢? 这可以使用 GNU 屏幕将在后台收听的键盘组合来完成。 只需按 CTRL+A > CTRL+D。 执行此操作时是否释放 CTRL 键并不重要。

您将看到类似于此输出的内容:

退出 GNU Screen 会话

这也告诉我们,我们只是断开了与 GNU 虚拟屏幕会话的连接; 还没有结束,如果我们愿意,我们可以重新连接。 即使由于某种原因主/主会话已关闭,虚拟屏幕会话也不会结束,我们可以重新连接到它。

要重新连接到会话,我们可以发出一个简单的命令:

重新连接到 GNU Screen 会话

确认此命令只会使我们返回到我们正在运行的虚拟屏幕会话。 请注意,我们使用相关的进程 ID(当我们与屏幕会话断开连接时报告的)重新连接到虚拟屏幕会话。 这也立即阐明了我们如何启动无限数量的屏幕会话(尽管每个屏幕会话都会消耗一定数量的资源)并使用 screen -d -r 领域。

我们可以在屏幕的在线手册中阅读更多关于我们用于此命令的选项:

手动屏幕澄清 ryd 选项

要更全面地了解屏幕及其众多功能,您可以使用 man screen 领域:

GNU屏幕 Linux 手动的

如果我们想看到机器上正在运行的显示会话列表,我们可以发出一个 screen -list 领域:

GNU 屏幕列表

请注意会话是如何报告为“已分离”或“已连接”的,具体取决于您是否仍在某处连接到它。

有时您可能想在屏幕会话中向后滚动,例如 example 当生成的输出行数多于终端窗口大小中可用的行数时。 您希望这会像使用鼠标上下滚动一样简单,但事实并非如此。

相反,您可以使用键盘组合 CTRL+ESC 来启用复制模式(尽管如果您只是滚动则不会进行实际复制),现在您的鼠标以及标准的光标向上/向下键将正常工作。 当您完成搜索(和/或复制,如果您愿意, example 鼠标选择和复制正常),只需再次按 ESC 键取消复制模式。

有时在屏幕内运行的程序可能会崩溃,例如 example,由于程序错误或内存或磁盘不足的情况。 如果发生这种情况,屏幕上将显示为“Dead” screen -list 生产:

失败的 GNU Screen 会话

那时,我们可以通过发出一条命令来清除死屏会话 screen -wipe 领域:

删除的 GNU 屏幕会话

在本文中,我们探讨了如何安装 GNU Screen Utility,如何使用它启动新的虚拟屏幕会话,以及如何断开并重新连接到现有的屏幕会话。 最后,我们看看如何在屏幕会话中导航,以及如何处理死屏会话。