命令示例

ca661亚洲城手机版 2

自家是个新的 Linux/Unix 客商。作者该怎么在 Linux 或类 Unix 系统中应用
BASH/KSH/TCSH 或许依赖 POSIX 的 shell
来查阅当前正在开展的功课(job)?在 Unix/Linux
上怎么彰显当前功课的状态?(LCTT 译注:job,也常称为“任务”State of Qatar

作业调整是一种力量,可以告一段落/暂停进度(命令)的进行并按你的需求持续/恢复生机它们的施行。那是经过你的操作系统和诸如
bash/ksh 或 POSIX shell 等 shell 来进行的。

ca661亚洲城手机版 1

shell 会将眼前所实施的作业保存在一个表中,能够用 jobs 命令来突显。

用途

在现阶段 shell 会话中彰显作业的气象。

语法

在这之中央语法如下:

jobs

jobs jobID

或者

jobs [options] jobID

运行一些作业来展开自己要作为典范遵守规则

在始发接受 jobs
命令前,你需求在系统上先运维三个作业。实施以下命令来运营作业:

### 启动 xeyes, calculator, 和 gedit 文本编辑器 ###
xeyes &
gnome-calculator &
gedit fetch-stock-prices.py &

最后,在前台运转 ping 命令:

ping www.cyberciti.biz

Ctrl-Z 键来挂起(suspend) ping 命令的作业。

jobs 命令示例

要在当下 shell 突显作业的事态,请输入:

$ jobs

输出示例:

[1]   7895 Running                 gpass &
[2]   7906 Running                 gnome-calculator &
[3]-  7910 Running                 gedit fetch-stock-prices.py &
[4]+  7946 Stopped                 ping cyberciti.biz

要体现名字以“p”开端的长河 ID 或作业名称,输入:

$ jobs -p %p

或者

$ jobs %p

出口示例:

[4]-  Stopped                 ping cyberciti.biz

字符 %
是叁个点名任务的法子。在此个例子中,你能够使用作业名称起始字符串来来暂停它,如
%ping。

什么呈现进度 ID 不包罗别的平常的音信?

由此 jobs 命令的 -l(小写的 L)选项列出各个作业的详细音信,运营:

$ jobs -l

演示输出:

ca661亚洲城手机版 2

Fig.01: 在 shell 中显示 jobs 的状态

何以只列出方今一回状态改动的长河?

首先,运转三个新的劳作如下所示:

$ sleep 100 &

如今,只展现自从上次提示过甘休或退出之后的学业,输入:

$ jobs -n

自己要作为表率遵守规则输出:

[5]-  Running                 sleep 100 &

仅展现进程 ID(PID)

因而 jobs 命令的 -p 选项仅呈现 PID:

$ jobs -p

ca661亚洲城手机版,演示输出:

7895
7906
7910
7946
7949

什么样只体现正在运行的学业呢?

透过 jobs 命令的 -r 选项只显示正在周转的作业,输入:

$ jobs -r

为人师表输出:

[1]   Running                 gpass &
[2]   Running                 gnome-calculator &
[3]-  Running                 gedit fetch-stock-prices.py &

什么样只显示已经终止职业的学业?

由此 jobs 命令的 -s 选项只体现甘休职业的学业,输入:

$ jobs -s

身体力行输出:

[4]+  Stopped                 ping cyberciti.biz

要继续试行 ping cyberciti.biz 作业,输入以下 bg 命令:

$ bg %4

jobs 命令选项

摘自 bash(1) 命令 man
手册页:

选项 描述
-l 列出进程 ID 及其它信息。
-p 仅列出进程 ID。
-n 仅列出自从上次输出了状态变化提示(比如显示有进程退出)后的发生了状态变化的进程。
-r 仅显示运行中的作业。
-s 仅显示停止的作业。
-x 运行命令及其参数,并用新的命令的进程 ID 替代所匹配的原有作业的进程组 ID。

有关 /usr/bin/jobs 和 shell 内建的辨证

输入以下 type 命令找寻是否 jobs 命令是 shell
的内建命令或是外部命令如故都是:

$ type -a jobs

出口示例:

jobs is a shell builtin
jobs is /usr/bin/jobs

在差超少全部处境下,你都亟待动用 BASH/KSH/POSIX shell 内建的jobs
命令。/usr/bin/jobs 命令无法被用在日前 shell 中。/usr/bin/jobs
命令专门的工作在差异的情状中,并不分享其父 bash/ksh 的 shell 作业。

Leave a Comment.