理解Linux中的作业控制:详解fg、bg和jobs命令

理解Linux中的作业控制:详解fg、bg和jobs命令

文章目录

1. 前言

​ Linux系统中,作业控制是一个非常重要的概念,尤其是在需要同时处理多个任务时。通过使用 fgbgjobs 等命令,我们可以轻松地在前台和后台之间切换作业,管理和控制进程的状态。这篇博客将详细介绍这些命令的用法及其相关知识点,帮助自己和读者更好地理解和应用它们。

2. jobs 命令

jobs 命令用于列出当前shell会话中的所有作业。作业可以是正在运行的、停止的或在后台运行的进程。(注意是进程)

常用选项:

  • -l:显示作业的PID(进程ID)。
  • -n:只显示自上次通知后状态发生变化的作业。
  • -p:只显示作业的PID。
  • -r:只显示正在运行的作业。
  • -s:只显示停止的作业。

示例:

bash 复制代码
$ jobs
[1]+  Stopped                 sleep 500

3. bg 命令

bg 命令用于将停止的作业继续在后台运行。它可以指定作业号来操作特定的作业。

语法:

bash 复制代码
bg [JOB_SPEC]

JOB_SPEC 可以是以下形式:

  • n:作业号为n的作业。
  • str:命令以str开头的作业。
  • ?str:命令包含str的作业。
  • -:上一个作业。

示例:

bash 复制代码
$ bg 1
[1]+  sleep 500 &

4. fg 命令

fg 命令用于将后台作业调至前台运行。它也可以指定作业号来操作特定的作业。

语法:

bash 复制代码
fg [JOB_SPEC]

JOB_SPEC 的形式与 bg 命令相同。

示例:

bash 复制代码
$ fg 1
sleep 500

5. 简要总结

  • 作业控制 :Linux中作业控制允许用户在前台和后台之间切换作业。使用 Ctrl+Z 可以暂停当前前台作业并将其放入后台。
  • 信号fgbg 命令实际上是通过发送信号来控制作业的状态。Ctrl+Z 发送 SIGTSTP 信号来暂停作业,而 fgbg 则发送 SIGCONT 信号来继续作业。
  • 进程状态 :作业可以处于运行(Running)、停止(Stopped)或后台运行(Background)的状态。使用 jobs 命令可以查看这些状态。

6. 一图概览

相关推荐
青柚~14 分钟前
【鲲鹏服务器麒麟系统arm架构部署docker】
服务器·arm开发·docker·架构
人工智能训练28 分钟前
Ubuntu中如何进入root用户
linux·运维·服务器·人工智能·ubuntu·ai编程·root
tianshiyeben29 分钟前
WGCLOUD监控系统使用指南 - 告警消息整理完整版
linux·运维·服务器·系统安全·zabbix
Unlyrical32 分钟前
splice, io_uring_prep_splice 调用(无效参数)
linux·服务器·c++·unix
牛奶咖啡1336 分钟前
银河麒麟高级服务器系统(V11)的安装部署实操保姆级教程
服务器·银河麒麟高级服务器操作系统安装·银河麒麟高级服务器v11配置·设置基础软件仓库时出错·银河麒高级服务器系统的实操教程·生产级部署银河麒麟服务系统教程·linux系统的快速上手教程
喜欢你,还有大家1 小时前
Docker-存储
运维·docker·容器
暂时先用这个名字1 小时前
信创时代下,PHP/MySQL应用的平滑迁移与运维管理升级(AI整理)
运维·mysql·php·信创·国产化·国产·迁移
前端世界1 小时前
从零搭建 ASP.NET 单文件 Web 项目:一个能真用的 BookShop 管理页实战
服务器·前端·asp.net
---学无止境---1 小时前
Linux内核用户身份管理全链路深度剖析:setuid系统调用完整架构
linux
CS_浮鱼2 小时前
【Linux】进程控制
linux·运维·网络