Bg, Fg, &, Ctrl-Z - 5个管理Unix后台任务的例子

  当你运行一个unix shell脚本或者命令花费很长时间时,你可以把它放到后台执行。
  在这篇文章中,我们来总结一下如何执行一个后台任务,如何把一个后台任务调度到前台,如何查看所有的后台任务以及如何结束一个后台任务。

1. 执行一个后台任务

  在命令后加上 & 符号,就可以后台执行任务。
  例如,当你执行一个 find 命令的时候也许会花费大量时间,你可以像下面一样把它放到后台执行。下面的这个例子是在根目录下查找所有在24小时内被修改过的文件。

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. 使用 Ctrl-zbg 命令把当前任务调度到后台执行

  你可以像下面一样把一个已经运行的前台任务放到后台执行:

  1. 按下 Ctrl-z 挂起当前任务
  2. 使用 bg 把挂起的任务放到后台执行
     
    例如,如果你忘了把一个任务放到后台执行,不需要结束它再重来一次后台运行。你可以像下面一面,先把当前任务挂起,然后把它放到后台执行。
# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3.使用 jobs 命令查看所有的后台任务

  你可以使用 jobs 命令列出所有的后台任务。下面是一个 jobs 命令输出的情况

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. 使用 fg 命令把一个后台任务调度到前台

  你也可以使用 fg 命令把一个后台任务调度到前台执行。如果不带参数,它就会把最新的后台任务调度到前台。

# fg

  如果你有很多后台任务,想调度一个指定的任务。那么,你可以使用 jobs 命令查看所有后台任务的 id 和命令内容。
  在下面的这个例子中,fg %1 会把 job#1(下面就是 download-file.sh)调度到前台。

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. 使用 kill % 结束一个指定的后台任务

  如果你想结束一个指定的后台任务,使用 kill %job-number。例如,结束 job 2 使用

# kill %2

说明:以上命令都可用于 Linux,我就是在 Ubuntu下使用的。
原文链接: http://www.thegeekstuff.com/2010/05/unix-background-job/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值