Linux jobs命令:查看和管理后台任务

news2024/11/15 15:29:11

目录

  • 一、jobs命令简介
  • 二、jobs命令适用的Linux版本
  • 三、jobs命令的基本语法
  • 四、jobs命令的常用选项或参数
  • 五、jobs命令实例
    • 5.1 显示当前shell中的后台作业
      • 将命令放到后台
      • 查看后台作业状态
      • 将后台作业带到前台
    • 5.2 显示后台作业的进程号
    • 5.3 显示已停止的后台作业
    • 5.4 显示上次shell通知后改变了状态的作业
    • 5.5 显示正在运行的后台作业
    • 5.6 显示后台作业的进程号和命令
    • 5.7 使用作业号来指定后台作业
  • 六、Linux jobs相关命令
  • 七、 Linux jobs命令的注意事项


一、jobs命令简介

jobs命令是job control(作业控制)的一部分,它可以显示当前shell中的后台作业(background jobs)的状态。
后台作业是指在后台运行的进程(process),它们不会占用前台的终端(terminal)。你可以使用&符号来将一个命令放到后台运行,例如 sleep 10 &
你也可以使用Ctrl+Z来暂停(suspend)一个前台的进程,并将它放到后台。
jobs命令可以让你查看后台作业的编号(job number)、进程号(process ID)、状态(status)和命令(command)。


二、jobs命令适用的Linux版本

jobs命令是一个shell内置命令(built-in command),它不需要安装,只要你的shell支持作业控制,就可以使用它。常见的shell,如bash、zsh、ksh、csh等都支持作业控制。可以使用echo $SHELL来查看你当前使用的shell。
在这里插入图片描述

如果你的shell不支持作业控制,你可以使用ps命令来查看后台进程的信息,或者使用top命令来监视进程的运行情况。


三、jobs命令的基本语法

jobs [选项] [作业号]

四、jobs命令的常用选项或参数

选项说明
-l显示进程号(process ID)
-n只显示上次shell通知后改变了状态的作业
-p只显示进程号
-r只显示正在运行的作业
-s只显示已停止的作业

五、jobs命令实例

5.1 显示当前shell中的后台作业

将命令放到后台

首先,运行命令将其放到后台:

sleep 10 &  
ping bashcommandnotfound.cn &  

这将使这两个命令在后台运行,shell 会显示类似于以下内容的消息:

[1] 12345  
[2] 12346

这里 [1] 和 [2] 是作业号,而 12345 和 12346 是进程号。

查看后台作业状态

使用 jobs 命令查看当前后台作业的状态:

jobs  

输出可能类似于:

[1]-  运行中               sleep 10 &
[2]+  运行中               ping bashcommandnotfound.cn &

这里:

“运行中” 表示作业是正在运行中的。
如果某个作业被暂停,它会显示为“已停止”。
作业号后面的 + 符号表示最近放到后台的作业,而 - 符号表示上一个作业。

将后台作业带到前台

如果你想将后台作业切换到前台,你可以使用 fg 命令。使用作业号来指定要切换的作业,例如:

fg %1  

或者

fg %2  

这里:

%1 表示作业号为 1 的作业(即 sleep 10)。
%2 表示作业号为 2 的作业(即 ping bashcommandnotfound.cn)。

备注

使用 fg 命令可以让你在需要与某个后台作业进行交互时,便利地将其转回前台。
如果你有多个后台作业,可以根据需要使用相应的作业号来进行切换。

5.2 显示后台作业的进程号

[linux@bashcommandnotfound.cn ~]$ jobs -l
[1]-  1234 运行中               sleep 10 &
[2]+  2345 运行中               ping bashcommandnotfound.cn &

Tips:

使用 -l 选项可以显示后台作业的进程号,这可以方便你使用kill命令来终止它们。

5.3 显示已停止的后台作业

[linux@bashcommandnotfound.cn ~]$ sleep 10
^Z
[1]+  已停止               sleep 10
[linux@bashcommandnotfound.cn ~]$ jobs -s
[1]+  已停止               sleep 10

Tips:

使用Ctrl+Z可以暂停一个前台的进程,并将它放到后台,shell会显示它的作业号和状态。
使用-s选项可以只显示已停止的后台作业,这可以方便你使用bg %1来将它们继续在后台运行。

5.4 显示上次shell通知后改变了状态的作业

[linux@bashcommandnotfound.cn ~]$ sleep 10 &
[1] 1234
[linux@bashcommandnotfound.cn ~]$ sleep 20 &
[2] 2345
[linux@bashcommandnotfound.cn ~]$ jobs -n
[1]-  运行中               sleep 10 &
[2]+  运行中               sleep 20 &
[linux@bashcommandnotfound.cn ~]$ jobs -n
[linux@bashcommandnotfound.cn ~]$ 
[1]-  已完成               sleep 10
[linux@bashcommandnotfound.cn ~]$ jobs -n
[1]-  已完成               sleep 10

