# 1.命令简介

jobs 主要用于显示系统中的任务列表及其运行状态。

该命令可以显示任务号及其对应的进程号,其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应一个或多个进程号。

jobs 是 Shell 内建命令。

# 2.命令格式

jobs [-lnprs] [ <jobspec> ... ]
jobs -x <command> [ <args> ... ]

如果给定了作业号 jobspec,则仅输出指定的作业信息。

# 3.选项说明

-l
	除正常信息外,还列出进程 ID。
-n
	仅显示上次通知用户后状态发生改变的作业信息。
-p
	仅显示任务对应的进程号。 
-r
	仅显示运行状态(running)的任务。
-s
	仅显示停止状态(stoped)的任务。
-x
	jobs 将在 command 或 args 中找到的任何作业替换为相应的进程组 ID,并执行 command。

# 4.常用示例

(1)显示后台运行的程序。

ping localhost > /dev/null &
ping localhost > /dev/null &

jobs
[1]+  Stopped                 nice -n 19 vim
[2]   Running                 ping localhost > /dev/null &
[3]-  Running                 ping localhost > /dev/null &

+ 号代表当前作业,也是 fg 和 bg 缺省使用的作业,也可以使用 %+ 引用。- 号代表将要成为缺省作业的作业,可以使用 %- 引用。其他作业则无特殊标识符。

(2)显示后台运行的程序,并列出进程号。

jobs -l
[1]+ 24524 Stopped (tty output)    nice -n 19 vim
[2]  11582 Running                 ping localhost > /dev/null &
[3]- 11599 Running                 ping localhost > /dev/null &

输出信息的第一列表示任务编号,第二列表示任务所对应的进程号,第三列表示任务的运行状态,第四列表示启动任务的命令。

(3)仅显示运行的作业。

jobs -r
[2]   Running                 ping localhost > /dev/null &
[3]-  Running                 ping localhost > /dev/null &

(4)仅显示暂停的作业。

jobs -s
[1]+  Stopped                 nice -n 19 vim

(5)列出上次通告之后改变了状态的作业。

jobs -n

# 参考文献

bash(1) - Linux manual page - man7.org (opens new window)

jobs(1) manual - linux.org (opens new window)

jobs(1p) - Linux manual page - man7.org (opens new window)

Last Updated: 5/17/2024, 1:47:36 AM