一)这里是指bash环境下的工作管理。进行工作管理的行为中,其实每个工作都是目前bash的子程序,亦即彼此之间是有相关性的。我们无法以job control的方式由tty1的环境去管理tty2的bash,对于图形化界面的多个bash之间也不能相互管理。

要进行bash的job control必须要注意到以下限制:

    1. 只管理自己的bash

    2. 前景:可以控制与下达指令的这个环境称为前景的工作(foreground)

    3. 背景:可以自行运行的工作,你无法用ctrl+c终止它,可以使用bg/fg呼叫该工作

    4. 背景中执行的程序不能等待terminal/shell的输入

二)常用工作管理命令及语法:

a. &

功能: 直接将指令丢到背景中执行

语法: command -option parameters &

例子: tar -zpcf /tmp/etc.tar.gz /etc &


b. ctrl + z

功能: 将目前正在进行的工作丢到背景中,且让它处于“暂停”状态

语法: 先按住Ctrl,再按z


c. jobs

功能: 查看有多少工作在背景当中

语法: jobs -option

例子: jobs -l        //显示出该job的PID


d. fg

功能: 将背景中的工作拿到前景中来处理

语法: fg [%jobnumber]

例子:fg  //将带+的取至前景执行;  fg %2        //将第2号job取至前景执行


e. bg

功能: 让背景中处于“暂停”的工作开始“运行”

语法: bg %jobnumber

例子: bg %2     //让第2号job在背景中执行


f. kill

功能: 控制背景中的工作,比如直接移除、重启等

语法: kill -signal %jobnumber

例子:kill -9 %2        //直接从背景中移除2号job

注: 可用kill -l命令来查看当前可用的signal有哪些,常用1,9,15三个