Tips:

使用-n选项可以只显示上次shell通知后改变了状态的作业,例如从运行中变为已完成的作业。
如果没有作业改变了状态,jobs -n命令不会有任何输出。

5.5 显示正在运行的后台作业

[linux@bashcommandnotfound.cn ~]$ sleep 10 &
[1] 1234
[linux@bashcommandnotfound.cn ~]$ sleep 20 &
[2] 2345
[linux@bashcommandnotfound.cn ~]$ sleep 30 &
[3] 3456
[linux@bashcommandnotfound.cn ~]$ jobs -r
[1]   运行中               sleep 10 &
[2]-  运行中               sleep 20 &
[3]+  运行中               sleep 30 &

Tips:

使用-r选项可以只显示正在运行的后台作业,这可以方便你使用kill %n来终止它们。

5.6 显示后台作业的进程号和命令

[linux@bashcommandnotfound.cn ~]$ jobs -p
1234
2345
3456
[linux@bashcommandnotfound.cn ~]$ jobs -p | xargs ps -o pid,cmd
  PID CMD
 1234 sleep 10
 2345 sleep 20
 3456 sleep 30

Tips

使用-p选项可以只显示后台作业的进程号,这可以方便你使用管道(pipe)和其他命令来处理它们。
例如,你可以使用jobs -p | xargs ps -o pid,cmd来显示后台作业的进程号和命令。

5.7 使用作业号来指定后台作业

[linux@bashcommandnotfound.cn ~]$ jobs
[1]   运行中               sleep 10 &
[2]-  运行中               sleep 20 &
[3]+  运行中               sleep 30 &
[linux@bashcommandnotfound.cn ~]$ jobs %1
[1]   运行中               sleep 10 &
[linux@bashcommandnotfound.cn ~]$ jobs %2
[2]-  运行中               sleep 20 &
[linux@bashcommandnotfound.cn ~]$ jobs %3
[3]+  运行中               sleep 30 &

Tips

你可以使用%符号和作业号来指定后台作业,这可以方便你使用其他命令来操作它们。
例如,你可以使用jobs %n来显示指定的后台作业的状态,或者使用kill %n来终止它们。

六、Linux jobs相关命令

bg命令:在后台继续运行作业
fg命令:在前台继续运行作业
kill命令:终止进程
ps命令:显示进程信息
top命令:监视进程活动

七、 Linux jobs命令的注意事项

  • jobs命令只能显示当前shell中的后台作业,如果你在不同的shell中运行了不同的后台作业,你需要切换到相应的shell中才能查看它们。
  • jobs命令只能显示后台作业的状态,如果你想查看后台作业的输出,你可以使用tail -f命令来查看它们的输出文件,或者使用fg命令将它们切换到前台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

it程序员常用的技术社区网站有哪些

it程序员常用的技术社区网站有哪些??作为程序员,选择好合适的开发社区对提高自己的编程能力会有很大的帮助,技术人员经常会在各种技术交流社区游逛。优秀的实时开发社区确实能帮你积累不少开发经验技术教程 _ 网址大全 _ 博科趣 - 第1页技术教程网站,技…

cuda性能分析工具: nsight systems

安装 1. 安装nsys, nsys可以用命令行生成性能分析报告,参考: nsys profile 2. 安装Nsight Systems可视化工具NVIDIA Nsight Systems | NVIDIA 开发者 使用方法 1. 找一个可执行的cuda程序,编译成可执行文件,比如m…

14-17岁未成年如何办理能一直用的手机卡?

14-17岁未成年如何办理能一直用的手机卡? 有些姐妹要去外面上学,都想要一张属于自己的手机卡。 但是因为反诈的原因,对于手机卡的申领特别严格。 很多不满18岁的人能申领的卡,都是物联卡或者纯流量卡,只能上网&#x…

pytorch深度学习基础 6(简单的参数估计学习2)

上一节我们建立了一个简单的模型进行分析散点图,利用均方差来实现损失函数的计算,但是并没有计算出具体的参数值,这次我们来计算损失函数的损失值以及不断减小损失值,计算出最优的参数,代码原理非常简单大家可以自行理…

TOMCAT-企业级WEB应用服务器

一 WEB技术 1.1 HTTP协议和B/S 结构 HTTP(HyperText Transfer Protocol)协议即超文本传输协议,是用于在万维网(WWW)上传输超文本内容的基础协议。 一、HTTP 协议的特点 1、简单快速 客户向服务器请求服务时&#…

八股(3)——计网

