jobs 命令示例

jobs 命令示例

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

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

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

用途

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

语法

其基本语法如下:


  1. jobs


  1. jobs jobID

或者


  1. jobs [options] jobID

启动一些作业来进行示范

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


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

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


  1. ping www.cyberciti.biz

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

jobs 命令示例

要在当前 shell 显示作业的状态,请输入:


  1. $ jobs

输出示例:


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

要显示名字以“p”开头的进程 ID 或作业名称,输入:


  1. $ jobs -p %p

或者


  1. $ jobs %p

输出示例:


  1. [4]- Stopped ping cyberciti.biz

字符 % 是一个指定任务的方法。在这个例子中,你可以使用作业名称开头字符串来来暂停它,如 %ping。

如何显示进程 ID 不包含其他正常的信息?

通过 jobs 命令的 -l(小写的 L)选项列出每个作业的详细信息,运行:


  1. $ jobs -l

示例输出:

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

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

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


  1. $ sleep 100 &

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


  1. $ jobs -n

示例输出:


  1. [5]- Running sleep 100 &

仅显示进程 ID(PID)

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


  1. $ jobs -p

示例输出:


  1. 7895
  2. 7906
  3. 7910
  4. 7946
  5. 7949

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

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


  1. $ jobs -r

示例输出:


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

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

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


  1. $ jobs -s

示例输出:


  1. [4]+ Stopped ping cyberciti.biz

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


  1. $ bg %4

jobs 命令选项

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

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

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

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


  1. $ type -a jobs

输出示例:


  1. jobs is a shell builtin
  2. jobs is /usr/bin/jobs

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

文来自合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

时间: 2024-07-29 04:32:53

jobs 命令示例的相关文章

bat批处理 if 命令示例详解_DOS/BAT

if 命令示例详解 if,正如它E文中的意思,就是"如果"的意思,用来进行条件判断.翻译过来的意思就是:如果符合某一条件,便执行后面的命令. 主要用来判断,1.两个"字符串"是否相等:2.两个数值是大于.小于.等于,然后执行相应的命令. 当然还有特殊用法,如结合errorlevel:if errorlevel 1 echo error 或者结合defined(定义的意思):if defined test (echo It is defined) else echo 

菜鸟学Linux命令:bg fg jobs命令 任务管理

jobs命令 jobs命令用于查看当前终端后台运行的任务 注意和ps的区别: ps命令用于查看瞬间进程的动态 通过一个实例可以理解它们之间的区别,依次执行如下命令:vim & //后台执行vimbingyue@ubuntu:~$ vim &[1] 2493bingyue@ubuntu:~$ vim &[2] 2495[1]+ Stopped vim jobs //查看后台执行的任务bingyue@ubuntu:~$ jobs[1]- Stopped vim[2]+ Stopped

Linux中的15个基本‘ls’命令示例

Linux中的15个基本'ls'命令示例 ls命令是Linux系统中最被频繁使用的命令之一,我相信ls命令一定是你进入一台Linux系统的电脑打开命令提示符后第一个使用的命令.我们每天都在频繁地使用ls命令,即使我们可能没有意识也从来用不到所有可用的选项.本文中,我们将讨论下一些基本的ls命令并且覆盖尽可能多的有关参数来讲解. Linux的ls命令 1. 不带任何选项列出文件 不带选项的ls命令来光秃秃地列出文件和目录,我们是不能看到像文件类型.大小.修改日期和时间.权限以及链接这样具体的信息的

SUSE Linux – Zypper 命令示例

SUSE Linux – Zypper 命令示例 Zypper是SUSE Linux中用于安装,升级,卸载,管理仓库.进行各种包查询的命令行接口.本篇将会讨论zypper的几个不同命令的例子. 语法: # zypper [--global-opts] <command> [--command-opts] [command-arguments] 中括号中的部分可以不需要.执行zypper最简单的方法是输入 zypper 及 . 例子1:列出可用的全局选项和命令 打开终端,输入zypper并按回车

十个Linux系统下的passwd实用命令示例

正如 passwd 命令的名称所示,其用于改变系统用户的密码.如果 passwd 命令由非 root 用户执行,那么它会询问当前用户的密码,然后设置调用该命令的用户的新密码.当此命令由超级用户 root 执行的话,就可以重新设置任何用户的密码,包括不知道当前密码的用户. 在这篇文章中,我们将用实例来介绍 passwd 命令. 语法: # passwd {options} {user_name}  可以在 passwd 命令使用不同的选项,列表如下: 例1:更改系统用户的密码 当你使用非 root

10 个 Linux 中的 passwd 命令示例

正如 passwd 命令的名称所示,其用于改变系统用户的密码.如果 passwd 命令由非 root 用户执行,那么它会询问当前用户的密码,然后设置调用该命令的用户的新密码.当此命令由超级用户 root 执行的话,就可以重新设置任何用户的密码,包括不知道当前密码的用户. 在这篇文章中,我们将用实例来介绍 passwd 命令. 语法 : # passwd {options} {user_name} 可以在 passwd 命令使用不同的选项,列表如下: 例1:更改系统用户的密码 当你使用非 root

Linux查看文件内容、创建、查看软硬链接命令示例

  命令1:查看文件内容 "cat 文件名" 查看文件内容,页面停留在最后. "more 文件名" 分页查看文件内容 回车 下一行 空格 翻页 q 退出 "head 文件名" 查看文件内容的前几行,默认前10行,如果想制定看前n行,加选项-n 例如 "head -5" 查看前五行 tail 和head相反,"tail -5" 最后五行. tail -f 动态显示最后十行,例如查看日志文件 命令2:创建软连接

【AIX 命令学习】errpt 命令示例!

要想显示一个完整的摘要报告,请输入: errpt 要想显示一个完整的详细报告,请输入: errpt  -a 要想显示一个错误标识符 E19E094F 记录的所有的错误的报表,请输入: errpt  -a  -j E19E094F 要想显示一个在过去 24 小时内记录下来的所有错误的详细报表,请输入: errpt  -a  -s mmddhhmmyy 这里,mmddhhmmyy 字符串等于当前的月.日.小时.分和年再减去 24 小时. 要想列出为其日志为任何错误日志记录关闭的错误记录模板,请输入:

10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例

Linux 和 Unix 属于多任务的操作系统,也就是说一个系统在同一时间段内能运行多重任务(进程).在这个新的博客系列,我将会列出相关的 Linux 和 Unix 作业(job)控制的命令,你可以通过这些命令在 Bash 或 Korn 还有 POSIX shell 下实现执行多重任务. 什么是作业控制? 作业控制不只是能够停止/挂起(stop/suspend)正在执行的进程(命令),也可以继续/唤醒(continue/resume)执行你需要的每一个进程.这完全可以用你的操作系统和 bash/