Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622032
  • 博文数量: 69
  • 博客积分: 1891
  • 博客等级: 上尉
  • 技术积分: 1359
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-20 23:38
文章分类

全部博文(69)

文章存档

2012年(46)

2011年(23)

分类: LINUX

2012-04-18 23:26:49

linux 下经常会在shell下执行一些任务,对于这些任务我们该如何控制呢,linux提供了一些基本的命令来管理shell下的人物
  • jobs 列出当前shell下的任务
  • & 在后台运行任务
  • ^Z 终止当前的任务
  • suspend 暂停一个任务
  • fg 继续一个任务,并将该任务带到shell前台
  • bg 让一个已暂停的的任务在后台运行
这里所说的任务是指shell下执行的一整串命令,它比linux进程要高级,不过它也只是一些shell的组合而已。任务主要分为:
  •   Foreground job前台任务:前台任务是指在当前shell里运行,并占用当前shell的任务,以至于你不能再运行其他任务
  •   Backgroud jbo 后台任务:后台任务是指在当前shell里运行,但是并不占用当前shell,也就是你还可以再运行其他任务
对任务的操作主要有两种:
  • Suspend 暂停任务:暂停一个前台任务
  • Resume 恢复任务:让一个暂停的任务继续运行
以下讲解跟任务控制有关的一些命令:
  1. jobs 
      列出当前shell的所有任务;
      例如,先运行,vim test&,vim music.sh&,让vim在后台运行,运行jobs输出如下:

点击(此处)折叠或打开

  1. [1]- 已停止 vim test (工作目录:~)
  2. [2]+ 已停止 vim music.sh
这表明我们后台有两个任务再暂停状态
[n] 表示任务编号,已停止表示任务的状态,vim test表示任务的命令
细心的读者会发现[2]+ 已停止 vim music.sh,[2]后面比上面一条多了一个+号,这个加号是表明该任务是默认被fg和bg命令影响的任务

 2.&
  &操作符表示让一个任务在后台执行
 例如vim music.sh &输出:
 [2] 3974
表示任务这个任务编号为2,进程ID为3974

3.^Z (Ctrl+Z)
  ^Z会让当前的前台任务暂停,并且它的运行状态是保留的。
  例如cat /dev/zero会一直阻塞住,用^Z可以让其暂停,然后就可以用bg让它进入后台,或者用fg让他到前台继续执行

4.suspend
 suspend会暂停当前的shell,它的作用就像你在当前shell下按^Z。
例如,假如你用了su命令,然后你想回到自己的shell下,可以用suspend

点击(此处)折叠或打开

  1. $whoami
  2.   kenvi
  3.  $su
  4.   password:
  5.  #whoami
  6.   root
  7.  #suspend
  8.  [1]+ Stooped su
  9.  $whoami
  10.   kenvi
由上面的交互可以看出,suspend命令让shell进行了切换

5.bg [%jobnumber]
 bg命令可以让一个挂住的任务在后台运行,没有参数的话,bg默认操作最近挂住的任务
 用%jobnumber可以指定任务,例如$bg %2,让第二个任务在后台执行

6.fg [%jobnumber]
 通上,只不过是把命令放到前台执行,例如上面suspend里的示例,如果继续执行fg 1的话,又会回到root的
shell下,这是因为su任务被放倒前台执行了。

  



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