jobs命令列出当前shell会话中所有活跃后台任务,包括running和stopped状态,仅限本会话手动启动且未退出的任务,不显示nohup、screen等持久进程。

直接运行 jobs 命令就能列出当前终端会话中所有活跃的后台任务,包括正在运行(Running)和已被暂停(Stopped)的作业。
基础用法:查看默认列表
在终端中输入:
jobs
输出类似这样:
[1]+ Running sleep 100 &
[2]- Stopped vim notes.txt
[3] Stopped find / -name "log"
其中:
• [1]+ 表示这是最近一个被放入后台的作业(当前作业),+ 标记它为默认目标;
• [2]- 表示前一个作业,- 是次优先目标;
• Running 或 Stopped 明确反映任务状态;
• 命令末尾的 & 表示它原本就是以后台方式启动的。
常用选项辅助识别
根据需要加参数快速筛选或获取关键信息:
- jobs -l:同时显示每个作业的进程 ID(PID),方便后续用 kill 精准操作;
- jobs -r:只列出仍在运行的后台任务;
- jobs -s:只列出被 Ctrl+Z 暂停的已停止任务;
- jobs -n:仅显示最近状态有变化的任务(比如刚被暂停或刚恢复);
- jobs -p %1:单独提取作业 %1 的主进程 PID(适合脚本中取值)。
注意它的作用范围
jobs 只管“自己生的”任务:
- 仅显示当前 shell 会话中由你手动启动、且尚未退出或被清理的作业;
- 看不到其他终端窗口里的任务,也看不到用 nohup、screen 或 tmux 启动的长期后台进程;
- 一旦关闭终端,这些 jobs 默认都会终止——如需持久运行,请改用 nohup 或守护工具。
配合 fg / bg / kill 进行管理
查到作业编号后,可立即操作:
- fg %2:把作业 2 切回前台继续执行;
- bg %1:让已暂停的作业 1 在后台继续运行;
- kill %3:终止作业 3(等价于 kill 加其 PID);
- jobs -x kill %2:自动替换 %2 为对应进程组 ID 后执行 kill,更稳妥。











