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: Displaying the status of jobs in the shell

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.



相关文章
|
C语言
【C语言】利用数组处理批量数据(一维数组和二维数组)
【C语言】利用数组处理批量数据(一维数组和二维数组)
251 1
|
NoSQL Java MongoDB
MongoDB 排序
10月更文挑战第16天
319 4
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
688 0
|
SQL 分布式计算 数据处理
SQL 能力问题之MaxCompute(ODPS)SQL有哪些特点
SQL 能力问题之MaxCompute(ODPS)SQL有哪些特点
|
12月前
|
安全 搜索推荐
最佳CEO如何建立持久的利益相关者关系
最佳CEO如何建立持久的利益相关者关系
|
存储 算法 前端开发
作者推荐 | 分布式协议之巅 — 揭秘基础Paxos与Raft协议如何实现分布式系统达成一致性(非变种Paxos协议)
作者推荐 | 分布式协议之巅 — 揭秘基础Paxos与Raft协议如何实现分布式系统达成一致性(非变种Paxos协议)
815 0
|
SQL 机器学习/深度学习 NoSQL
常用的数据分析方法和工具有哪些?
随着大数据时代的到来,数据分析也逐渐成为了各企业、组织以及个人的必要技能之一。但是数据分析在进行过程中,我们往往会遇到各种各样的问题,比如面对不同类型的数据,如何进行有效的分析?今天和大家分享一些常见的数据分析方法和工具,希望对大家有所帮助。
|
监控 Serverless 前端开发
函数计算操作报错合集之部署报错提示 "Disk is required but not provided" ,该如何解决
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
214 1
|
人工智能 文件存储
AI绘画体验与创作探索
使用阿里云NAS+PAI-EAS部署Stable Diffusion文生图模型的一点感想
468 18
|
开发框架 .NET 编译器
【C++】C++对C语言的关系,拓展及命名空间的使用
【C++】C++对C语言的关系,拓展及命名空间的使用
212 1