Chinaunix首页 | 论坛 | 博客
  • 博客访问: 364878
  • 博文数量: 109
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 11:17
个人简介

只要活着,就要有目标。

文章分类
文章存档

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的,并且本身提供了较复杂的功能,但是我认为,刚才那些简单的功能足以应付日常运作。

  来源:

 

 

 

 

阅读(970) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~