本文最早发表在我的伪文艺阵地豆瓣,现在发表在这里,供大家参考

关键词:foreground,background,jobs

看到对进程前后台的描述,有时候都会搞乱
下面,对前后台进程间的切换做一个简单的梳理,方便记忆
foreground:
运行一个程序,默认都是前台运行的
此命令更多的作用是把后台暂停的程序拿到前台来
继续完成未完成的任务。例如vi编辑较大文件时,需要前后台切换来切换去
再如,本次的linux考试的exam脚本,亦是如此
需要验证某些题目的正确性时,需要ctrl-z,把脚本放到后台去
验证完后,利用fg[%number]回到exam脚本

background:
放到后台的作业包含两种状态

一种是stop(利用jobs -s可查询):
此状态和前台结合起来运用,可以起到很多的作用,上文已经描述
当然,也可以利用bg[%number],直接把暂停在后台的程序在后台运行

另一种是run(利用jobs -r可查询):
此状态通常是因为运行的程序消耗的时间较长,于是把它放到后台运行
当然,它通常需要结合输出重定向
尤其以升级大型套件,下载文件,安装较大软件
和解压大型文件最典型
command >/dev/null 2>&1 &(正确或者错误输出都输出到同一个文件,需要这样写,好像还有其它写法)