fg命令用于将当前shell会话中暂停(Stopped)或后台运行(Running)的作业恢复至前台交互执行,支持fg、fg %n、fg %cmd等用法,作业号由jobs命令查看,仅限本会话有效。

用 fg 命令就能把后台任务拉回前台继续运行。
它不是启动新程序,而是把已存在、处于暂停(Stopped)或后台运行(Running)状态的作业,重新交还终端控制权,让你能继续交互、查看输出或输入内容。
fg 命令怎么用
-
直接输入
fg:恢复最近一个被挂起或后台运行的作业(也就是jobs列表里标有+的那个) -
fg %n:恢复作业编号为n的任务,比如fg %2 -
fg %cmd:用命令名模糊匹配,比如fg %vim或fg %python(只要名字唯一,支持简写)
注意:这里的 %n 是作业号(job number),不是进程 PID。作业号由 shell 分配,用 jobs 命令就能看到。
什么情况下需要 fg
- 误按
Ctrl+Z暂停了top、vim或tail -f,想让它继续在前台显示和响应操作 - 后台运行的脚本突然弹出提示(如“请输入密码”),必须回到前台才能输入
- 多个任务并行时,想暂时专注处理某一个,比如把编辑器从后台调出来继续写代码
配合 jobs 查看当前有哪些后台任务
执行 jobs 会列出类似这样的内容:
[1]+ Stopped vim file.txt [2]- Running python3 long_task.py &
其中 [1]+ 表示默认作业(fg 不加参数时恢复它),Stopped 表示已被暂停,Running 表示已在后台运行但没交互能力。
补充一点小细节
-
fg只对当前 shell 会话里的作业有效,跨终端或已退出的 shell 不生效 - 如果作业原本是用
nohup或screen启动的,它们不属于当前 shell 的作业控制范围,fg无法接管 - 恢复后,程序就像从未中断过一样继续运行,光标回到终端,可以正常按键、读取输出
不复杂但容易忽略


















