15%

Alexhost 满足您的愿望

参与调查 并赢得奖品

09.10.2024

使用屏幕来附加和分离控制台会话

Screen 是一个强大的终端复用器,允许您从单个终端窗口创建、管理和恢复多个 shell 会话。当通过 SSH 在远程服务器上工作或需要运行长时间运行的进程时,这尤其有用,因为您希望在断开会话后仍然保持进程运行。在本指南中,我们将介绍使用 screen 的基础知识,包括如何启动、分离和重新附加会话。

安装 screen

在使用 screen 之前,请确保它已安装在您的系统上。在大多数 Linux 发行版中,您可以使用包管理器安装它:

对于 Debian/Ubuntu:

sudo apt-get install screen

对于 CentOS/RHEL:

sudo yum install screen

对于 Fedora:

sudo dnf install screen

对于 macOS(使用 Homebrew):

brew install screen

启动一个 screen 会话

要启动一个新的 screen 会话,只需输入:

screen

这将打开一个新的 screen 会话,您将看到标准的 shell 提示符。

命名一个 screen 会话

为了更容易识别您的 screen 会话,您可以为它们命名:

screen -S session_name

将 session_name 替换为您会话的描述性名称。这使得管理多个会话变得更加容易。

示例:

screen -S mysession

从 screen 会话中分离

要在不终止会话的情况下从 screen 会话中分离,请按以下键组合:

Ctrl + A,然后 D
  • Ctrl + A:这会向 screen 发出您想要发送命令的信号。
  • D:这是分离会话的命令。

分离后,您将回到终端提示符,但 screen 会话将继续在后台运行。

列出 screen 会话

如果您有多个 screen 会话在运行,可以使用以下命令列出它们:

screen -ls

此命令将显示所有活动的 screen 会话及其会话 ID 和名称。

示例输出:

当前有以下屏幕:
12345.mysession(已分离)
67890.another_session(已分离)
在 /var/run/screen/S-user 中有 2 个套接字。

重新附加到 screen 会话

要重新附加到 screen 会话,请使用 -r 选项,后跟会话 ID 或名称:

使用会话 ID:

screen -r 12345

使用会话名称:

screen -r mysession

如果您只有一个已分离的会话,可以简单地运行:

screen -r

附加到已经附加的 screen 会话

如果一个 screen 会话仍然附加,并且您想强制重新附加(例如,如果您失去连接),请使用 -d -r 选项:

screen -d -r session_name_or_id
  • -d:如果会话已经附加,则分离该会话。
  • -r:重新附加到该会话。

此命令将会话从先前的终端分离并重新附加到当前终端。

在 screen 会话中创建新窗口

一旦进入 screen 会话,您可以使用以下命令创建新窗口(虚拟终端):

Ctrl + A,然后 C

每个新窗口就像是 screen 会话中的一个新终端。您可以在它们之间切换,这对于多任务处理非常有用。

在窗口之间切换

要在 screen 会话中的窗口之间切换:

  • 要转到下一个窗口:
    Ctrl + A,然后 N
  • 要转到上一个窗口:
    Ctrl + A,然后 P
  • 要列出所有窗口:
    Ctrl + A,然后 “

    这将显示所有打开窗口的列表,允许您选择一个。

关闭 screen 会话

要关闭一个 screen 会话,只需退出所有正在运行的进程或在每个窗口中输入 exit,直到所有窗口都关闭。当最后一个窗口关闭时,screen 会话将终止。

常见 screen 命令摘要

结论

screen 是一个多功能工具,用于管理长时间运行的进程并在远程服务器上维护持久的控制台会话。使用 screen,您可以从会话中分离,保持进程在后台运行,并从任何地方重新附加,这使其成为系统管理员和开发人员的宝贵工具。通过掌握创建、管理和导航 screen 会话的基本命令,您可以大大提高在基于终端环境中的生产力。

15%

Alexhost 满足您的愿望

参与调查 并赢得奖品