一、作业控制

1、作业控制与回话

1️⃣:作业控制是shell的一种功能,它允许单个shell实例运行和管理多个命令

2️⃣:作业与在sehll提示符中输入的每个管道相关联、该管道中的所有进程均是作业的一部分,并且是同一个进程组的成员

3️⃣:如果在shell提示符中仅输入了一条命令,则这条命令可视为命令的最小管道;该命令将是该作业的唯一成员

4️⃣:一次只能有一个作业从特定终端窗口读取输入和键盘生成的信号。属于该作业的进程是该控制终端的前台进程

2、作业分类

1️⃣:前台作业:通过终端启动,且启动后一直占据了命令提示符

2️⃣:后台作业:可以通过终端启动,但启动之后,释放命令提示符,后续的操作在后台完成

  •   此类作业虽然被送往后台运行,但其依然与终端相关。如果希望送往后台后,剥离与终端的关系需要执行(nohup COMMAND &)

3、后台运行作业演示

 //在命令后跟上&符号可以生成一个后台作业
[root@localhost ~]# sleep 1000 &
[1] 2247
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 &
// jobs命令用于显示当前所有的后台作业

4、fg —— 将后台作业调至前台运行

[root@localhost ~]# sleep 1000 &
[1] 2284
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 &
[root@localhost ~]# fg
sleep 1000
//光标会在这一行卡主,直到超过1000秒;
//当只有一个后台作业时,直接使用fg命令,不跟任何参数即可将后台作业调至前台运行 //当有多个后台作业时,必须加上%num(num是每个后台作业的编号,也就是[]中的数字)
[root@localhost ~]# sleep 1000 &
[1] 2313
[root@localhost ~]# sleep 1100 &
[2] 2314
[root@localhost ~]# sleep 1200 &
[3] 2316
[root@localhost ~]# jobs
[1] 运行中 sleep 1000 &
[2]- 运行中 sleep 1100 &
[3]+ 运行中 sleep 1200 &
[root@localhost ~]# ps -ef | grep sleep
root 2313 2084 0 10:40 pts/2 00:00:00 sleep 1000
root 2314 2084 0 10:40 pts/2 00:00:00 sleep 1100
root 2316 2084 0 10:40 pts/2 00:00:00 sleep 1200
root 2318 2084 0 10:41 pts/2 00:00:00 grep --color=auto sleep
// 现在我想让第二个sleep放到前台运行
[root@localhost ~]# fg %2
sleep 1100 //如果多个后台作业,不加参数,直接用fg就直接调取最后一个作业到前台运行
[root@localhost ~]# jobs
[1] 运行中 sleep 1000 &
[2]- 运行中 sleep 1100 &
[3]+ 运行中 sleep 1200 &
[root@localhost ~]# fg
sleep 1200

5、Ctrl+z —— 将前台作业放到后台运行

 //使用ctrl+z可将前台进程发送到后台,此时作业将处于停止状态
[root@localhost ~]# sleep 1000 &
[1] 2345
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 &
[root@localhost ~]# fg
sleep 1000
^Z // 此处按ctrl+z
[1]+ 已停止 sleep 1000
[root@localhost ~]# jobs
[1]+ 已停止 sleep 1000

6、bg  —— 使后台已停止的作业重新运行

[root@localhost ~]# jobs
[1]+ 已停止 sleep 1000
[root@localhost ~]# bg
[1]+ sleep 1000 &
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 & //当有多后台作业的时候,需要使用bg+%num(num是后台作业的编号,也就是[]中的数字)
[root@localhost ~]# jobs
[1] 运行中 sleep 1000 &
[2]- 已停止 sleep 1100
[3]+ 已停止 sleep 1200
[root@localhost ~]# bg %2
[2]- sleep 1100 &
[root@localhost ~]# jobs
[1] 运行中 sleep 1000 &
[2]- 运行中 sleep 1100 &
[3]+ 已停止 sleep 1200 //如果不加参数,只是使用bg,那么久从后往前逐一将后台停止的作业重新运行
[root@localhost ~]# jobs
[1] 已停止 sleep 1000
[2]- 已停止 sleep 1100
[3]+ 已停止 sleep 1200
[root@localhost ~]# bg
[3]+ sleep 1200 &
[root@localhost ~]# bg
[2]+ sleep 1100 &
[root@localhost ~]# bg
[1]+ sleep 1000 &

7、终止后台作业

 //kill加上作业号可以手动杀死指定作业
[root@localhost ~]# jobs
[1] 运行中 sleep 1000 &
[2] 运行中 sleep 1100 &
[3]+ 已停止 sleep 1200
[4]- 已停止 sleep 1300
[root@localhost ~]# kill %1
[root@localhost ~]# kill %2
[root@localhost ~]# jobs
[3]+ 已停止 sleep 1200
[4]- 已停止 sleep 1300 //将后台作业放到前台,按Ctrl+c终止作业任务
[root@localhost ~]# jobs
[3]- 运行中 sleep 1200 &
[4]+ 已停止 sleep 1300
[root@localhost ~]# fg %3
sleep 1200
^C //在这按Ctrl+c
[root@localhost ~]# jobs
[4]+ 已停止 sleep 1300
[root@localhost ~]# fg %4
sleep 1300
^C //这里也是一样,按CTRL+c
[root@localhost ~]# jobs
[root@localhost ~]#

