Linux Screen超简明教程

一.screen是什么 linux

Screen是Linux下的一款远程会话管理工具,能够在多个进程之间多路复用一个物理终端的全屏窗口管理器。它能够建立多个会话 (Session),每一个会话中能够建立多个窗口(Window),每一个窗口中能够运行单独的任务,而且互相之间不受影响,还能够方便快速的在不一样的窗口 和会话之间切换。 bash

二.screen有什么用 工具

在VPS中执行一些很是耗时的任务时(以下载,压缩,解压缩,编译,安装等),咱们一般是单独开一个远程终端窗口来执行这个任务,且在任务执行过程 中不能关闭这个窗口或者中断链接,不然正在执行的任务会被终止掉。而有了screen,咱们能够在一个窗口中安装程序,而后在另外一个窗口中下载文件,再在 第三个窗口中编译程序,只须要一个SSH链接就能够同时执行这三个任务,还能够方便的在不一样会话或窗口中切换,即便由于意外致使窗口关闭或者链接中断,也 不会影响这三个任务的执行。 .net

三.screen的使用说明 命令行

1.安装Screen htm

大多数状况下,系统已经安装好了screen。若是没有,能够用下面的命令来安装: 进程

CentOS系统中执行:yum install screen
Debian/Ubuntu系统执行:apt-get install screen 文档

2.经常使用命令 get

screen的说明至关复杂,反正我是看得头晕了。但事实上,咱们只须要掌握下面五个命令就足够咱们使用了: 域名

screen -S test    #建立一个名为test的会话

screen -ls            #列出全部会话

screen -d test    #卸载名为test的会话,但会话中的任务会继续执行。

screen -r test      #恢复名为test的会话

exit                    #退出当前窗口

3.经常使用快捷键

Ctrl+a c :在当前screen会话中建立窗口

Ctrl+a d  : 效果与screen -d相同,卸载当前会话

Ctrl+a w :显示当前会话中的窗口列表,显示在标题栏中

Ctrl+a n :切换到下一个窗口

Ctrl+a p :切换到上一个窗口

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

  说明:这里的快捷键由三个键组成,如Ctrl+a c,你能够按住Ctrl键,再依次按下a和c。也能够先按一次Ctrl+a,再按一次Ctrl+c。两种方法都是可行的。

4.使用实例

看着上面罗列的命令和快捷键是否是以为头晕,不要紧,咱们仍是用一个实例最能说明问题,假设咱们要同时执行下面三个个任务:给系统升级,下载一个文件,ping谷歌的域名。

a.先执行screen -S update建立一个名为update的会话。该会话会自动建立一个窗口,在这个窗口中执行系统升级命令yum update -y。如图一所示,注意Putty窗口标题栏中的[screen 0: bash]表明这是第一个窗口(从0开始计数),执行的是bash。

图一:执行yum -update -y

b.按快捷键Ctrl+a c,在当前会话中建立一个新的窗口,而后咱们执行wget http://cachefly.cachefly.net/100mb.test,如图二所示,此时Putty窗口的标题栏中显示的是[screen 1: bash],表明这是第二个窗口,执行的也是bash。快捷键Ctrl+a w会在标题栏显示该会话中有哪些窗口。快捷键Crrl+a n或者Ctrl a+p能够在不一样窗口之间切换。

图二:执行wget

c.一个会话中能够建立N个窗口,如今假设咱们想另外建立一个会话来执行第三个任务。按快捷键Ctrl+a d(也能够执行screen -d update)卸载当前加载的update会话(但该会话中执行的两个任务任然正常运行,至关于被转成了后台进程),而后执行screen,建立一个新的 会话(由于此时咱们没有使用-S参数指定新建立会话的名字,则screen会按照它的命名规则来命名新的会话,能够参见下面screen -ls命令的执行结果)。如今咱们执行ping -c 5 www.linuxidc.com。

d.执行screen -ls能够查看当前全部的会话,如图三所示,能够看到目前有两个会话22080.update和22102.pts-0.hawstname604,其中 22080和22102分别是这两个会话的PID,当咱们调用screen -r,screen -d等命令时,能够用这个PID代替会话的名字,如screen -d update与screen -d 22080是等效的。会话后面的(Attached)表明该会话已经被加载,(Detached)表示该会话已被卸载。

图三:第一次执行screen -ls

e.执行exit退出当前窗口。当一个会话中的全部窗口都被结束,则该会话会被自动终止,命令行会提示[screen is terminating]。此时再执行screen -ls,会显示只有一个22080.update会话,且处于(Detached)状态,如图四所示。

图四:第二次执行screen -ls

f.执行screen -r update从新加载update会话。能够继续查看前两个任务的执行状况,咱们甚至能够中断当前SSH链接,从新链接以后依然能够看到这两个任执行。

就写到这儿了吧,更多关于screen的用法能够参见man screen。说实话,screen是一款功能很是强大的工具,但与此同时,它的帮助文档也写的很是复杂,反正我是看得头晕了,因此才有了这么一篇文章,但愿对你们可以有所帮助。

相关阅读:

Linux下Screen的经常使用命令 http://www.linuxidc.com/Linux/2012-07/65358.htm

Zabbix经过邮件发送Screen图形报表实现 http://www.linuxidc.com/Linux/2013-06/85759.htm

Linux虚拟终端命令Screen用法详解 http://www.linuxidc.com/Linux/2013-07/87415.htm

Linux 技巧:使用 Screen 管理你的远程会话 http://www.linuxidc.com/Linux/2013-10/91612.htm

相关文章
相关标签/搜索