澳门新葡亰官网十二个 Linux/Unix下 Bash 和 KSH shell 的作业调整实例

shell 会将当前所执行的作业保存在一个表中,来查看当前正在进行的作业(job),10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例,POSIX shell 下实现执行多重任务

澳门新葡亰官网 4

自己是个新的 Linux/Unix 客商。作者该怎么着在 Linux 或类 Unix 系统中利用
BASH/KSH/TCSH 恐怕依照 POSIX 的 shell
来查阅当前正值进展的作业(job)?在 Unix/Linux
上如何显示当前学业的情景?(LCTT 译注:job,也常称为“职责”State of Qatar

背景:

作业调节是一种本事,能够告一段落/暂停进度(命令)的推行并按你的供给继续/恢复生机它们的施行。那是经过你的操作系统和诸如
bash/ksh 或 POSIX shell 等 shell 来实行的。

读书音讯

澳门新葡亰官网 1

13个 Linux/Unix下 Bash 和 KSH shell 的作业调节实例

shell 会将目前所推行的作业保存在八个表中,能够用 jobs 命令来展现。

[日期:2014-03-13]

用途

在当下 shell 会话中浮现作业的情事。

来源:Linux中国

语法

其主干语法如下:

jobs

jobs jobID

或者

jobs [options] jobID

作者:Linux

启航一些功课来进行身教重于言教

在起初应用 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。

Linux 和 Unix
归于多任务的操作系统,也正是说三个系统在同时段内能运维多种职责(进度State of Qatar。在此个新的博客体系,小编将会列出相关的
Linux 和 Unix 作业(job卡塔尔调控的吩咐,你能够通过那几个命令在 Bash 或 Korn 还有POSIX shell 下促成推行多种职分。

何以体现进程 ID 不含有别的平常的音信?

经过 jobs 命令的 -l(小写的 L)选项列出种种作业的详细音信,运营:

$ jobs -l

示范输出:

澳门新葡亰官网 2

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

澳门新葡亰官网 3

什么样只列出近来壹遍状态改造的进度?

第一,运行三个新的办事如下所示:

$ sleep 100 &

前日,只展现自从上次唤醒过结束或分离之后的作业,输入:

$ jobs -n

示范输出:

[5]-  Running                 sleep 100 &

什么是作业调控?

仅体现进度 ID(PID)

因此 jobs 命令的 -p 选项仅展现 PID:

$ jobs -p

示范输出:

7895
7906
7910
7946
7949

作业调节不只是能够停止/挂起(stop/suspend卡塔尔(قطر‎正在实施的长河(命令卡塔尔(قطر‎,也足以继续/唤醒(continue/resume卡塔尔国推行你须求的每一个进度。那全然可以用你的操作系统和
bash/ksh 之类的 shell 或 POSIX shell 达成。

哪些只展现正在运作的功课呢?

经过 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

Bash / Korn shell,也许是 POSIX shell 提必要了作业调控的条件。

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 作业。

你的 shell 会留有一张当前功课的表单,称为作业表。当你键入命令时,shell
会给它分配八个 jobID(也称作 JOBSPEC卡塔尔国。一个 jobID 或
JOBSPEC只是不大的整数数值。

#1: 创造你的第1个 Linux/Unix 作业

本身要运转四个名字为 xeyes 的一声令下,它会在显示屏上海展览中心示四个椭圆的眸子,输入: $
xeyes &

出口样例:

澳门新葡亰官网 4

Fig.01: 在后台运行 xeyes 命令

自家动用&符号让一个 job 在后台运营。shell 会打字与印刷一行新闻近似如下:

[1]6891

在这里个事例中,有四个数字输出,分别代表:

1 : 在后台实行的 xeyes 任务的作业号为 1。

6891 : 作业1的进程ID。

自己在多实践一些 job:

## 运维一个文书编辑器,X 的系统负荷展现,和 sleep 命令 ##

gedit /tmp/hello.c &

xload &

sleep 100000&

#2: 列出当下的作业

要查看当前 shell 的激活的天职情状,输入:

$ jobs

$ jobs -l

输出如下:

[1]9379Running xeyes &

[2]9380Running gedit /tmp/hello.c &

[3]-9420Running xload &

[4]+9421Running sleep 100000&

简单来说描述如下:

字段值描述示例

澳门新葡亰官网,1

[1]

jobID 或 JOB_SPEC – 专门的工作号要与fg, bg, wait,
kill和任何shell命令一齐行使。你一定要在专业号前缀加多三个百分号:(%卡塔尔。

加号 (+卡塔尔国 标记着暗中同意的或然将来的课业。

减号 (-卡塔尔国 标记着前二个功课。

澳门萄京娱乐场,%1

fg %1

kill %2

2

9379

进程 ID – 系统活动为每一种进度创设并分配地独有的地位标识号。

kill 9379

3