如何将一个 Linux 命令转至后台运行?

系统 Linux
本文将介绍几种向后台发送进程的方法,然后还会展示如何将后台进程恢复到前台。

在使用命令行工作的时候,如果某个任务耗时比较长,长时间的占据着终端,这总是很麻烦的。其实,在 Linux 中,可以将命令或进程发送到后台,让其在后台运行,而释放出终端来,这样可以继续运行其他的命令。

本文将介绍几种向后台发送进程的方法,然后还会展示如何将后台进程恢复到前台。

直接在后台启动 Linux 进程

如果我们知道某个命令或进程会花费很长时间,那么最好直接在后台启动该命令。

要在后台运行 Linux 命令,只需要在命令的末尾添加一个 & 符号,如下所示:

your_command &

比如,我们启动一个简单的 sleep 命令,将其发送到后台:

sleep 60 &

当命令在后台完成时,你应该能在终端上看到该命令的信息:

[1]+  Done                    sleep 60

将正在运行的进程发送到后台

如果你已经运行了一个程序,然后忽然意识到,这个程序本应该在后台运行。那么这种情况下,也有办法将正在运行的进程发送到后台。

此时需要做的,首先按 Ctrl + Z 键,暂停正在运行的进程,然后使用 bg(background 的缩写)向后台发送进程,该被挂起的进程就会转到后台继续运行。

running_command
^z
bg

还是以刚才那个 sleep 命令为例,首先在前台运行 sleep 命令,然后将其转到后台:

[gliu@fedora~]$ sleep 60
^Z
[1]+ Stopped sleep 60
[gliu@fedora~]$ bg
[1]+ sleep 60 &

查看后台运行的所有进程

通过上文的介绍,我们知道了如何在后台运行程序,那么另一个问题,就是我们希望能够查看目前都有哪些进程正在后台运行。

要查看当前正在运行的后台进程,可以使用 jobs 命令,如下:

jobs

为了演示这个例子,我们首先在后台运行一些命令:

firefox &
gedit &
vim &

现在,运行 jobs 命令,就会显示所有正在运行的进程或命令:

jobs
[1] Running firefox &
[2]- Running gedit &
[3]+ Stopped vim

在上述输出中,注意到其中的数字([1], [2], [3])了吗?这是作业ID。另外,其中的两条输出,数字后面的 + 和 - 符号是什么意思呢?+ 表示我们运行的最后一个作业,- 表示我们运行的倒数第二个作业。

将后台运行的进程转至前台

接下来一个问题,如何将在后台运行的进程,转到前台呢?

将正在运行的命令发送到后台,使用 bg;那么反过来,要恢复后台进程,可使用 fg(foreground的简写) 命令:

fg

单单使用 fg 命令而不带任何参数,会把后台作业列表中的最后一个进程带到前台。在前面的例子中,运行 fg 会将 vim 编辑器返回到终端中。

如果我们要将某个指定的进程带到前台,还需要指定作业的 id。这个 id 就是我们前面提到的,使用 jobs 命令的输出中,每一行最前面的数字。

fg n

上文所述就是一些关于将 Linux 命令在后台运行的相关知识。除此以外,建议再学习一下 nohup 命令,这个命令可以让我们在注销会话后(也就是关闭终端后),让命令继续在后台运行。稍后我们也会分享一篇关于 nohup 的文章,敬请关注。

以上就是本次分享全部内容,欢迎讨论。

责任编辑:庞桂玉 来源: TIAP
相关推荐

2010-03-08 17:53:36

Linux后台运行命令

2021-06-10 09:56:09

Linux命令shell

2016-11-02 09:49:21

Linux命令进程

2018-09-10 15:14:27

前端WebURL

2010-03-09 08:54:29

Linux后台运行命令

2010-03-08 18:18:38

Linux后台运行命令

2010-03-09 09:40:02

Linux后台运行命令

2010-03-08 18:07:02

Linux后台运行命令

2017-01-24 19:57:13

Linux命令Shell

2019-12-27 15:05:51

Python类方法装饰器

2014-07-04 10:12:09

VimIDE

2022-07-19 10:53:57

模型算法智能

2009-06-04 16:19:52

GlassFish作为

2021-02-15 17:29:46

LinuxShell脚本

2021-04-11 10:08:50

LinuxLinux命令ntpdate

2021-04-13 10:25:57

Linux命令pstree

2015-10-14 10:45:04

linux命令less

2019-08-26 08:00:55

Docker容器映像

2010-02-25 17:36:38

Linux USB

2020-09-24 10:03:54

Python开发语言
点赞
收藏

51CTO技术栈公众号