如何使用 screen 命令提高 Linux 终端的工作效率如何使用 screen 命令提高 Linux 终端的工作效率如何使用 screen 命令提高 Linux 终端的工作效率如何使用 screen 命令提高 Linux 终端的工作效率
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

如何使用 screen 命令提高 Linux 终端的工作效率

与系统管理员使用的许多工具类似,Linux screen 命令是另一个有助于提高工作效率的出色工具。 screen 可以被视为 Tmux 的替代品,但除了节省屏幕空间之外,它还有许多其他有用的选项。 screen 允许您创建终端/交互式 shell 的多个会话。在本教程中,我将向您简要介绍 screen 并介绍该命令的几个用例。

screen 命令的主要优点

重点介绍 screen 的一些主要优点:

  • 您可以通过 SSH 在远程终端中开始工作,与其分离,然后根据需要从不同的计算机/设备重新连接到同一终端。

  • 如果您的 SSH 连接断开,您的终端会话不会终止。相反,您通过 screen 的终端将处于“已连接”状态,直到您稍后重新连接以从中断处继续。

  • 您可以在处于分离状态的 screen 会话中运行长时间运行的进程。

  • 您可以通过screen向任何需要输入的进程发送命令。

在 Linux 上安装 screen

您可以使用操作系统包管理器安装screen。

对于 Debian/Ubuntu:


$ sudo apt-get install screen

对于 RHEL/CentOS/Fedora:


$ sudo yum install screen

screen 会话基础知识

1. 启动 screen 会话

要启动新的 screen 会话,只需键入:


$ screen

您现在将看到一个新的空白终端打开。要检查您是否处于 screen 会话中,请输入以下命令:


$ echo $TERM

如果您处于 screen 会话中,输出将为 screen 或类似内容(例如 screen.xterm-256color)。否则,它将打印xterm。

2. 从 screen 会话中分离

现在让我们脱离 screen 会话。输入 CTRL-a d 进行分离。您将看到一些输出,显示您已脱离会话。

您现在回到原来的终端。

3.检查可用screen会话列表

接下来,让我们检查哪些 screen 会话正在运行/可用。以下命令将显示当前可用的屏幕会话列表及其各自的状态(即附加或分离)。由于只有一个可用会话,因此您将看到一个屏幕会话。您还将看到您当前已脱离该会话。


$ screen -ls 

4. 附加到现有的 screen 会话

接下来,为了在您之前创建的 screen 会话中连接回您的终端,您需要使用以下命令再次附加到该会话:


$ screen -x

如果有多个可用的 screen 会话,您需要在 -x 之后指定会话的名称(请参阅下面的多会话示例)。

5. 终止screen会话

如果您在 screen 会话中输入 exit,该会话将自动终止,并且您稍后将无法重新附加到该会话。

6. 在屏幕会话内向上/向下滚动

当您处于 screen 会话中时,您会注意到无法使用终端程序的滚动条上下滚动终端会话。这是因为终端会话的输出是由 screen 实用程序控制的。要在屏幕会话内启用滚动,您需要按“CTRL-a ESC”进入所谓的“复制”模式。进入该模式后,您可以使用“向上”/“向下”键或鼠标滚轮向上/向下滚动屏幕会话。再次按“ESC”键退出“复印”模式。

这是 screen 命令的快速概述。虽然一些系统管理员的屏幕知识仅限于此,但该工具还有许多其他选项可以进一步提高工作效率。在本教程的其余部分中,我将展示 screen 的几个示例用例。

使用 screen 处理持续的 SSH 连接丢失

如果您通过 SSH 连接到 screen 会话,在离开后失去 SSH 连接,您的 screen 会话仍将运行。即使您失去了连接,screen 会话也将处于连接状态。重新登录并运行 screen -ls 命令后,您可以看到这一点:

要重新连接到仍处于“已连接”状态的 screen 会话,请运行以下命令:


$ screen -d -x

然后,您将能够从上次中断的地方恢复 SSH 终端会话。

维护多个屏幕会话

如果您想要多个屏幕会话怎么办?例如,您有多个同事使用同一用户帐户在同一服务器上工作?通过这种方式,多个屏幕会话会很有帮助。此外,您还可以通过命名每个会话来帮助减少多个屏幕会话的混乱。要为 screen 会话创建名称,请使用 -S 选项:


$ screen -S session1

现在您可以再次运行 screen -ls 命令并查看多个 screen 会话。如果要连接到特定会话,请使用 -x 选项:


$ screen -x session1 

或者,您可以指定要连接的 screen 会话的 PID:


$ screen -x 925247

通过屏幕发送命令

screen 中的另一个不错的选择是,如果您有正在等待输入的正在运行的进程,则可以通过 screen 发送命令。例如,当在 Linux 服务器上启动专用 Minecraft 服务器时,您将无法使用终端。该提示已替换为等待输入/命令的服务器提示。这就是 screen 派上用场的地方。您可以创建 screen 会话,运行 Minecraft 服务器,然后分离以返回到正常的终端提示符。然后,使用 screen,您可以通过它发送命令,而无需附加到您的会话。要通过 screen 发送命令,请运行以下命令。


$ screen -S session1 -X stuff "save$(printf \\r)"

上面的命令使用 -S 作为会话名称,-X stuff 用作指定的 screen 会话的输入缓冲区,save 作为您想要运行的命令。您还需要包含“$(printf \\r)”来输入回车符来运行命令。

记录您的屏幕会话

screen 中的另一个内置选项是日志记录。通过增加使用 screen 的经验,您会注意到的一件事是,在 screen 会话中向上滚动终端历史记录可能很困难。您可以滚动浏览屏幕会话,但需要按键盘并在屏幕上上下移动,如上所述。相反,查看终端历史记录的更简单方法是使用 screen 进行日志记录选项。要利用 screen 会话的日志记录,只需使用 screen 运行 -L 命令行选项即可:


$ screen -L

当您需要检查终端历史记录时,只需从 screen 会话中分离并查看日志即可。默认情况下,screen 的日志位于 cwd(当前工作目录)中,这意味着您首次启动 screen 会话 的位置。如果您不确定 screen 会话的 cwd 在哪里,可以通过输入 CTRL-a :exec pwd 进行检查。这将在屏幕上输出cwd - 这是您日志所在的位置。同样默认情况下,日志文件名将命名为 screenlog.0。

结论

本教程向您简要介绍了在 Linux 主机上使用 screen 的基础知识。除了节省屏幕空间之外,它还有许多其他好处,如在其他计算机/设备上分离和重新连接、避免因网络断开而丢失宝贵的工作以及向长时间运行的进程发送命令所讨论的那样。请务必查看 screen 以及该工具可以使用的许多其他命令/选项。

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