潜伏在Linux系统中强大的screen命令

来源:岁月联盟 编辑:exp 时间:2011-09-24

 无意的学习中,发现了Linux系统中强大的screen命令,可能很多用户还没感受到,下面介绍的就是Linux系统中强大的screen命令,具体内容如下所述。
  因为做二代测序分析的原因,经常需要运行很长时间的程序。由于时间很长,一直都没什么太好的办法。当有了screen,这一切便都迎刃而解了。敲入命令screen会创建一个跑着shell的单一窗口,在这里面,你可以跑你所需要的程序。
  使用screen非常简易,只需在SHELL键入screen,便可打开一个screen session。
  而在每个screen session下,所有命令都以ctrl+a(C-a)开始。现在让我来简单介绍基本的命令C-ac->Create,开启新的window
  C-an->Next,切换到下个window
  C-ap->Previous,前一个window
  more……
  less……C-aC-a->Other,在两个window间切换
  C-aw->Windows,列出已开启的windows有那些
  C-a0->切换到第0个window
  C-a1……9->切换到第1……9个windowC-aa->发出C-a,在emacs,ve,bash,tcsh下可移到行首C-at->Time,显示当前时间,和系统的load
  C-aK(大写)->killwindow,强行关闭当前的windowC-a[->进入copy mode,在copy mode下可以回滚、搜索、
  复制就像用使用vi一样C-bBackward,PageUp
  C-fForward,PageDown
  H(大写)High,将光标移至左上角
  LLow,将光标移至左下角
  0移到行首
  $行末
  在普通模式下:
  用screen-ls可以看所有的screen sessions
  用screen-rsessionid可以进sessionid指定的特定的screensession
  最后exit退出即可。
  --------------------------------
  另外大家在起后台服务,或者长时间执行某个脚本的时候。是不是感觉,交互性很差,
  有时,想把结果直接在终端上输出,又怕不小心关闭了终端导致进程退出?(有些sshd服务还会设置连接超时,自动退出终端)
  现在用screen这个指令可以很好的解决跑后台服务的尴尬。
  命令其实超简单的:
  直接在终端上输入screen,这个时候,服务器端会启一个新的终端,但这个终端,与之前的普通终端不一样,它不隶属于sshd进程组,这样,当本地终端关闭后,服务器终端不会被kill。
  当然,优点还不止这么些,在服务器终端里执行任务时,你甚至可以随时地切换到本地终端做些其他事情,然后,要回去时,再恢复到刚才已经打开的服务器终端里,如果刚才的任务没有结束,还可以继续执行任务。
  操作步骤:
  首先,进入screen-Ssessionname终端。(sessionname是为了分辨你的session)
  然后按ctrl+a,再按d键暂时退出终端。
  当要返回时,先查看刚才的终端进程ID,screen-list
  或直接
  screen-rxx(刚才的sessionname)就可以了
  当然,当你开了很多个session后,打算关闭几个session,可以进入到session后,exit一下就可以了。
  总的来说,screen是可以完全替代nohup的,并且本身提供了较复杂的功能,但是我认为,刚才那些简单的功能足以应付日常运作。
  总结:
  希望本文介绍的Linux系统中强大的screen命令能够对读者有所帮助,更多有关Linux系统的知识还有待于读者去探索和学习。


作者“IT自习室”