Welcome 微信登录

首页 / 操作系统 / Linux / Linux Screen超简明教程

这是一篇关于Linux下的远程会话管理工具screen的简单使用说明,写给像我一样的新手,高手请直接略过。screen 关于多窗口操作可以参见:《 Linux 技巧:使用 Screen 管理你的远程会话 》一.screen是什么Screen是Linux下的一款远程会话管理工具,可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。它可以创建多个会话(Session),每个会话中可以创建多个窗口(Window),每个窗口中可以运行单独的任务,并且互相之间不受影响,还可以方便快速的在不同的窗口和会话之间切换。二.screen有什么用在VPS中执行一些非常耗时的任务时(如下载,压缩,解压缩,编译,安装等),我们通常是单独开一个远程终端窗口来执行这个任务,且在任务执行过程中不能关闭这个窗口或者中断连接,否则正在执行的任务会被终止掉。而有了screen,我们可以在一个窗口中安装程序,然后在另一个窗口中下载文件,再在第三个窗口中编译程序,只需要一个SSH连接就可以同时执行这三个任务,还可以方便的在不同会话或窗口中切换,即使因为意外导致窗口关闭或者连接中断,也不会影响这三个任务的执行。三.screen的使用说明1.安装Screen大多数情况下,系统已经安装好了screen。如果没有,可以用下面的命令来安装:CentOS系统中执行:yum install screen
Debian/Ubuntu系统执行:apt-get install screen2.常用命令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 -yb.按快捷键Ctrl+a c,在当前会话中创建一个新的窗口,然后我们执行wget http://cachefly.cachefly.net/100mb.test,如图二所示,此时Putty窗口的标题栏中显示的是[screen 1: bash],代表这是第二个窗口,执行的也是bash。快捷键Ctrl+a w会在标题栏显示该会话中有哪些窗口。快捷键Crrl+a n或者Ctrl a+p可以在不同窗口之间切换。图二:执行wgetc.一个会话中可以创建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 -lse.执行exit退出当前窗口。当一个会话中的所有窗口都被结束,则该会话会被自动终止,命令行会提示[screen is terminating]。此时再执行screen -ls,会显示只有一个22080.update会话,且处于(Detached)状态,如图四所示。图四:第二次执行screen -lsf.执行screen -r update重新加载update会话。可以继续查看前两个任务的执行情况,我们甚至可以中断当前SSH连接,重新连接之后依然可以看到这两个任执行。就写到这儿了吧,更多关于screen的用法可以参见man screen。说实话,screen是一款功能非常强大的工具,但与此同时,它的帮助文档也写的非常复杂,反正我是看得头晕了,所以才有了这么一篇文章,希望对大家能够有所帮助。相关阅读:Linux下Screen的常用命令 http://www.linuxidc.com/Linux/2012-07/65358.htmZabbix通过邮件发送Screen图形报表实现 http://www.linuxidc.com/Linux/2013-06/85759.htmLinux虚拟终端命令Screen用法详解 http://www.linuxidc.com/Linux/2013-07/87415.htmLinux 技巧:使用 Screen 管理你的远程会话 http://www.linuxidc.com/Linux/2013-10/91612.htm升级CentOS的PythonCentOS和RHEL安装 IPython 0.11相关资讯      Linux Screen 
  • Linux screen远程会话管理命令  (08月02日)
  • Linux screen 命令  (08/19/2015 20:01:55)
  • Linux如何检查我是否处于一个运行  (08/14/2014 05:59:49)
  • Linux screen 常用命令  (01月17日)
  • Linux screen 命令详解  (08/14/2014 06:26:07)
  • Linux 技巧:使用 Screen 管理你的  (10/19/2013 10:16:49)
本文评论 查看全部评论 (0)
表情: 姓名: 字数