就像舞台一样,操作系统中有你能看到的进程(在舞台上卖力表演的演员),也有你看不见但悄悄运行的进程(在后台默默奉献的工作人员),当然也有暂停的进程(在后台偷懒休息的人)。如果观众对在舞台上表演的演员不满意,他可以到后台休息或者在后台排练。正在运行的程序也可以暂停放到后台,或者放到后台运行。与前台后台相关的操作命令有Ctrl+z(其实只是个组合键)、fg、bg、&(命令修饰符)、jobs等。
Ctrl+z:暂停执行中的命令
fg:将后台命令调到前台
bg:使在后台暂停的命令继续在后台运行
&:执行命令放到命令最后,使该命令直接在后台运行
jobs:查看后台程序状态
Ctrl+z(组合键)
bg N
fg N
command &
jobs [option]
jobs: -l 显示进程ID -r 只显示运行中的后台进程 -s 只显示暂停中的后台进程
假如您已经开始运行一个程序,但发现该程序需要很久才能运行完,而您还需要运行别的程序。这时您可以按Ctrl+z组合键,该程序的进程就会暂停,使用jobs命令,显示该进程已停止:
[xiezy@ibi98 ~]$ sleep 1m ^Z [1]+ 已停止 sleep 1m [xiezy@ibi98 ~]$ jobs [1]+ 已停止 sleep 1m
这时,如果运行bg命令,则这个暂停的进程会继续在后台运行。如果想把该进程放到前台,可以用fg命令。
[xiezy@ibi98 ~]$ bg [1]+ sleep 1m & [xiezy@ibi98 ~]$ jobs [1]+ 运行中 sleep 1m & [xiezy@ibi98 ~]$ fg sleep 1m
如果后台有多个进程,bg和fg还可以跟一个参数N,可以指定放到后台的多个进程中的某一个。这时如果没有参数,则针对的是最后一个放到后台的进程。如:
[peter@ibi98 prac]$ sleep 1m & [1] 22209 [peter@ibi98 prac]$ sleep 1.2m ^Z [2]+ 已停止 sleep 1.2m [peter@ibi98 prac]$ jobs [1]- 运行中 sleep 1m & [2]+ 已停止 sleep 1.2m [peter@ibi98 prac]$ fg 1 sleep 1m
也可以在程序开始运行时在命令后面添加“&”直接放到后台运行,命令运行完成后。再输入一个新的命令或直接回车,会提示命令已完成:
[xiezy@ibi98 ~]$ sleep 10 & [1] 810 [xiezy@ibi98 ~]$ jobs [1]+ 运行中 sleep 10 & [xiezy@ibi98 ~]$ [1]+ 完成 sleep 10
在编程时,经常需要调试,每次调试都保存退出的话太麻烦,这时只需要用Ctrl+z将编辑器如VIM放到后台,调试完后再用fg命令调到前台即可。