在 linux 中,jobs、bg 和 fg 命令可协助管理后台任务。1. jobs 用于查看当前终端中暂停或后台运行的任务;2. bg %任务号 可将指定任务放至后台运行,默认操作最近任务;3. fg %任务号 将后台任务带回前台,默认亦操作最近任务。注意:仅限当前 shell 有效,交互式程序可能无法正常后台运行,关闭终端将终止任务。
在 linux 中,如果你经常需要同时运行多个任务,比如下载文件、编译代码或者运行脚本,你可能会希望某些任务在后台运行,腾出终端继续做其他事情。这时候,jobs、bg 和 fg 这几个命令就能派上用场了。
查看当前后台任务:jobs 命令
当你在终端执行一个任务时,按下 Ctrl+Z 可以暂停它。此时你可以选择让它继续在前台运行,或者放到后台去。但在这之前,你想知道有哪些任务已经停下了,这时候就用得上 jobs 命令。
输入:
jobs
系统会列出当前 shell 会话中所有已停止或正在后台运行的任务。输出大概是这样的:
[1] Stopped sleep 300 [2]- Stopped vi notes.txt
- [1] 是任务编号。
- Stopped 表示这个任务目前是暂停状态。
- 后面是任务的具体命令。
小提示:只有在当前终端窗口启动的任务才会被 jobs 显示出来,不是全局的进程管理工具。
把任务放到后台运行:bg 命令
当你暂停了一个任务(比如按了 Ctrl+Z),你可以用 bg 命令把它丢到后台继续运行。使用方法如下:
bg %任务号
例如:
bg %1
这表示让任务 1 在后台恢复运行。如果没有指定任务号,默认操作最近的一个任务。
常见操作步骤:
- 按下 Ctrl+Z 暂停当前任务
- 输入 bg 让它继续在后台跑
- 然后你就可以继续在终端干别的事了
需要注意的是,有些交互式任务(比如 vi)放到后台可能无法正常运行,因为它们依赖标准输入输出。
把后台任务带回前台:fg 命令
如果你有一个任务已经在后台跑了,突然想看看它进展如何,可以用 fg 命令把它“拉回”前台。
语法类似 bg:
fg %任务号
例如:
fg %2
这样任务 2 就会重新占据你的终端窗口。和 bg 一样,如果不加参数,默认处理最近的那个任务。
一些实用技巧:
- 如果你不确定哪个任务在做什么,先用 jobs 看一眼
- 想切换任务?暂停当前任务,用 bg 放后台,再用 fg 切回来
- 不小心把某个任务关掉了?试试 history 回找之前的命令重跑一遍
注意事项与小细节
这几个命令虽然简单,但也有一些容易忽略的地方:
- 它们只对当前 shell 会话有效。一旦关闭终端,这些任务也会被终止。
- 如果你想让任务在终端关闭后依然运行,可以考虑搭配 nohup 或者 disown 使用。
- 多个任务在后台运行时,记得留意资源占用,避免系统卡顿。