Linux_screen使用

Jayson
2022-07-24 / / 56 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年10月20日,已超过547天没有更新,若内容或图片失效,请留言反馈。

screen 是一个非常有用的命令,提供从单个 SSH 会话中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。如果你想运行一个持久的进程或者从多个位置连接到 shell 会话,这也很方便。

在本文中,我们将展示在 Linux 上安装和使用 screen 的基本知识。

screen 在一些流行的发行版上已经预安装了。你可以使用下面的命令检查是否已经在你的服务器上安装了。

screen -v
Screen version 4.00.03 (FAU)

如果在 Linux 中还没有 screen,你可以使用系统提供的包管理器很简单地安装它。

CentOS/RedHat/Fedora

yum -y install screen

Ubuntu/Debian

apt-get -y install screen

语法

# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

常用参数

screen -S yourname //新建一个名字为yourname的一个session(会话)
screen -ls //列出所有的session(会话)
screen -r yourname //回到yourname这个session(会话)
screen -d yourname //将指定的session(会话)离线
screen -d -r yourname 结束当前的session(会话)回到yourname这个session(会话) 

参数说明

-A  将所有的视窗都调整为目前终端机的大小。
-d<作业名称>  将指定的screen作业离线。
-h<行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell>  指定建立新视窗时,所要执行的shell。
-S<作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

如何kill一个screen?

两种方法:

  1. 使用screen名字,杀掉。
screen -S yourname -X quit
  1. 激活screen,然后再杀掉
screen -r yourname
quit

screen的快捷键

Ctrl + a+d #暂离当前会话
Ctrl + a+c #在当前screen会话中创建一个子会话
Ctrl + a+w #子会话列表
Ctrl + a+p #上一个子会话
Ctrl + a+n #下一个子会话
Ctrl + a+0-9 #在第0窗口至第9子会话间切换
0