首页 >> 学习 >> Linux常用命令 >> 前台后台相关命令:Ctrl+z、fg、bg、&、jobs
前台后台相关命令

本节重要性:★★★★★    本节难度:★★★★☆

就像舞台一样,操作系统中有你能看到的进程(在舞台上卖力表演的演员),也有你看不见但悄悄运行的进程(在后台默默奉献的工作人员),当然也有暂停的进程(在后台偷懒休息的人)。如果观众对在舞台上表演的演员不满意,他可以到后台休息或者在后台排练。正在运行的程序也可以暂停放到后台,或者放到后台运行。与前台后台相关的操作命令有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命令调到前台即可。

<<上一节  下一节>>