工作管理是用在bash环境下。也就是说:『当我们登入系统取得 bash shell 之后,在单一终端机接口下同时进行多个工作的行为管理 』。举例来说,我们在登入 bash 后, 想要一边复制档案、一边进行资料搜寻、一边进行编译,还可以一边进行 vi 程序撰写! 当然我们可以重复登入那六个文字接口的终端机环境中,不过,能不能在一个 bash 内达成? 当然可以啊!就是使用 job control 啦!
由于假设我们只有一个终端接口,因此在可以出现提示字符让你操作的环境就称为前景 (foreground),至于其他工作就可以让你放入背景 (background) 去暂停或运作。要注意的是,放入背景的工作想要运作时, 他必须不能够与使用者互动。举例来说, vim 绝对不可能在背景里面执行 (running) 的!因为你没有输入数据他就不会跑啊! 而且放入背景的工作是不可以使用 [ctrl]+c 来终止的』!
bash 只能够管理自己的工作而不能管理其他 bash 的工作,所以即使你是 root 也不能够将别人的 bash 底下的 job 给他拿过来执行。此外,又分前景与背景,然后在背景里面的工作状态又可以分为『暂停 (stop)』与『运作中 (running)』。
1、 直接将指令丢到背景中『执行』的 &
2、 将『目前』的工作丢到背景中『暂停』:[ctrl]-z
3、 观察目前的背景工作状态: jobs
ps:+号代表预设的取用工作。 所以说:『目前我有两个工作在背景当中,两个工作都是暂停的, 而如果我仅输入 fg 时,那么那个 [2] 会被拿到前景当中来处理』!
4、将背景工作拿到前景来处理:fg——foreground
5、 让工作在背景下的状态变成运作中: bg——background
6、 管理背景当中的工作: kill