作业管理(job control)是在bash环境下使用的,也就是说,当我们登录系统获取bash shell之后,在单一终端界面下,同时管理多个作业。下面分别介绍与作业管理有关的几个常用命令:
一、直接将命令放到后台执行的 "&"
在bash环境下,前台:您可以控制的作业称为前台作业(foreground),后台:在内存可以自行运行的作业,您好无法直接控制他,除非以bg/fg命令把该作业调用出来。
"&" 用法:
# tar -zpcf /tmp/etc/tar.gz /etc &
[1] 234 <== [job number] PID
# <==可继续继续工作,不受影响,这就是后台
把当前作业放到后台暂停: [Ctrl] + z ,有些时候我们正在使用vi逻辑一个文件,突然有其它事情,需要切换到bash环境去执行相关命令,喧是我们直接退出vi逻辑环境?当然不需要,我们只需用命令[Ctrl]+z ,然该作业暂停到后台,状态 Stopped .
如:
# vi /etc/profile
#在vi的一般模式下,按下[Ctrl]+z组合键
[1]+ Stopped /usr/bin/vim /etc/profile
# <==顺序获取了前台的控制权
二、观察当前后台作业状态: jobs
如观察当前bash中的所有作业与对应的PID.
# jobs -l
[1]+ Stopped /usr/bin/vim /etc/profile
[2]- Stopped /usr/bin/vim /etc/profile.conf
说明:上面的 -l 表示让列表现示作业号的PID,另外(+-)号,(+)号表示默认的作业,如我在bash中输入fg,则[1] 会被自动执行。
三、将后台作业拿到前台处理: fg
# fg %jobnumber
我们可先用上面介绍的jobs -l命令查询目前所有的作业号,然后再执行fg %jobnumber命令。应能够将后台作业拿到前台来处理。
四、让作业在后台运行: bg
我们刚才介绍了用[Ctrl]+z可以让当前作业放到后台去"暂停",那么,现在我们可以让一个作业在后台运行。
如:
# find / -perm +7000
#此时,请立刻按下[ctrl]+z暂停。
[1]+ Stopped #find / -perm +7000
#然后让它在后台运行
# bg %1
五、管理后台作业:kill
有时我们不想让一个作业再继续运行了,这时我们可以向系统发一个signal,来kill这个作业,
# kill -signal %jobnumber
常用参数:
-9: 立刻强制删除一个作业
-15:以正常的程序方式终止一项作业,与-9是不一样的。
# jobs
[1]+ Stopped vim bashrc
# kill -9 %1
[1]+ 终止 vim bashrc
一、直接将命令放到后台执行的 "&"
在bash环境下,前台:您可以控制的作业称为前台作业(foreground),后台:在内存可以自行运行的作业,您好无法直接控制他,除非以bg/fg命令把该作业调用出来。
"&" 用法:
# tar -zpcf /tmp/etc/tar.gz /etc &
[1] 234 <== [job number] PID
# <==可继续继续工作,不受影响,这就是后台
把当前作业放到后台暂停: [Ctrl] + z ,有些时候我们正在使用vi逻辑一个文件,突然有其它事情,需要切换到bash环境去执行相关命令,喧是我们直接退出vi逻辑环境?当然不需要,我们只需用命令[Ctrl]+z ,然该作业暂停到后台,状态 Stopped .
如:
# vi /etc/profile
#在vi的一般模式下,按下[Ctrl]+z组合键
[1]+ Stopped /usr/bin/vim /etc/profile
# <==顺序获取了前台的控制权
二、观察当前后台作业状态: jobs
如观察当前bash中的所有作业与对应的PID.
# jobs -l
[1]+ Stopped /usr/bin/vim /etc/profile
[2]- Stopped /usr/bin/vim /etc/profile.conf
说明:上面的 -l 表示让列表现示作业号的PID,另外(+-)号,(+)号表示默认的作业,如我在bash中输入fg,则[1] 会被自动执行。
三、将后台作业拿到前台处理: fg
# fg %jobnumber
我们可先用上面介绍的jobs -l命令查询目前所有的作业号,然后再执行fg %jobnumber命令。应能够将后台作业拿到前台来处理。
四、让作业在后台运行: bg
我们刚才介绍了用[Ctrl]+z可以让当前作业放到后台去"暂停",那么,现在我们可以让一个作业在后台运行。
如:
# find / -perm +7000
#此时,请立刻按下[ctrl]+z暂停。
[1]+ Stopped #find / -perm +7000
#然后让它在后台运行
# bg %1
五、管理后台作业:kill
有时我们不想让一个作业再继续运行了,这时我们可以向系统发一个signal,来kill这个作业,
# kill -signal %jobnumber
常用参数:
-9: 立刻强制删除一个作业
-15:以正常的程序方式终止一项作业,与-9是不一样的。
# jobs
[1]+ Stopped vim bashrc
# kill -9 %1
[1]+ 终止 vim bashrc