Linux运维常用命令之Linux jobs 命令示例
Vivian 2018-06-08 来源 : 阅读 1200 评论 0

摘要:在Linux运维常用命令学习中,我是个新的 Linux/Unix 用户。我该如何在 Linux 或类 Unix 系统中使用 BASH/KSH/TCSH 或者基于 POSIX 的 shell 来查看当前正在进行的作业(job)?在 Unix/Linux 上怎样显示当前作业的状态?(LCTT 译注:job,也常称为“任务”),希望对大家学习Linux运维常用命令有所帮助。

在Linux运维常用命令学习中,我是个新的 Linux/Unix 用户。我该如何在 Linux 或类 Unix 系统中使用 BASH/KSH/TCSH 或者基于 POSIX 的 shell 来查看当前正在进行的作业(job)?在 Unix/Linux 上怎样显示当前作业的状态?(LCTT 译注:job,也常称为“任务”),希望对大家学习Linux运维常用命令有所帮助。

作业控制是一种能力,可以停止/暂停进程(命令)的执行并按你的要求继续/恢复它们的执行。这是通过你的操作系统和诸如 bash/ksh 或 POSIX shell 等 shell 来执行的。

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

示例输出:

 Linux运维常用命令之Linux jobs 命令示例

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

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

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

$ sleep 100 &

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

$ jobs -n

示例输出:

[5]-  Running                 sleep 100 &

仅显示进程 ID(PID)

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

$ jobs -p

示例输出:

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 手册页:

选项

   

描述

Linux运维常用命令之Linux jobs 命令示例

关于 /usr/bin/jobs 和 shell 内建的说明

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

$ type -a jobs

输出示例:

jobs is a shell builtinjobs is /usr/bin/jobs

在几乎所有情况下,你都需要使用 BASH/KSH/POSIX shell 内建的jobs 命令。/usr/bin/jobs 命令不能被用在当前 shell 中。/usr/bin/jobs 命令工作在不同的环境中,并不共享其父 bash/ksh 的 shell 作业。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程