只要活着,就要有目标。
2013年(109)
分类: LINUX
2013-04-09 12:06:14
Linux系统中很多的命令是我们不常去使用,同样也有好多功能强大的命令也没有被大家熟知,下面就介绍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的,并且本身提供了较复杂的功能,但是我认为,刚才那些简单的功能足以应付日常运作。
来源: