Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 » 技术 » ,

Linux下screen的使用

Linux下经常使用putty或者secureCRT等通过ssh远程登录服务器,但如果在执行程序的过程中关闭远程终端窗口,则原先运行的程序会被立即杀死。这对于一些花费时间较长的程序非常不利,本文将介绍如何使用screen命令解决这个问题,以及screen提供的其他功能。

screen简介

使用ssh远程登录服务器时,如果在运行程序的过程中不小心关闭了远程终端窗口,或者出现网络断开或者电脑死机的情况,主机与服务器的连接会话立即丢失,刚刚运行的程序或进行的工作也同时丢失,这不得不说是一件非常令人沮丧的事情。使用screen可以很好地解决这个问题。

screen是一款由GNU计划开发的用于命令行终端切换的自由软件,实现全屏窗口管理的功能,能够混合多个工作到一个终端上。
一般linux系统中自带有screen命令,如果没有,ubuntu类系统可以方便地通过以下命令进行安装:

sudo apt-get install screen

在Red Hat类系统中可以使用以下命令:

yum install screen

下面简单介绍screen的几个常用功能。

多会话

通过putty等远程服务器后,直接在命令行下运行以下命令新建一个screen会话:

screen

也可以指定会话的名称,以下即创建以noalgo为名称的会话:

screen -S noalgo

也可以在新建会话时指定要运行的程序,以下运行了vi编辑器,注意此时退出vi编辑器即表示退出了screen会话。

screen -S noalgo vi helloworld.c

新建会话后即进入了screen的世界,在这里做的事情和在普通的shell中的事情没有什么区别,只是此时的会话是可以进行恢复的,即使发生网络中断,也可以通过再次运行screen命令回到刚才的会话中,而且,再次回来时屏幕上显示的是刚才的画面,而如果程序动态运行时,此时显示最新的结果。
如果有事需要离开,而服务器上的程序需要同时在运行,此时可以通过命令d分离会话。在screen会话中进行的操作都是以ctrl+a开始,所以分离时需要先按下ctrl+a,然后再按d,这里表示为:

C-a, d

此时会回到原先的putty窗口,就可以随意关掉putty去干其他事情了。
当要回去的时候可以先通过putty进行登录,然后运行以下命令查看系统中已有的screen会话:

screen -ls

screen -list

得到的结果类似为:

noalgo@AdMin:~$ screen -ls
There is a screen on:
        15057.noalgo    (01/30/2015 06:16:45 AM)        (Detached)
1 Socket in /var/run/screen/S-noalgo.

然后可以通过以下命令回到screen会话中:

screen -r 15075

或者直接通过会话名称回去:

screen -r noalgo

此时即可继续刚刚离开之前所做的事情了。
另外,通过以下命令可以实现会话共享,此时多个用户登录到同一个会话中,如果他们同时处于同一个窗口下时,彼此的操作会同步给每一个用户,即达到共享桌面的效果。

screen -X

多窗口

在普通的shell环境中,如果要同时执行多个程序,可以通过ctrl+z,以及fg和bg等命令交替执行,但screen提供了多窗口的功能同样可以达到这个目的。
通过screen命令新建一个会话:

screen -S noalgo

此时进入了screen会话默认的一个窗口,通过以下命令可以新建一个窗口并进入新的窗口:

C-a, c

在不同的窗口间切换可以通过下面两个命令进行,分别是进入下一个和前一个窗口:

C-a, n
C-a, p

使用以下命令可以查看当前共有几个窗口,标注*号的为当前所在的窗口:

C-a, w

使用以下命令强行关闭一个窗口,如果当前只剩下最后一个窗口,则终止当前的会话:

C-a, k

以下命令也可以达到同样的效果:

exit

当使用多个窗口时,可以通过将屏幕分割成几个区域来提高效率。使用以下命令进行分屏,分别是水平分割和垂直分割:

C-a, S
C-a, |

拥有多个屏幕时,使用以下命令进行切换:

C-a, Tab

使用以下命令关闭某个分屏,

C-a, X

或者关闭处当前区域的所有其他区域:

C-a, Q

Screen详细参数

以上是通过简单的例子介绍screen的常见用法,下面对其参数进行详细介绍。screen的命令语法为:

screen [-AmRvx -ls -wipe][-d <name>][-h <line>][-r <name][-s ][-S <name>]

其中的参数意义如下:

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

在每个screen会话中,可以使用的命令如下。注意,screen的命令都是以ctrl+a(C-a)开始的,以下省略C-a而直接以后面的按键替代:

  • ?:Help,显示按键绑定情况。
  • c:Create,创建新的窗口。
  • n:Next,切换到下个窗口。
  • p:Previous,切换到前一个窗口。
  • M:查看活动状态。
  • x:锁住当前的窗口,需用用户密码解锁。
  • d:Detach,暂时离开当前会话,此后可以恢复。
  • z:把当前会话放到后台执行,可以使用shell的fg命令回去。
  • w:Windows,列出已创建的窗口。
  • t:Time,显示当前时间。
  • K:Kill,强行关闭当前的窗口。
  • [0..9]:切换到第 0..9个窗口。
  • [Space]:由窗口0顺序切换到窗口9。
  • C-a:在两个最近使用的窗口间切换。
  • S:水平分屏。
  • |:垂直分屏。
  • X:关闭当前分屏。
  • Q:关闭除当前分屏的所有分屏。
  • [Tab]:在分屏中切换。
  • [:Copy,进入拷贝模式,此时可以回滚、搜索、复制,就像用使用vi一样。
  • ]:Paste,粘贴刚刚在拷贝模式选定的内容。