8、jobs命令的结果

  •   +     //命令将默认操作的作业
  • -      //命令将第二个默认操作的作业

Linux_控制作业(管理)的更多相关文章

  1. python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)

    一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...

  2. Linux_用户权限管理

    目录 目录 用户管理 useradd创建用户 userdel删除用户 usermod修改用户账号 passwd修改用户密码 用户权限设置 用户组管理 查看用户的属组 修改用户组gpasswd 为没有家 ...

  3. Linux_网络基础管理

    一.网卡的命名 1.传统网卡命名 eth0.eth1.eth2.eth3......... wlan0.wlan1.waln2.wlan3......... 2.RHEL7命名机制 systemd对网 ...

  4. Linux_控制服务与守护进程

    一.systemd 1.systemd简介 1️⃣:systemd是用户空间的第一个应用程序,即/sbin/init 2️⃣:init程序的类型: SysV风格:init(centos5),实现系统初 ...

  5. MVC基于角色权限控制--用户管理

    用户管理模块包括 新增用户.修改用户.展示用户列表.删除用户.用户角色分配.用户角色删除.用户权限分配 这里只介绍关于权限有关的 用户角色分配.用户角色删除.用户权限分配 新建控制器 UserInfo ...

  6. Linux_系统时间管理

    目录 目录 时间管理 date指令 系统时间设置timedatectl指令 本地时间同步 时间服务器NTP RHEL6 RHEL7 计划任务 一次性计划任务 at指令 限制用户建立一次性计划任务 周期 ...

  7. Linux_软件安装管理

    开始学习rpm,yum等命令的使用,下面的地址可供你学习 大部分都大同小异! 感谢作者:https://segmentfault.com/a/1190000011200461

  8. JS-图片控制-动画管理模块

    animateManage.js ;(function(window,document,undefined){ var _aniQueue = [], //动画队列 --- ani:动画,Queue: ...

  9. Linux_网络进阶管理

    一.链路聚合 1.什么是链路聚合? 网卡的链路聚合就是将多块网卡连接起来,当-块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度. 2.链路聚合方式: ...

随机推荐

  1. [Fundamental of Power Electronics]-PART I-2.稳态变换器原理分析-2.1 引言

    2.1 引言 在上一章中,介绍了降压变换器作为降低直流电压的一种方法,其仅使用非耗散开关,电感器和电容器.开关状态变换产生一个矩形波形\(v_{s}(t)\),如图2.1所示.当开关位于位置1时,该电 ...

  2. 梳理一下最近准备蓝桥杯时学习DP问题的想法

    学习时间不长,记录的只是学习过程的思路和想法,不能保证正确,代码可以在acwing上AC. 01背包问题: 1.首先是简单的01背包问题 2.先确定状态,f[i][j]表示有第i件物品,时间为j的最大 ...

  3. java面试-垃圾回收器谈谈你的理解

    一.垃圾回收算法: 引用计数 复制算法 标记-清除 标记-整理 二.垃圾回收的方式: 串行(Serial).并行(Parallel).并发(CMS).G1 1.串行垃圾回收器(Serial) 它为单线 ...

  4. Sqlmap的基础用法(禁止用于非法用途,测试请自己搭建靶机)

    禁止用于非法用途,测试与学习请自己搭建靶机 sqlmap -r http.txt  #http.txt是我们抓取的http的请求包 sqlmap -r http.txt -p username  #指 ...

  5. wap视频广告遇到的问题

    最近在做一个wap端的视频广告,耗了很多心力在上面,仍旧做不好.没想到wap浏览器对video标签这么不友好.广告需要在原编辑视频播完后插入并自动播放. ios浏览器点击播放按钮后喜欢自动全屏播放,希 ...

  6. Java 线程和操作系统的线程有啥区别?

    尽人事,听天命.博主东南大学硕士在读,携程 Java 后台开发暑期实习生,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收 ...

  7. openpyxl 库

    1. 简介与安装 2.具体示例 2.1 获取workbook与sheet对象 2.2 访问单元格及其值 2.3 写数据 2.4 设置样式 1. 简介与安装 openpyxl 简介 openpyxl 是 ...

  8. CloudBase CMS + Next.js:轻松构建一个内容丰富的站点

    项目背景 试想一下,如果你现在要为你自己或者你所在的组织创建一个强内容的站点,同时要求好的 SEO(搜素引擎优化),比如博客,你会怎么做呢? 由 vite 或者 create-react-app 等脚 ...

  9. 1.4.15- HTML标签之链接标签

    代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. 技术面试问题汇总第005篇:猎豹移动反病毒工程师part5

    这是我当初接受面试的最后两个问题,当时,那位面试官问我对漏洞了解多少时,我说一点都不懂,问我懂不懂系统内核时,我同样只能说不知道.后来他跟我说,面试的考查重点不在于我所掌握的知识的广度,而是深度.这也 ...