如何使用 fg 和 bg 命令管理 Linux 后台作业

在 Linux 和 Unix 系统中,作业被定义为已开始运行但尚未完成的任务。每个任务基本上都是正在执行的程序,这是一个过程。

每个作业都分配有一个唯一的 ID,称为作业编号(作业 ID)。我们可以在后台运行作业而无需用户的任何干预,也可以作为当前作业在前台运行。

在本教程中,我们将学习 fg 和 bg 命令来管理 Linux 中的作业。

bg 命令

被某个中断信号停止的进程可以在后台使用 bg 命令继续。

$ nautilus

^Z

[1]+ Stopped nautilus

此过程已通过ctrl+z中断信号停止。可以使用作业命令检查停止的进程。但在检查之前,让我们创建另一个作业并用停止信号中断它。

$ jedit

9:22:28 AM [main] [warning] jEdit: inifPLAF failed to set required l&f

9:22:29 AM [main] [warning] jEdit: inifPLAF failed to set required l&f

^Z

[2]+ Stopped jedit

$ jobs

[1]- Stopped nautilus

[2]+ Stopped jedit

您可以看到作业的状态已停止。加号 (+) 表示当前作业。减号 (-) 表示上一个作业。现在,要在后台运行停止的作业,我们使用 bg 命令。默认情况下,如果没有给出参数,bg 在后台运行当前作业。

$ bg

[2]+ jedit &

$ jobs

[1]+ Stopped nautilus

[2]- Running jedit &

bg 命令可以将作业号作为参数。作业编号显示在作业输出的方括号中。

在上面的例子中,nautilus 的作业号是 1。所以现在我们使用这个作业号在后台运行作业。需要该%标志来指示工作编号。

$ bg %1

[1]+ nautilus &

$ jobs

[1]- Running nautilus &

[2]+ Running jedit &

bg 命令还可以通过名称引用作业。例如%String指名称以指定字符串开头的作业,%?String指名称中包含指定字符串的作业。

为了说明,我们有两个停止的工作。

$ jobs

[1]+ Stopped nautilus

[2]- Stopped jedit

$ bg %nau

[1]+ nautilus &

$ jobs

[1]- Running nautilus &

[2]+ Stopped jedit

$ bg %?ed

[2]+ jedit &

$ jobs

[1]- Running nautilus &

[2]+ Running jedit &

fg 命令

fg 命令类似于 bg 命令,不同之处在于它不是在后台发送命令,而是在前台运行它们并占用当前终端并等待进程退出。

# jobs

[1]- Stopped makewhatis

[2]+ Stopped vi

没有任何参数, fg 将在前台运行当前作业(在本例中为 vi)。

# fg

vi

由于命令在前台运行,因此在命令退出之前我们不会返回终端。因此,jobs 命令现在将只显示一项作业,因为 vi 现在将退出。

# jobs

[1]+ Stopped makewhatis

# fg %1

makewhatis

# jobs

没有剩余的工作。喜欢 bg,%String%?String为 fg 工作。

# jobs

[1]- Stopped makewhatis

[2]+ Stopped vi

# fg %v

vi

# fg %?what

makewhatis

结论

在本教程中,我们通过一些示例学习了如何使用 fg 和 bg 命令进行作业控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值