fg命令可直接将后台挂起或运行的任务拉回前台继续执行,无需重启;任务需属当前shell作业控制范围,可通过Ctrl+Z挂起或&启动,并用jobs验证存在。

直接用 fg 命令就能把后台挂起或正在运行的任务拉回前台,不需要重启进程,也不需要重新输入命令——它只是把控制权交还给你,让任务继续占用终端、响应键盘输入。
怎么确认任务已在后台(并能被 fg 调用)
任务必须属于当前 shell 的作业控制范围,常见来源有两种:
- 按 Ctrl+Z 暂停前台命令,终端会显示类似
[1]+ Stopped vim file.txt—— 这说明已成功挂起并加入作业队列 - 用
&启动命令,如sleep 300 &,它会直接以后台方式运行,也计入jobs列表
执行 jobs 可验证:有输出就表示该终端下有可操作的作业;若提示 “No such job”,说明任务已结束、被其他 shell 管理,或启动时已脱离终端(比如用了 nohup)。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
用 fg 恢复前台的几种常用写法
fg 支持灵活的作业标识(jobspec),不一定要记编号:
-
fg(无参数)→ 恢复标有+的最新作业(最常用) -
fg %1→ 恢复编号为 1 的作业(编号来自jobs输出左括号里的数字) -
fg %vim→ 恢复命令以vim开头的第一个作业 -
fg %?log→ 恢复命令中包含log的任意作业(适合名字较长或带路径时) -
fg %+或fg %%→ 和无参数效果一致,明确指向默认作业
恢复后会发生什么
调回前台不是“重跑”,而是从暂停点继续执行:
- 如果原命令在等待输入(比如
read -p "Name: "),现在你就能键入内容并回车 - 如果它是交互式程序(如
top、vim),界面立刻恢复,光标回到上次位置 - 按 Ctrl+C 仍可中断它,就像最初在前台启动一样
- 终端一旦关闭,该任务会收到 SIGHUP 信号而终止——真要长期运行,请提前用
nohup、screen或tmux
一个小而完整的例子
假设你正用 tail -f /var/log/syslog 实时看日志,突然想切出去查点别的:
- 按 Ctrl+Z → 显示
[1]+ Stopped tail -f /var/log/syslog - 运行
jobs→ 确认只有这一项,编号是 1 - 输入
fg %1或直接fg→ 日志流立刻续上,滚动刷新如初

















