当前位置: 首页 > news >正文

Linux fg命令使用教程

好的,这是一份关于 Linux fg 命令的详细使用教程。

1. 命令概述

fgforeground 的缩写,意为“前台”。它的主要作用是将 在后台运行或暂停的作业 切换到前台来继续运行。

在理解 fg 之前,你需要先了解 Linux 的作业控制概念。

  • 前台作业:你当前正在终端中与之交互的作业。它会占用你的终端,在它结束之前,你无法在同一个终端中执行其他命令。
  • 后台作业:在后台运行的作业。它不会占用你的终端,你可以继续在终端中输入和执行其他命令。启动后台作业通常通过在命令末尾加上 & 来实现。
  • 暂停的作业:一个正在前台运行的作业可以通过按 Ctrl + Z 来暂停,暂停后它就会变成一个后台的、已停止的作业。

fg 命令就是用来管理这些后台或暂停的作业的。


2. 命令语法

fg [%作业编号]
  • %作业编号:可选参数。指定要切换到前台的作业编号。如果省略,则默认操作最近一个被放到后台的作业。

3. 基本使用步骤与示例

让我们通过一个完整的例子来演示 fg 的整个生命周期。

步骤 1:启动一个后台作业或暂停一个前台作业

方法 A:直接将命令置于后台

我们使用 & 符号在启动命令时直接将其放到后台。

$ sleep 100 &
[1] 12345  # [作业编号] 进程ID
  • [1] 是 Shell 分配给这个作业的编号。
  • 12345 是这个作业对应的系统进程 ID。

方法 B:暂停一个正在运行的前台作业

我们启动一个长时间运行的前台命令,然后按 Ctrl + Z 将其暂停。

$ sleep 200
# 此时程序在前台运行,终端被占用。
# 按下 Ctrl + Z
^Z
[2]+  Stopped                 sleep 200
  • [2]+ 表示这是第二个作业,并且是“最近的一个”。
  • Stopped 表示这个作业目前处于暂停状态。
步骤 2:查看当前的作业列表

使用 jobs 命令可以查看当前 Shell 会话中所有的后台/暂停作业。

$ jobs
[1]-  Running                 sleep 100 &
[2]+  Stopped                 sleep 200
  • [1], [2] 是作业编号。
  • + 号表示默认作业,当 fgbg 命令不指定参数时,操作的就是这个作业。
  • - 号表示第二个默认作业
  • Running 表示作业正在后台运行。
  • Stopped 表示作业已暂停。
步骤 3:使用 fg 将作业切换到前台

示例 1:不带参数(操作默认作业 +

$ fg
# 因为默认作业 `[2]+` 是 `sleep 200`,并且它是暂停状态
# 所以这条命令会把它调到前台,并继续运行(或等待你输入,如果是 vim 这样的程序)
sleep 200
# 现在终端被这个命令占用,直到它结束或你再次按 Ctrl+Z

示例 2:通过作业编号指定

$ fg %1
# 这将把作业编号为 1 的 `sleep 100` 调到前台
sleep 100

示例 3:通过命令前缀指定

你也可以不记编号,只输入命令的开头部分。

$ fg %sleep
# 这会找到以 "sleep" 开头的作业,并将其调到前台。
# 如果有多个,通常操作的是最近的一个。

4. 常用场景

  1. 恢复文本编辑器(如 Vim)

    • 你正在用 Vim 编辑文件,突然需要执行一个终端命令。
    • Ctrl + Z 暂停 Vim,它会回到 Shell 提示符。
    • 执行完终端命令后,输入 fgfg %vim,Vim 就会重新回到前台,并且保持你离开时的状态。
  2. 管理长时间运行的任务

    • 你启动了一个耗时很长的编译任务 make
    • 发现它占用了终端,你想做别的事情。
    • Ctrl + Z 暂停它。
    • 然后使用 bg 命令将其在后台继续运行bgfg 的兄弟命令,用于在后台恢复运行)。
    • 当你想查看编译进度或结果时,再用 fg 把它调回前台。
  3. 切换多个任务

    • 你有多个任务在后台或暂停状态。
    • 使用 jobs 查看列表。
    • 使用 fg %1, fg %2 等在不同的任务间灵活切换。

5. 总结与备忘单

命令 / 快捷键作用
command &直接将命令启动到后台运行
Ctrl + Z当前前台任务暂停,并放入后台
jobs查看所有后台/暂停的作业
fg [%n]将作业 n(或默认作业)切换到前台运行
bg [%n]已暂停的作业 n后台继续运行
kill %n终止作业编号为 n 的作业
重要提示:
  • fg 是 Shell 的内置命令,它是 Bash、Zsh 等 Shell 提供的功能,而不是一个独立的可执行文件。
  • 当你在前台运行一个作业时,Ctrl + C 会终止它。
  • 作业控制(Jobs)只存在于当前的终端会话中。如果你关闭了终端,所有由它管理的作业都会被终止。对于需要持久运行的任务,应该使用 nohuptmuxscreen

希望这份教程能帮助你更好地理解和使用 fg 命令!

http://www.dtcms.com/a/486919.html

相关文章:

  • 微博爬虫流程解析——session的使用
  • 企业网站建设的核心是专业手机建站公司
  • Vllm Semantic-router MoM 架构
  • LLMs-from-scratch :KV 缓存
  • dshot协议数据帧格式
  • 华清远见25072班QT学习day1
  • 一个网站多个子域名优化网站系统建设与管理
  • SpringBoot使用LocalDate接收参数解析问题
  • 推荐系统学习笔记(十八)SECR-快手-用户留存建模
  • 自助网站建设技术支持建商城网站需要什么
  • 物联网设备安全接入管理系统的设计与核心功能
  • 在React中使用函数式编程的优点和缺点是什么?
  • UE5 Windows平台下打包Linux
  • UE5 建模专题 - 2:地形模式里的工具栏里的按钮的使用,以及样条点制作道路
  • 基于PHP+Mysql的旅游介绍网
  • HOW - prefetch 二级页面实践
  • OCR:开启档案管理的智能新时代
  • 设计网站官网入口广州做一个网站多少钱
  • 比较好的平面设计网站群晖nas安装wordpress安装
  • 重生之我在大学自学鸿蒙开发第六天-《组件导航》
  • Fragment如何实现Activity栈的压栈和出栈
  • 【组合数学题目】宇宙分解
  • 产品网站开发流程图多店铺开源商城系统
  • 百度收录好的网站免费h5网站制作平台
  • 包头微网站开发wordpress打赏作者插件
  • Rust数据库与工具的选择
  • 淮滨网站制作字体排版网站
  • Spring Boot 3.0 的架构革新:为何弃用 spring.factories 并转向 imports 文件
  • 网站访问密码python报班一般多少钱
  • 渗透测试所需域名和IP信息收集方法