前言
在日常使用 Linux 服务器时,尤其是在通过终端进行远程操作的场景中,我们经常会遇到操作被意外中断或会话被关闭的情况。这对于需要长时间运行的任务来说无疑是一个巨大的麻烦。为了解决这一问题,Linux 提供了一个非常实用的命令工具——。
Linux Screen 是一款多任务窗口管理器,用于在终端中创建和管理虚拟会话。其核心功能是保持会话运行,即使断开连接也能恢复,适合远程服务器上的长时间任务。支持多会话管理、窗口切换及用户共享。安装可通过系统包管理器完成,常用参数包括 -S 命名、-r 恢复、-d 强制脱离、-ls 列出。基本操作涉及启动、创建窗口、切换及退出。相比 tmux,Screen 更轻量,适用于简单的会话管理需求。

在日常使用 Linux 服务器时,尤其是在通过终端进行远程操作的场景中,我们经常会遇到操作被意外中断或会话被关闭的情况。这对于需要长时间运行的任务来说无疑是一个巨大的麻烦。为了解决这一问题,Linux 提供了一个非常实用的命令工具——。
screenscreen 是一个多任务窗口管理器,它允许用户在单个终端窗口中创建多个会话,并在这些会话之间进行切换。它的最大特点是可以将正在运行的会话'脱离'当前的终端窗口,即使用户断开连接或者关闭终端,会话依然保持运行,用户可以在稍后重新连接并继续操作。对于那些需要在后台运行长时间任务的用户来说,screen 提供了极大的便利。
screen 命令的核心功能是提供一种虚拟的终端会话管理方式,具体来说包括以下几点:
screen 会保持会话继续运行,这使得长时间任务在网络断开或意外中断时仍能顺利执行。大多数 Linux 发行版已经预装了 screen 命令。如果系统中未安装,您可以通过以下命令进行安装:
在 CentOS/RHEL 系统中:
sudo yum install screen
在 Ubuntu/Debian 系统中:
sudo apt-get install screen
要启动一个新的 screen 会话,只需在终端中输入 screen 命令即可:
screen
此时,您进入了一个新的 screen 会话,可以像平常一样执行命令。如果要退出该会话但不关闭它,可以使用 Ctrl+A 然后按 D(即'detach' 会话)。
当需要重新连接一个已经'脱离'的会话时,可以使用 screen -r 命令:
screen -r
如果有多个会话运行,可以通过 screen -ls 来查看当前正在运行的会话,并指定要恢复的会话 ID:
screen -ls
screen -r [会话 ID]
当任务完成后,可以通过 exit 命令退出会话:
exit
这将关闭当前的会话窗口,并终止其中运行的进程。
screen 命令提供了丰富的参数选项,使用户可以更灵活地管理会话。以下是一些常用的参数及其作用。
-S:指定会话名称使用 -S 参数可以为 screen 会话指定一个名称,便于后续的管理。例如:
screen -S mysession
此时会启动一个名为 mysession 的会话。
-r:恢复会话如前所述,-r 参数用于恢复一个已经脱离的会话。如果有多个会话,可以通过会话 ID 恢复特定会话:
screen -r mysession
-d:强制脱离会话在某些情况下,您可能已经从某个终端连接了 screen 会话,此时想要从另一个终端连接该会话,可以使用 -d -r 参数强制脱离并恢复:
screen -d -r mysession
-ls:列出所有会话通过 screen -ls 命令可以查看当前正在运行的所有 screen 会话:
screen -ls
在一个 screen 会话中,用户可以通过快捷键 Ctrl+A 然后按 C 来创建一个新窗口。每个窗口都相当于一个独立的 shell 环境,用户可以在不同窗口中运行不同的任务。
在 screen 中可以使用 Ctrl+A 然后按数字键 0 到 9 来切换到指定的窗口,也可以使用 Ctrl+A 然后按 N 来切换到下一个窗口。
要关闭当前窗口,只需在窗口中运行 exit 命令。这个操作类似于退出一个普通的 shell 会话。
在使用 ssh 远程连接服务器时,运行一些需要长时间执行的任务,比如数据库备份、文件传输、编译大规模项目等,常常因为网络不稳定或意外断开连接导致任务中断。通过 screen 命令,可以将这些任务置于后台继续运行,即使断开连接,任务也不会受到影响。
在一个终端中同时运行多个任务是常见需求。通过 screen,用户可以在同一个会话中创建多个窗口,每个窗口独立运行不同的任务,极大地提高了效率。
screen 还支持多个用户共享同一个会话。这在团队合作、远程教学或实时协同调试中非常有用。用户只需启动一个 screen 会话,然后其他用户可以通过相同的命令进入到该会话中一起操作。
有些时候我们需要监控一些脚本或服务的实时输出,确保它们正常运行。screen 允许我们在后台运行这些任务,并随时通过重新连接会话来检查它们的输出。
screen 虽然是一个强大的会话管理工具,但在某些场景中,另一个工具——tmux 也可以提供类似功能,并且具有更多的高级特性。与 screen 相比,tmux 的优势在于:
tmux 可以在同一个窗口中分割多个终端区域。tmux 提供了更加灵活的脚本化配置和管理功能。tmux 目前的开发和维护更加活跃。不过,对于一些简单的任务管理,screen 仍然是一个非常高效且轻量的工具。
screen 是 Linux 中一个非常实用的命令,特别是在远程会话管理、长时间任务运行以及多任务操作等场景下,它能够显著提升用户的操作效率。通过掌握 screen 的使用方法和常见技巧,您可以在日常工作中更加游刃有余地管理复杂的任务。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online