如何在 Linux 中使用屏幕终端多路复用器如何在 Linux 中使用屏幕终端多路复用器如何在 Linux 中使用屏幕终端多路复用器如何在 Linux 中使用屏幕终端多路复用器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中使用屏幕终端多路复用器

您想从单个终端控制台运行多个虚拟屏幕会话吗?或者避免因通过 SSH 终止您的控制台会话而导致 Internet 连接中断?如果是这样,欢迎今天将 GNU Screen 终端多路复用器加入您的工具集中!

使用 GNU 屏幕实用程序

用于 Linux 的 GNU Screen 实用程序是一个多功能的屏幕多路复用器,允许您从当前终端会话中启动多个虚拟屏幕会话(将它们想象成额外的控制台窗口)!

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

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

要打开一个新的虚拟控制台,您现在只需键入 screen 并按回车键,这将显示一个初始屏幕:

只需按空格键或返回即可关闭启动画面。命令提示符似乎会返回,但实际上,您现在处于虚拟屏幕会话中。将其视为在前一个终端会话中运行的替代终端会话。

GNU screen 的一大优点是,即使主/父终端会话以某种方式失败或崩溃(例如由于网络连接丢失),甚至当您关闭或终止主/父终端会话时,这屏幕会话将保持实时和运行!

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

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

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

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

这也告诉我们,我们只是从虚拟 GNU 屏幕会话中分离出来——它没有终止,如果我们愿意,我们可以连接回它。即使由于某种原因主/父会话已关闭,虚拟屏幕会话也不会终止,我们可以再次连接回它。

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

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

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

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

如果我们想查看此时机器上正在运行的屏幕会话列表,我们可以发出 screen -list 命令:

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

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

相反,您可以使用 CTRL+ESC 键盘组合来启用复制模式(尽管如果您只滚动,则不会进行实际复制),现在您的鼠标以及标准的上/下光标键将正常工作。当您完成查看(和/或复制,如果您喜欢,例如用鼠标正常选择和复制),只需再次按 ESC 键即可中止复制模式。

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

此时,我们可以通过发出 screen -wipe 命令来清除死屏会话:

在本文中,我们探讨了如何安装 GNU screen 实用程序,如何使用它启动新的虚拟屏幕会话,以及如何分离和重新连接到现有的屏幕会话。最后,我们看看如何在屏幕会话中滚动,以及如何处理死屏会话。

©2015-2025 艾丽卡 support@alaica.com