当前位置:首页 > 编程语言 > 正文内容

Linux运维基础之screen命令详解

a811625532年前 (2024-02-26)编程语言9

screen 命令是一个终端多路复用器,这意味着它允许你在一个窗口中运行多个终端会话。你是否需要管理长期运行的任务,或在注销后仍保持会话的活力?这就是 screen 发挥作用的地方。

screen 的妙处在于它能分离和重新连接会话,这对远程工作、长时间运行的脚本或任何需要在多个终端窗口间跳转的任务都非常有用。常用的相关命令包括: screen -r,用于重新连接会话; screen -ls,用于列出活动会话;Ctrl + A,然后 D,用于在不终止会话的情况下分离会话。

因此,无论你是要处理各种任务的系统管理员,还是运行多个进程的开发人员,screen 都是你需要添加到 Linux 工具包中的命令。请继续阅读,了解如何充分发挥它的潜力。

screen 命令的一般语法:

screen [OPTIONS] [SESSION NAME]

1. 用指定名称创建会话

screen -S [file]

-S 选项会在屏幕中创建一个新窗口,并为其命名。

示例:

user@hostname:~$ screen -S my_session

运行此命令后,你将进入名为 my_session 的新屏幕会话。在终端中无法直接看到会话名称,但可以通过退出当前会话(按 Ctrl + A,然后按 D),然后运行 screen -ls,列出所有活动会话。

分离后 screen -ls 的输出示例:

user@hostname:~$ screen -ls
There is a screen on:
12345.my_session     (Detached)
1 Socket in /var/run/screen/S-user.

在这个例子中,12345 是屏幕会话的进程 ID,my_session 是你给会话起的名字。

要重新连接到这个会话,可以使用

screen -r 12345

或者,如果您为您的会议命名:

screen -r my_session

这将使您回到退出的屏幕会话。

2. 列出所有屏幕进程

screen -ls

该选项可显示当前打开的所有窗口,包括后台运行的窗口。

示例:

输出结果通常是这样的:

There are screens on:
12345.pts-0.hostname  (Detached)
67890.pts-1.hostname  (Attached)
2 Sockets in /var/run/screen/S-username.

下面是输出结果的细目:

  • 12345.pts-0.hostname 和 67890.pts-1.hostname 是屏幕会话的标识符。
  • 12345 和 67890 是屏幕会话的进程 ID(PID)。
  • pts-0 和 pts-1 表示终端类型。
  • hostname 是运行屏幕会话的主机名称。
  • (Detached) 或 (Attached) 表示屏幕会话的状态。
  • Detached 表示会话在后台运行,当前未连接到任何终端。
  • Attached 表示会话当前正在终端窗口中查看。
  • 2 Sockets in /var/run/screen/S-username 表示屏幕会话的数量和存储会话套接字的目录。username 是拥有会话的用户名。

3. 重新连接终端的会话

screen -r [filename]

使用此选项可重新连接过去已分离的屏幕会话。

示例:

比方说,你有一个长期运行的进程,比如下载一个大文件,你想在注销后仍让它继续运行。你可以使用 screen 创建一个新会话,并在其中运行进程。

创建一个新的 screen 会话:

screen -S my_download_session

这将创建一个名为 my_download_session 的新屏幕会话。

运行长期运行的进程:

wget http://example.com/large-file.zip

退出屏幕会话:

按下 Ctrl + A,然后按 D 从会话中退出。会话将继续在后台运行。

注销或关闭终端:

此时,您可以安全地注销或关闭终端。下载将在后台继续进行。

重新连接到屏幕会话:

稍后,当你想检查进度或重新加入会话时,可以使用 screen -r 命令。

screen -r my_download_session

这将使你重新连接到名为 my_download_session 的屏幕会话,然后你就可以看到下载或任何其他长期运行进程的进度。

如果你有多个分离的会话,但不确定会话的名称,可以用以下 *** 列出它们:

screen -ls

这将显示所有已分离和已连接的屏幕会话列表,你可以选择要重新连接的会话。

4. 退出会话

screen -d [file]

-d 选项用于退出屏幕会话,以便稍后重新连接。

示例:

下面是一个分步示例,演示如何使用  screen -d [filename]

