Linux screen 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 Linux 中使用强大的 screen 命令。screen 命令允许你创建和管理多个终端会话,这对于长时间运行的进程、远程会话或在需要切换不同任务而不丢失工作内容时特别有用。你将首先安装 screen 包,然后创建并在多个 screen 会话之间进行导航。最后,你将学习如何分离和重新连接到 screen 会话,确保即使你需要断开终端连接,你的工作内容也能得到保留。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") subgraph Lab Skills linux/software -.-> lab-422902{{"Linux screen 命令实用示例"}} end

screen 命令介绍

在这一步中,你将学习 screen 命令,这是一个强大的工具,允许你创建和管理多个终端会话。screen 命令对于长时间运行的进程、远程会话或在需要切换不同任务而不丢失工作内容时特别有用。

首先,让我们在 Ubuntu 22.04 Docker 容器中安装 screen 包:

sudo apt-get update
sudo apt-get install -y screen

接下来,创建一个新的 screen 会话:

screen

这将启动一个新的 screen 会话,你会看到一条消息,表明你现在处于一个 screen 会话中。

要列出所有当前运行的 screen 会话,可以使用以下命令:

screen -ls

示例输出:

There is a screen on:
	12345.pts-0.labex	(Detached)
1 Socket in /run/screen/S-labex.

要从当前的 screen 会话中分离,按下 Ctrl+A 然后按 d。这将会话保留在后台运行。

要重新连接到 screen 会话,使用以下命令:

screen -r

这将重新连接到正在运行的 screen 会话。

创建和导航 Screen 会话

在这一步中,你将学习如何创建和导航多个 screen 会话,这是 screen 命令的一个强大功能。

首先,让我们创建一个带有自定义名称的新 screen 会话:

screen -S mysession

这将创建一个名为 "mysession" 的新 screen 会话。

接下来,再创建另一个 screen 会话:

screen -S othersession

现在,你有两个正在运行的 screen 会话。

要列出所有当前的 screen 会话,可以使用以下命令:

screen -ls

示例输出:

There are screens on:
	12345.mysession	(Detached)
	67890.othersession	(Detached)
2 Sockets in /run/screen/S-labex.

要在 screen 会话之间切换,可以使用以下命令:

## 切换到 "mysession" screen 会话
screen -r mysession

## 切换到 "othersession" screen 会话
screen -r othersession

当你在一个 screen 会话中时,可以使用以下键盘快捷键进行导航:

  • Ctrl+A c:创建一个新的 screen 窗口
  • Ctrl+A n:切换到下一个 screen 窗口
  • Ctrl+A p:切换到上一个 screen 窗口
  • Ctrl+A ":列出所有 screen 窗口

尝试创建并在多个 screen 会话之间切换,以熟悉其工作原理。

分离和重新连接 Screen 会话

在这一步中,你将学习如何从一个 screen 会话中分离,并在稍后重新连接到它。

首先,让我们创建一个新的 screen 会话:

screen -S myapp

现在,在 screen 会话中启动一个长时间运行的进程,例如运行一个 web 服务器:

python3 -m http.server 8000

要从 screen 会话中分离,按下 Ctrl+A 然后按 d。这将会话保留在后台运行。

你可以使用 screen -ls 命令验证 screen 会话是否仍在运行:

screen -ls

示例输出:

There is a screen on:
	12345.myapp	(Detached)
1 Socket in /run/screen/S-labex.

要重新连接到 screen 会话,使用以下命令:

screen -r myapp

这将重新连接到 "myapp" screen 会话,你应该会看到 web 服务器仍在运行。

要退出 screen 会话,按下 Ctrl+C 停止 web 服务器,然后按下 Ctrl+D 退出 screen 会话。

总结

在本实验中,你学习了强大的 screen 命令,它允许你创建和管理多个终端会话。你安装了 screen 包,创建了一个新的 screen 会话,从中分离,然后重新连接到正在运行的会话。此外,你还学习了如何创建并在多个 screen 会话之间导航,这对于长时间运行的进程或在需要切换不同任务而不丢失工作内容时特别有用。

你还了解了如何列出所有当前运行的 screen 会话,并使用 screen -r 命令在它们之间切换。这些技能将帮助你在终端环境中更高效、更富有成效地工作。

Linux 命令速查表