![fg命令](https://www.alaica.com/wp-content/uploads/linux-23.jpg)
我是 Linux/Unix shell 新用户。如何在 Linux 或类 Unix 系统上将后台进程调到前台?如何在 Linux/Unix bash/ksh 或基于 POSIX 的 shell 上在前台运行作业?您能为 Linux 用户提供 fg 命令示例吗?
作业控制只不过是根据您的要求停止/暂停进程(命令)的执行以及继续/恢复其执行的能力。这是使用您的操作系统和 shell(例如 bash/ksh 或 POSIX shell)完成的。让我们看看 fg 命令示例和 synatx。
fg命令详细信息 | |
---|---|
描述 | 将后台进程带到前台 |
类别 | 流程管理 |
难度级别 | 简单的 |
根权限 | 不 |
美东时间。阅读时间 | 3分钟 |
您的 shell 保留当前正在执行的作业的表,并且可以使用 来显示jobs command。您需要使用它bg command来重新启动已停止的后台进程。该fg命令将当前 shell 环境中的后台作业移动到前台。
目的
将作业置于前台,并使用 fg 命令将其设为当前作业。
句法
基本语法如下:
fg jobID fg jobID1 jobID2 ... jobIDN
了解作业编号 (jobID)
有多种方法可以在 shell 中引用作业。该角色%介绍了一份工作规范。JobID 可以是进程 ID (PID) 号,也可以使用以下符号组合之一:
- %Number:使用职位编号,例如%1或%2。
- %String:使用名称以挂起命令开头的字符串,例如%commandNameHere或%ping。
- %+OR %%:指当前工作。
- %-: 指以前的工作。
fg 命令示例
在开始使用 fg 命令之前,您需要在系统上启动几个作业以进行演示。键入以下命令来启动作业:
xeyes & gnome-calculator & gedit fetch-stock-prices.py &
最后,在前台运行ping 命令:
ping example.com
要暂停ping 命令作业,请按Ctrl-Z按键序列。
查找正在后台运行或暂停的作业
键入以下jobs 命令:
$ jobs -l
jobs -l 命令的输出显示以下作业在后台运行:
[4]+ 6138 已停止 ping example.com
如何将后台 ping 命令作业带到前台?
要将名为 ping 的后台或挂起进程带到前台,请输入:
$ fg %4
或
$ fg %ping
屏幕显示 ping 命令如下:
![图01 fg命令的作用](https://www.alaica.com/wp-content/uploads/linux-24.jpg)
图01 fg命令的作用
fg 命令选项
从命令手册页或运行help fg命令查看所有选项:
fg: fg [工作规范] 将作业移至前台。 将 JOB_SPEC 标识的作业放在前台,使其成为 目前的工作。如果 JOB_SPEC 不存在,shell的概念 使用当前作业。 退出状态: 置于前台的命令的状态,或者如果发生错误则失败。
关于 /usr/bin/fg 和 shell 内置的注释
输入以下命令type command来查明 fg 是否是 shell、外部命令或两者的一部分:
$ type -a fg
示例输出:
fg 是 shell 内置函数 fg 是 /usr/bin/fg
在几乎所有情况下,您都需要使用作为 BASH/KSH/POSIX shell 内置实现的 fg 命令。/usr/bin/fg 命令不能在当前 shell 会话中使用。/usr/bin/bg 命令在不同的环境中运行,并且不共享父 bash/ksh shell 对作业的理解。
相关媒体
本教程还提供快速视频格式:
加起来
我们可以使用 fg 命令将作业移至前台。使用 man 命令或 help 命令查看以下手册页:
man bash
man ksh
help fg