八股(3)——计网 3. 计算机基础3.1 计算机网络OSI 七层模型是什么?每一层的作用是什么?TCP/IP 四层模型是什么?每一层的作用是什么?1. 应用层(Application layer)2. 传输层&#xff…

【iOS安全】iPhone8 iOS14.4.2 越狱教程

环境配置 iPhone 8: 固件版本 iOS 14.4.2 (18D70) 产品类型 iPhone10,1 (A1906) 销售型号 MQ862J/A MacBook Pro: macOS 10.15.7 装有CheckRa1n beta 0.12.4 概述 尝试了几个版本的unc0ver和Taurine,发现都不好使 unc0ver显示unsupported…

如何实现一棵AVL树

目录 1.什么是AVL树? 2.AVL树的实现 2.1AVL树结点的定义 2.2AVL树的插入 2.2.1插入的步骤 2.2.2插入情况分析 2.2.3旋转操作的分析 2.3AVL树的查找 3.AVL树的验证 4.AVL树的性能分析 1.什么是AVL树? AVL树其实就是一棵加了限制条件的二叉搜索树…

day38.动态规划+MySql数据库复习

844.比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空 思路:定义两个栈,将字符…

集合及数据结构第九节————树和二叉树

系列文章目录 集合及数据结构第九节————树和二叉树 树和二叉树 树型结构的概念树的概念树的表示形式(了解)树的应用二叉树的概念两种特殊的二叉树二叉树的性质二叉树的性质练习二叉树的存储二叉树的遍历二叉树的基本操作二叉树相关练习题 文章目录…

flutter 中 ssl 双向证书校验

SSL 证书: 在处理 https 请求的时候,通常可以使用 中间人攻击的方式 获取 https 请求以及响应参数。应为通常我们是 SSL 单向认证,服务器并没有验证我们的客户端的证书。为了防止这种中间人攻击的情况。我么可以通过 ssl 双向认证的方式。即…

Leetcode JAVA刷刷站(91)解码方法

一、题目概述 二、思路方向 这个问题是一个典型的动态规划问题,其中我们可以使用一个数组来存储到达每个位置时的解码方法的总数。 我们定义一个数组 dp,其中 dp[i] 表示字符串 s 的前 i 个字符(从索引 0 到 i-1)的解码方法总数。…

企业数字化转型管控平台探索 ---基于流程的企业经络管理框架DEM

篇幅有限,获取完整内容、更多感兴趣的内容 见下图

OpenCV几何图像变换(8)调整图像大小的函数resize()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 resize 函数调整图像 src 的大小,使其缩小或放大至指定的大小。需要注意的是,初始的 dst 类型或大小不被考虑。相反&…

解决Jasper Studio报表工具中预览正常显示,但部署到服务器上面无法正常显示的问题

目录 1.1、错误描述 1.2、解决方案 1.1、错误描述 之前有遇到过一个Jasper Studio报表开发相关的问题,这里记录一下,方便其他小伙伴可以快速解决问题。问题是这样的:当我在Jasper Studio报表工具里面设计好样式之后,预览报表发…

[论文阅读] mobile aloha实验部分

DP:[1] CHI C, FENG S, DU Y, et al. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion[J]. 2023. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion精读笔记(一)-CSDN博客 VINN:[1] PARI J, SHAFIULLAH N, ARU…

视频达人的秘密武器:全能型剪辑软件深度剖析

剪辑视频,作为视频创作过程中的关键环节,其重要性不言而喻。无论是专业影视制作团队,还是热衷于Vlog创作的个人,都离不开一款强大且易用的视频剪辑工具。今天,就让我们一起踏上一场探索之旅,对市面上的视频…

java基础 之 关键字static

文章目录 前言1、特征2、修饰变量3、修饰方法4、修饰代码块优缺点应用场景代码理解 前言 本文主要是从类与对象的方向来讲,所以在文章开始前,我们先理解一下类和对象 类是一个模板,对象是一个实例。 如【手机】是一个类(一个模板…

MySQL系统性的学习--基础

学习资料是黑马的mysql课程 Mysql概述 相关概念 数据模型 关系型数据库 数据模型 SQL SQL通用语法 SQL分类 DDL 数据库操作 表操作 查询 创建 数据类型 修改/删除 DML 添加数据INSERT 修改数据UPDATE 删除数据DELETE DQL 基础查询 条件查询 聚合函数 分组查询 排序查询 分…

Otterctf 2018 内存取证 (复现)

题目地址: https://otterctf.com/challenges 1 - What the password? 描述:you got a sample of ricks PCs memory. can you get his user password? 首先查看一下镜像的信息 python2 vol.py -f /home/kali/Desktop/OtterCTF.vmem imageinfo 题目描述需要获取密码, 使用mi…