如何在 Linux 中使用 bg 命令?

Linux 中的 bg 命令允许我们将现有进程置于后台,从而有助于管理服务。 让我们了解该命令的基础知识并深入了解其用法。

Linux 中的 bg 命令是什么?

Linux 中的 bg 命令,也称为“后台”命令,是 Linux/类 UNIX 系统中的作业控制命令。 该命令的作用是使用作业控制将一个在前台工作的服务发送到后台。 本质上,作业控制的作用是终止某些服务或进程。 稍后系统会根据您的要求重新启动它。 这是在 shell 和操作系统的帮助下完成的。

bg 命令的语法

bg 命令适用于除 Bourne shell 之外的所有 Linux shell。 在正在运行的前台进程上使用 bg 命令时,该进程会暂停,然后在后台恢复。 当它用于停止的服务时,该服务作为后台服务重新启动。

理解任何命令的最好方法是理解它的语法。 Linux 中 bg 命令的语法如下所示。

bg [job] 

Linux 中的 bg 命令只有一个参数。 该参数用于表示作业。 我们可以通过四种不同的方式来表示 bg 命令的作业。 下表列出了它们。

选项 影响
%n 将作业 ID 为“n”的作业发送到后台。
%% 或 %+ 将当前作业发送到后台。
%- 将上一个作业发送到后台。
%细绳 将名称以字符串开头的作业发送到后台。

Linux 中的 bg 命令——参数表

如果一个作业在前台运行,它会占用 shell 直到它被停止或挂起。 我们可以使用 bg 命令将作业发送到后台,让您可以专注于其他需要您注意的进程。

在 Linux 中使用 bg 命令

我们现在已经了解了 Linux 中的 bg 命令以及作业参数。 现在是时候将这些知识用于 bg 命令的实际应用了。 在本教程中,我们将通过一些示例来学习如何使用 bg 命令。

将作业发送到后台

bg 命令的核心功能是将在前台运行的作业发送到后台。 要查看如何将作业发送到后台,让我们启动 30 秒的睡眠命令。

由于我们没有指定在睡眠后运行的任何命令,这将创建一个空进程,它只在内存中停留 30 秒。 我们将无法使用命令行,因为 shell 已被占用。 所以我们将使用 Ctrl+Z 来停止这个过程。 现在,我们将使用 bg 命令在后台恢复 sleep 命令。 以下屏幕截图向您展示了这是如何工作的。

bg %<jobID> 
BG 命令

在后台重新启动停止的作业

这是通过将所需的作业 ID 输入我们命令行中的 bg 命令来完成的。 但是,我们需要首先确定需要在后台运行的特定作业。 我们使用命令jobs 查看所有jobs 的列表。

$ jobs 

此命令将列出在后台运行或停止的所有作业。 让我们使用作业 1 并在 Linux 中使用 bg 命令重新启动它。

bg %<job ID> 

再次运行作业命令向我们显示该作业现已开始在后台运行。 如果您查看下面给出的屏幕截图,您应该注意到作业 1 已开始运行。

背景工作

bg 命令的替代方法

如果您希望从启动的那一刻起就在后台启动进程,我们使用 bg 命令的替代方法。 这可以通过附加“&”符号来完成。 为了演示这一点,让我们再次使用 sleep 命令。 我们将启动 sleep 命令,并添加“&”符号,如下所示。

sleep 30 & 

这将启动 sleep 命令并将作业直接发送到后台。 我们可以使用jobs 命令来验证这一点。 正如您在下面的屏幕截图中看到的, sleep 命令在后台运行。

Bg 命令替代Bg 命令替代

bg 命令和“&”符号的区别

正如您在上面注意到的,“&”符号也可以完成将进程发送到后台的工作。 那么bg命令有什么用呢?

主要区别在于 Linux 中的 bg 命令可以用于已经在前台运行的进程。 “&”符号仅在您启动进程时有效,不能用于已在运行的进程。

因此,对于尚未启动的进程, bg 命令和“&”符号的行为方式相同。

包起来

任何 Linux 用户都需要了解在 Linux 中使用 bg 命令管理服务。 这使人们能够更好地控制其系统上的服务。 将一个进程保持在前台会阻止您将系统有效地用于另一个需要您更多关注的进程。

在这种情况下,Linux 中的 bg 命令允许用户将不太重要的作业发送到后台。 这为需要在前台运行的进程释放了 shell。 我们希望本教程能够帮助您理解 Linux 中的 bg 命令。 如果您有任何反馈、疑问或建议,请随时在下面的评论中与我们联系。