Linux jobs命令教程:如何查看和管理后台作业(附实例详解和注意事项) 您所在的位置:网站首页 查看网络状态和任务选项的命令 Linux jobs命令教程:如何查看和管理后台作业(附实例详解和注意事项)

Linux jobs命令教程:如何查看和管理后台作业(附实例详解和注意事项)

2024-07-13 02:24| 来源: 网络整理| 查看: 265

Linux jobs命令介绍

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

Linux jobs命令适用的Linux版本

jobs命令是一个shell内置命令(built-in command),它不需要安装,只要你的shell支持作业控制,就可以使用它。常见的shell,如bash、zsh、ksh、csh等都支持作业控制。你可以使用echo $SHELL来查看你当前使用的shell。如果你的shell不支持作业控制,你可以使用ps命令来查看后台进程的信息,或者使用top命令来监视进程的运行情况。

Linux jobs命令的基本语法

jobs命令的基本语法如下:

jobs [选项] [作业号] Linux jobs命令的常用选项或参数说明

jobs命令的常用选项或参数如下表所示:

选项说明-l显示进程号(process ID)-n只显示上次shell通知后改变了状态的作业-p只显示进程号-r只显示正在运行的作业-s只显示已停止的作业 Linux jobs命令的实例 实例1:显示当前shell中的后台作业

命令:

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

注释:

使用&符号将sleep 10和ping bashcommandnotfound.cn命令放到后台运行,shell会显示它们的作业号和进程号。 使用jobs命令查看后台作业的状态,运行中的作业会显示“运行中”,暂停的作业会显示“已停止”。 作业号后面的-和+符号表示最近放到后台的作业和当前的默认作业,你可以使用fg %1或fg %2来将它们切换到前台。 实例2:显示后台作业的进程号

命令:

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

注释:

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

命令:

[[email protected] ~]$ sleep 10 ^Z [1]+ 已停止 sleep 10 [[email protected] ~]$ jobs -s [1]+ 已停止 sleep 10

注释:

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

命令:

[[email protected] ~]$ sleep 10 & [1] 1234 [[email protected] ~]$ sleep 20 & [2] 2345 [[email protected] ~]$ jobs -n [1]- 运行中 sleep 10 & [2]+ 运行中 sleep 20 & [[email protected] ~]$ jobs -n [[email protected] ~]$ [1]- 已完成 sleep 10 [[email protected] ~]$ jobs -n [1]- 已完成 sleep 10

注释:

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

命令:

[[email protected] ~]$ sleep 10 & [1] 1234 [[email protected] ~]$ sleep 20 & [2] 2345 [[email protected] ~]$ sleep 30 & [3] 3456 [[email protected] ~]$ jobs -r [1] 运行中 sleep 10 & [2]- 运行中 sleep 20 & [3]+ 运行中 sleep 30 &

注释:

使用-r选项可以只显示正在运行的后台作业,这可以方便你使用kill %n来终止它们。 实例6:显示后台作业的进程号和命令

命令:

[[email protected] ~]$ jobs -p 1234 2345 3456 [[email protected] ~]$ jobs -p | xargs ps -o pid,cmd PID CMD 1234 sleep 10 2345 sleep 20 3456 sleep 30

注释:

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

命令:

[[email protected] ~]$ jobs [1] 运行中 sleep 10 & [2]- 运行中 sleep 20 & [3]+ 运行中 sleep 30 & [[email protected] ~]$ jobs %1 [1] 运行中 sleep 10 & [[email protected] ~]$ jobs %2 [2]- 运行中 sleep 20 & [[email protected] ~]$ jobs %3 [3]+ 运行中 sleep 30 &

注释:

你可以使用%符号和作业号来指定后台作业,这可以方便你使用其他命令来操作它们。 例如,你可以使用jobs %n来显示指定的后台作业的状态,或者使用kill %n来终止它们。 Linux jobs命令相关的快捷键 你可以使用Ctrl+Z来暂停一个前台的进程,并将它放到后台。 你可以使用Ctrl+C来终止一个前台的进程。 你可以使用fg或fg %+来将当前的默认作业切换到前台。 你可以使用fg %-来将最近放到后台的作业切换到前台。 你可以使用bg或bg %+来将当前的默认作业继续在后台运行。 你可以使用bg %-来将最近放到后台的作业继续在后台运行。 Linux jobs命令的注意事项 jobs命令只能显示当前shell中的后台作业,如果你在不同的shell中运行了不同的后台作业,你需要切换到相应的shell中才能查看它们。 jobs命令只能显示后台作业的状态,如果你想查看后台作业的输出,你可以使用tail -f命令来查看它们的输出文件,或者使用fg命令将它们切换到前台。 如果你输入了一个不存在的命令,shell会提示bash: xxx: command not found,这表示你需要安装相应的软件包或者检查你的命令是否正确。 Linux jobs相关命令 bg命令:在后台继续运行作业 fg命令:在前台继续运行作业 kill命令:终止进程 ps命令:显示进程信息 top命令:监视进程活动


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有