杭州嵌入式培训
达内杭州嵌入式培训中心

13486356750

热门课程

达内:Linux jobs 命令示例

  • 时间:2016-01-19
  • 发布:杭州嵌入式培训
  • 来源:码农网


    该如何在 Linux 或类 Unix 系统中使用 BASH/KSH/TCSH 或者基于 POSIX 的 shell 来查看当前正在进行的作业(job)?在 Unix/Linux 上怎样显示当前作业的状态?

    杭州达内linux嵌入式培训专家讲解Linux jobs 命令的用法及实例。

    shell 会将当前所执行的作业保存在一个表中,可以用 jobs 命令来显示。

1、用途 :

    在当前 shell 会话中显示作业的状态。

2、语法 :

其基本语法如下:

jobs


jobs jobID

或者

jobs [options] jobID

3、启动一些作业来进行示范

在开始使用 jobs 命令前,你需要在系统上先启动多个作业。执行以下命令来启动作业:

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

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

ping www.cyberciti.biz

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

4、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。

5、如何只列出最近一次状态改变的进程?

首先,启动一个新的工作如下所示:

$ sleep 100 &

现在,只显示自从上次提示过停止或退出之后的作业,输入:

$ jobs -n

示例输出:

[5]-  Running                 sleep 100 &

6、仅显示进程 ID(PID)

通过 jobs 命令的 -p 选项仅显示 PID:

$ jobs -p

示例输出:

7895
7906
7910
7946
7949

7、怎样只显示正在运行的作业呢?

通过 jobs 命令的 -r 选项只显示正在运行的作业,输入:

$ jobs -r

示例输出:

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

8、怎样只显示已经停止工作的作业?

通过 jobs 命令的 -s 选项只显示停止工作的作业,输入:

$ jobs -s

示例输出:

[4]+  Stopped                 ping cyberciti.biz

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

$ bg %4

9、jobs 命令选项

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







原文链接:http://www.codeceo.com/article/jobs-command.html
上一篇:Ubuntu在云领域大受欢迎的10个原因
下一篇:达内盘点2015年TOP20的免费开源软件

恭喜达内获得《产学合作协同育人项目合作伙伴奖》

中传学子参加达内Java培训,转身成为Java工程师月薪12.5K

职场求突破参加达内网络营销培训,获10万年薪成为营销达人

高中毕业不想把人生过成说明书,参加达内网络营销培训获得月薪8K

选择城市和中心
贵州省

广西省

海南省

台湾