Step 1:创建带名称的新屏幕会话

首先,创建一个新的屏幕会话并为其命名,例如 ” my_session “:

screen -S my_session

Step 2:在屏幕会话中运行一些命令

创建会话后,您将进入会话。你可以运行一些命令,比如:

ls
echo "Hello, World!"

Step 3:手动退出屏幕会话

你可以按下 Ctrl + A,然后按下 D,手动退出屏幕会话。这将使你回到原来的终端,但 ” my_session ” 会话仍在后台运行。

Step 4:重新连接到屏幕会话

你可以使用以下 *** 重新连接到会话:

screen -r my_session

Step 5:使用 -d 退出屏幕会话

现在,假设你在另一个终端中,想退出会话 ” my_session” 而不重新连接到它。你可以像这样使用 -d 选项:

screen -d my_session

如果会话 ” my_session” 当前连接到任何终端,这将使其退出,但不会终止。之后可以使用 screen -r my_session 重新连接。

5. 共享屏幕会话

screen -X [sharing_session]

此选项允许两个人从不同地点登录同一账户。

示例:

下面是一个简单的示例,演示如何使用 screen -X 向正在运行的 screen 会话发送命令:

Step 1:创建新的屏幕会话

首先,打开终端,创建名为 ” my_session ” 的新屏幕会话:

screen -S my_session

Step 2:退出屏幕会话

按 Ctrl + A,然后按 D,即可从屏幕会话中退出。

Step 3:从另一个终端向屏幕会话发送命令

打开另一个终端窗口,使用 screen -X 命令向 ” my_session” 屏幕发送命令。例如,发送 quit 命令来终止会话:

screen -S my_session -X quit
This will terminate the "my_session" screen session.

更多 Linux 命令

下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:

目录操作  ·  ·  ·  · 
文件操作  ·  ·  ·  ·  ·  ·  ·  · 
文件系统操作  ·  · 
***  ·  ·  ·  · 
搜索和文本处理  ·  ·  ·  ·  ·  · 
系统信息和管理  ·  ·  ·  ·  ·  · 
用户和会话管理  ·  ·  · 

此外,我们还整理 ,以帮助大家全面深入地学习 Linux。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/8198.html

分享给朋友:

“Linux运维基础之screen命令详解” 的相关文章

什么是JavaScript?网络上最流行的脚本语言一瞥

什么是JavaScript?网络上最流行的脚本语言一瞥

谁在尝试访问某些网站时没有遇到过更新Java的请求? 虽然许多人通过交互式网站功能熟悉Java,但用户可能不太熟悉JavaScript——或者,实际上,他们可能错误地认为两者是相同的。 在本文中,我们将讨论JavaScript 是什么以及Java和JavaScript之间的区别。然后我们将概...

宝塔面板教程之不同环境安装篇

宝塔面板教程之不同环境安装篇

Linux面板环境安装,主要支持LNMP和LAMP、Tomcat、node.js。不过对于大部分站长来说,主要是LNMP和LAMP两个环境的安装。 LNMP和LAMP两个环境的最大区别是,前者采用Nginx作为Web服务器,后者则采用Apache作为Web服务器。(选择哪个作为您的Web服务器,可...

宝塔面板教程之软件管理篇

宝塔面板教程之软件管理篇

宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...

宝塔面板教程之计划任务篇

宝塔面板教程之计划任务篇

宝塔面板的计划任务,主要用于安排和管理需要定时执行的任务,如备份、内存清理等。其实对于大部分站长来说,主要使用该板块的备份网站、备份数据库及释放内存的三个定时任务计划。   Shell脚本的添加 输入任务名称,选择执行周期,输入执行的脚本内容。 注意事项: 输入脚本内容...

20个最佳Laravel免费和付费教程资源

20个最佳Laravel免费和付费教程资源

Laravel多年来一直是PHP应用程序开发的摇滚明星,这是有充分理由的。庞大的生态系统、活跃的社区、强大的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。 如果你想学习Laravel,你不需要更进一步。通过浏览本指南,您可以找到最适合您的Laravel教程,与您的知识水平和...

Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref

Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref

无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。 服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。 换句话说,Serverle...