一、screen 的来源背景

系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被随着终端进程的杀死,而终端的进程也被杀死,还有一种情况就是两个管理员,其中一个需要另一个的协助时,可以实现会话共享,可以实现类似于windows的屏幕共享功能。

 二、screen的功能:

1.会话恢复功能:

只要screen没有终止,在其内部运行的会话就就可以恢复,即使远程会话断开,程序也不会终止

    2. 多窗口:

  在screen建立的每一个socket会话中,每一个socket都是独立运行的,都有一个独立的socket名字和编号

         3.会话共享

  screen 可以让给一个或多个用户从不用终端登录同一台服务器,实现会话共享,或者远程协助

三、语法:

         三、语法

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

参数说明 (红色标注的为常用参数)

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

四、 screen的使用:

         1.安装screen,这里我通过yum安装,也可以通过rpm安装

wKiom1eZwMDADPlyAAJjSf15eHM619.png-wh_50


2. 安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,因此为screen会话取一个名字,方便区别:

wKioL1eZwMHgvlEHAAB5Gk22pP0677.png-wh_50


3. 加入刚才建立的会话:

wKioL1eZw2WwKAFCAAGl88D4gbM252.png-wh_50


4. 加入成功后就会发现两个终端已经同步无论任何一个终端键入什么命令,两端都会同步

5. 会话的分离与恢复可以在一个程序执行过程中将会话分离,想要恢复时可以恢复到之前的会话:分离操作:同时按快捷键Ctrl+a,之后松开按d键,恢复时,使用加入的命令即可恢复,即screen –x session_name


wKiom1eZwMTD3dvDAAcI9r2rjMQ428.png-wh_50

wKioL1eZwMXjW5gUAAH2d_nJH78272.png-wh_50


通过查看建立的会话重新加入会话

 

wKioL1eZwMeyXAWxAAP8EYkVLlU039.png-wh_50