其中在拷贝模式下可以使用的命令包括

  • C-b:Backward,PageUp。
  • C-f:Forward,PageDown。
  • H:High,将光标移至左上角。
  • L:Low,将光标移至左下角。
  • 0:移到行首。
  • $:移到行末。
  • w:forward one word,前移一个字。
  • b:backward one word,后移一个字。
  • Space:第一次按标记起点,第二次按标记终点。
  • Esc:结束copy mode。

这里列的也不是全部的参数,需要更详细的内容,可以直接通过以下命令进行获取:

man screen

下面是C-a, ?显示的内容,可以提示每个按键绑定的功能,也非常方便。

                                 Screen key bindings, page 1 of 1.

                                 Command key:  ^A   Literal ^A:  a

 break       ^B b        history     { }         other       ^A          split       S         
 clear       C           info        i           pow_break   B           suspend     ^Z z      
 colon       :           kill        K k         pow_detach  D           time        ^T t      
 copy        ^[ [        lastmsg     ^M m        prev        ^H ^P p ^?  title       A         
 detach      ^D d        license     ,           quit        \           vbell       ^G        
 digraph     ^V          lockscreen  ^X x        readbuf     <           version     v         
 displays    *           log         H           redisplay   ^L l        width       W         
 dumptermcap .           login       L           remove      X           windows     ^W w      
 fit         F           meta        a           removebuf   =           wrap        ^R r      
 flow        ^F f        monitor     M           reset       Z           writebuf    >         
 focus       ^I          next        ^@ ^N sp n  screen      ^C c        xoff        ^S s      
 hardcopy    h           number      N           select      '           xon         ^Q q      
 help        ?           only        Q           silence     _         

^]   paste .
"    windowlist -b
-    select -
0    select 0
1    select 1
2    select 2
3    select 3
4    select 4
5    select 5
6    select 6
7    select 7
8    select 8
9    select 9
I    login on
O    login off
]    paste .
|    split -v
:kB: focus prev
上一篇: 下一篇:
  1. 博主你的文章很好实用性强
    打开“送钱榜”分享的任何一个平台,注册就送钱!实现坐在家里,月入五千。
    真实合法,重点推荐!网址:www.songqianbang.com

  2. 送钱榜,坐在家里,月入五千,适合各种人士,只要会上网就行,但有点小苦力,需要执行力,本站项目新颖、真实、合法、持久、值得你花时间去研究和实战,大量“送钱”活动正在免费分享中,注册“送钱榜”分享的任何一个平台,它马上就会“送钱”给你!嗯,撸钱就这么简单。欢迎你加入“送钱榜”免费群:498402394网址:

  3. 学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。

  4. 学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。(QQ:800015777,电话0754-88989555)

  5. 感谢博主分享
    做慈善事业,赚百万奖金,好项目重点推荐!
    【深圳市一九爱心网络服务发展有限公司】是互联网+爱心,一边献爱心,一边赚钱,一边创业。
    公司创立于2014年9月19日,备案号:粤ICP备14077645号-1,公司地址: 【深圳市龙华新区梅龙大道868号盛瑞大厦4A】
    公司证件齐全,国家大力支持,电视台各大新闻网站报道,公司稳健发展。全国现有分公司20多家,500多位代理商,每天递增中!
    成为一九爱心公司会员,不仅仅是捐献了小小的爱心;小善举,大修行,同时也能赚到钱,改善生活。爱心会员奖励制度如下:
    【一】每个爱心账户付出69元,其中:19元作为爱心捐助款;16元奖励给会员推广佣金;34元平分给每个爱心账户。
    【二】每个爱心账户付出69元,公司每天的产品和项目收入加上账户中的34元,天天给每个爱心账户发放市场奖励,直到累计满100元为止。
    【三】付出69元,得到100元,账户赚了31元;加上应得推广佣金16元。多投就多赚,比例是投1000元赚600元,投一万就赚六千!大家可以自己计算。该项目由正规公司运营,公司的各位老
    总天天在各大媒体露面(不象那些骗子平台不知老板是谁),非常真实可靠,所以本站向大家重点推荐!
    详情请了解网站:www.19aixin.vip
    或加入QQ群:48298520
    https://vip.m19aixin.com/invitation.do?uid=738403

  6. 学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业老师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧跟随其后。(QQ:800015777 电话0754—88989555)

  7. 帮助很大,谢谢楼主分享,欢迎楼主回访、喝茶www.qizishi.com

  8. 博主,你的文章写得很棒,欢迎来我的博客进行交流哦。
    我的博客网址是:www.qizishi.com

  9. 新手站长来报道,www.gamewzlm.com。2016最全最新的网赚项目,都在《网赚联盟》这里,大量手机赚钱APP,动动手指头就能轻松赚钱,赶快加入我们的行列吧。

  10. #广东硅谷学院#学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。(QQ:800015777,电话0754-88989555)

  11. #广东硅谷学院#学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。(QQ:800015777,电话0754-88989555)

  12. 从百度点进来的,支持一下,希望站长您多出一些好文章。

  13. 全都到碗里来 !美臀/丝袜/美熟女乱伦精品大合集 !!!HTTp://uVU.cc/inRB

  14. 全都到碗里来 !美臀/丝袜/美熟女乱伦精品大合集 !!!HTTp://uVU.cc/inRB

  15. 青娱乐www.144n.com/ NBA直播
    双色球开奖结果www.caipiaodian.com.cn 时时彩
    环球网www.banshouseo.net 环球时报
    NBA直播吧www.seozhanwang.com NBA直播
    游戏MOD 汉化补丁www.zhanzhangzhiwang.com 游戏修改器

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论