自学内容网 自学内容网

【Linux】Screen工具介绍

在使用linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session。又比如,在使用linux终端运行程序时,我们需要显示运行,但是连接中断的话程序也会中断,这个时候如果能将程序显示运行于后台就好了。screen命令可以解决这些问题。

0.Screen简介

Screen是一个流行的终端会话管理工具,通常用于在 Linux 和 Unix 系统中。它允许用户在一个单一的终端窗口内,通过对多个虚拟终端会话(称为“窗口”)进行管理,进而运行多任务,并在不同的会话之间切换,即使用户断开连接,进程也能继续运行。screen 工具特别适用于需要长期运行的任务、远程管理和调试等场景。

1.功能介绍

会话管理:用户可以在单一的物理终端上运行多个终端会话,每个会话独立运行,这意味着如果一个会话出错崩溃,其他会话不会受到影响。
会话保持:即使断开网络连接,使用 screen 运行的会话也会保持活动状态。用户可以在连接成功后重新附加到这些会话,这对于需要长时间运行的任务尤其有用。
多窗口:通过 screen,用户可以在一个屏幕上分裂出多个窗口,每个窗口可以运行不同的任务或程序。
快捷键支持:screen 提供了丰富的快捷键支持,使得在不同会话之间切换和管理会话更为高效。
会话共享:多个用户可以同时连接到同一个 screen 会话,实现会话共享,这对于多人协作十分有用。

2.Screen安装

Debian/Ubuntu系统:

sudo apt install screen

CentOS/RHEL系统:

使用 yum 安装(CentOS 7 及之前版本):

sudo yum install screen

使用 dnf 安装(RHEL 8 及之后的版本):

sudo dnf install screen

Fedora系统:

sudo dnf install screen

macOS系统:

可以通过 Homebrew 来安装,确保 Homebrew 已经安装,可以通过终端命令来安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew install screen

验证安装

screen --version

3.基本用法

启动一个新的 Screen 会话

screen  ## 启动一个新的 screen 会话,并打开一个新的 shell。

命名一个新的 Screen 会话

screen -S session_name   ##  这将启动一个新的 screen 会话并为其命名,有助于在多个会话之间进行区分。

列出当前所有的 Screen 会话

screen -ls  ## 这会列出所有当前正在运行的 screen 会话。

重新连接到一个已经分离的 Screen 会话

screen -r session_name  ## 使用会话名称 重新连接
screen -r 12345   ## 使用会话 ID 重新连接

分离(Detach)当前会话

在一个 screen 会话中,你可以按下 Ctrl-a 后再按下 d 键,以将当前会话分离回后台。会话仍在后台运行。

Ctrl-a  d  ##  将当前会话分离回后台,会话仍在后台运行

4.常用快捷键

  • Ctrl-a c:创建一个新的窗口并切换到该窗口。
  • Ctrl-a n:切换到下一个窗口。
  • Ctrl-a p:切换到前一个窗口。
  • Ctrl-a d:分离会话,保持后台运行。
  • Ctrl-a k:关闭当前窗口(Kill window)。
  • Ctrl-a 0..9:快速切换到指定编号的窗口。
  • Ctrl-a " ":列出所有窗口,供选择切换。

5.其他有用功能

  • 日志记录:可以通过 Ctrl-a H 启动和停止当前窗口的日志记录,日志文件会被保存在当前目录中。
  • 屏幕分割:可以通过 Ctrl-a S 分割当前窗口,然后使用 Ctrl-a TAB 在各个区域间切换,使用 Ctrl-a X 关闭当前区域。
  • 拷贝模式:使用 Ctrl-a [ 进入拷贝模式,这允许你滚动并查看窗口的输出历史。

6.小结

Screen 为用户提供了优秀的多任务处理和远程会话保持能力。有需求的用户可以根据自己的工作需求来最大化利用 screen 的强大功能,提高工作效率。


原文地址:https://blog.csdn.net/u014517744/article/details/143885772

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!