• admin
  • 323
  • 2025-07-14 02:09:45

您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况。在本文中,我们将说明如何安装screen命令并说明如何使用screen命令,如何使用screen运行后台命令,进程与任务。

screen或GNU screen是终端多路复用器。 换句话说,这意味着您可以启动screen会话,然后在该会话中打开任意数量的窗口,也就是虚拟终端。

即使它们的窗口不可见,在Screen中运行的进程也将继续运行。

如今,大多数Linux发行版中都已预先安装screen命令。 可以运行命令screen --version检查它是否已安装在你的Linux系统。 命令将会screen的版本信息。

如果您的系统上未安装screen,则可以使用发行版的软件包管理器轻松安装它。

如果你的计算机运行的是基于Debian的Linux发行版。 例如Ubuntu和Linux mint,可以运行命令sudo apt install screen安装screen。

如果你的计算机运行的是基于Redhat的Linux发行版。 例如CentOS和Fedora,可以运行命令sudo apt install screen安装screen。

sudo yum install screen #for centos and fedora

sudo apt install screen #for Ubuntu and Debian

screen --version

Screen version 4.06.02 (GNU) 23-Oct-17

启动 screen

要开始screen会话,只需在终端运行screen 命令即可。 这将打开一个screen会话,创建一个新窗口,并在该窗口中启动shell。

当您运行多个screen会话时,命名会话非常有用。 要创建命令的会话,请运行命令screen -S session_name。

现在您已经打开了一个screen会话,你键入Ctrl+a ?来获取命令列表。

当进入后,请键入Ctrl-a c,创建一个shell会话,然后就可以运行命令或者执行常驻后台任务。

如果需要退出当前screen会话时,请键入Ctrl+a d 退出screen。 你执行任务将会一直运行。

screen

screen -S session_name #命名会话

Ctrl+a ? #获取帮助

Ctrl+a c #在screen创建shell 会话

Ctrl+a d #退出screen

screen 快捷键

当您开始新的screen会话时,它将创建一个带有shell的窗口。 screen会话中可以有多个窗口。

要创建shell会话类型的窗口键入Ctrl+a c,将为其分配范围0...9中的第一个可用数字。

以下是一些用于管理screen窗口的最常用命令。 Ctrl+a c创建一个新窗口,包括shell会话。

Ctrl+a "列出所有窗口,Ctrl+a 0切换到窗口0,Ctrl+a A重命名当前窗口

Ctrl+a S将当前窗口水平分为两个窗口,Ctrl+a |将当前窗口垂直分割为两个窗口。

Ctrl+a tab将输入焦点切换到下一个窗口,Ctrl+a Ctrl+a在当前窗口和上一个之间切换。

Ctrl+a Q关闭当前区域以外的所有窗口,Ctrl+a X关闭当前窗口。

您可以随时输入键入Ctrl+a d退出screen会话,从会话断开后,在screen会话中运行的程序将继续运行。

恢复screen会话

要恢复screen会话,请运行命令screen -r。 如果您的计算机上正在运行多个screen会话,则需要在r选项后附加screen会话id。

要找到会话ID,请运行screen -ls命令列出当前正在运行的screen会话。 例如要还原screen的id是10835.pts的会话,请运行命令screen -r 10835。

screen -ls

screen -r

screen -r 10835

There are screens on:

10835.pts-0.myfreax-desktop (Detached)

10366.pts-0.myfreax-desktop (Detached)

2 Sockets in /run/screens/S-myfreax.

自定义screen

启动screen时,如果配置文件存在,它将从/etc/screenrc和~/.screenrc中读取其配置参数。

我们可以在~/.screenrc文件根据喜好修改默认的screen设置。 以下是带有自定义状态行和一些其他选项的示例配置。

# 关闭欢迎消息

startup_message off

# 关闭声音提示

vbell off

# 设置滚动的buffer

defscrollback 10000

# 自定行的状态

hardstatus alwayslastline

hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

结论

在本教程中,您学习了如何使用Gnu Screen。 现在,您可以开始使用screen程序,并通过单个会话创建多个窗口,在窗口之间导航。

退出和恢复screen会话,并使用〜/.screenrc文件个性化您的screen终端。

你可能感兴趣的相关文章:

解决清除百度网盟推广的搜索记录方法

最新Pycharm 2020永久激活码 附上激活码插件

搬瓦工VPS主机手动编译安装Apache、PHP、MYSQL普通WEB环境方法

搬瓦工新增Automatic backups自动备份 系统自动备份策略

搬瓦工支持比特币付款吗(搬瓦工支持的付款方式汇总)

Linux VPS服务器架设网站WEB系统可用的一键脚本软件整理