当前位置: 首页 > 科技观察

如何在后台运行Linux命令?

时间:2023-03-15 09:21:13 科技观察

在使用命令行工作的时候,如果某个任务耗时长,占用终端时间长,总是很麻烦。其实在Linux中,你可以将一个命令或进程发送到后台,让它在后台运行,同时释放终端,这样你就可以继续运行其他命令了。本文介绍了几种将进程发送到后台的方法,然后展示了如何将后台进程带回前台。直接在后台启动一个Linux进程如果我们知道某个命令或进程耗时很长,那么直接在后台启动该命令会比较好。要在后台运行Linux命令,只需在命令末尾添加一个&符号,例如:your_command&例如,我们启动一个简单的睡眠命令,将其发送到后台:sleep60&当命令完成时后台,你应该可以在终端看到这个命令的消息:[1]+Donesleep60将正在运行的进程发送到后台如果你有一个程序正在运行,然后突然意识到这个程序应该在后台运行.在这种情况下,还有一种方法可以将正在运行的进程发送到后台。这时候需要做的是,先按Ctrl+Z暂停正在运行的进程,然后用bg(background的缩写)把进程送到后台,被暂停的进程就会去后台继续运行。running_command^zbg还是以刚才的sleep命令为例,先在前台运行sleep命令,然后调到后台:[gliu@fedora~]$sleep60^Z[1]+Stoppedsleep60[gliu@fedora~]$bg[1]+sleep60&查看后台运行的所有进程通过上面的介绍,我们知道了如何在后台运行程序,那么还有一个问题就是我们希望能够查看有哪些进程当前正在后台运行。要查看当前正在运行的后台进程,可以使用jobs命令,如下:jobs为了演示这个例子,我们先在后台运行一些命令:firefox&gedit&vim&现在,运行jobs命令,它会显示所有正在运行的进程或命令:jobs[1]Runningfirefox&[2]-Runninggedit&[3]+Stoppedvim在上面的输出中,注意其中的数字([1]、[2]、[3])?这是作业ID。另外,数字后面的+和-符号在两个输出中意味着什么?+表示我们运行的最后一个作业,-表示我们运行的倒数第二个作业。将后台运行的进程调到前台下一个问题,如何将后台运行的进程调到前台?要将正在运行的命令发送到后台,请使用bg;那么反过来,要恢复后台进程,可以使用fg(foreground的缩写)命令:fg单独使用不带任何参数的fg命令,它会将后台作业列表中最后一个作业带到前景。在前面的示例中,运行fg会将vim编辑器返回到终端。如果我们要把指定的进程拉到前台,还需要指定job的id。这个id是我们前面提到的jobs命令输出中每行顶部的数字。上面说的fgn是后台运行Linux命令的一些相关知识。另外,建议再学习一下nohup命令。此命令允许我们在退出会话后(即关闭终端后)保持命令在后台运行。后面我们也会分享一篇关于nohup的文章,敬请期待。以上就是本次分享的全部内容,欢迎讨论。