如何在Linux中同时执行命令

我们曾经在这里写过如何在Linux上同时运行多个命令的方法,现在我们将学习如何同时执行它们。 假设您正在Linux“ vi”编辑器中编辑配置文件,突然之间您需要在另一个文件中找到一些数据? 在普通的GUI系统中,这不是问题。 您只需打开第二个文件,检查何时需要,然后切换到第一个程序。 在命令行上并不是那么容易。 通过CLI执行进程会阻止其他程序的进一步输入。 以sleep命令为例:

它可以工作30分钟,但我们无能为力。 但是,我们仍然可以在Linux中使用“ bg”和“ fg”命令手动管理进程并同时运行命令。 这就是它的工作方式。

Ctrl + c和Ctrl + z

我们都知道,如果进程错误,则ctrl + c会将其关闭。 程序运行时间过长,还是来自滚动速度比您看到的速度更快的巨大输出! 按下Ctrl + C会立即以SIGINT信号中断该过程。 这表明该过程完成了所执行的操作,并立即终止。

这在大多数情况下都有效,但是请记住,每个过程都必须决定如何处理它。 某些程序(例如vi)在退出前需要确认-通常没有充分的理由,因为在没有警告的情况下中断可能会导致数据丢失或损坏。

但是,您可以挂起它,而不是使用Ctrl + c终止该过程。 在这里使用Ctrl + z很有用。 按Ctrl + z会暂时挂起程序并将其发送回后台。 例如:

如何在Linux中同时执行命令

在上图中,我们开始使用vi文本编辑器编辑“测试”文件。 然后我们按Ctrl + z。 此命令“停止”该过程或将其挂起。 这些被称为“工作”,每个工作都有编号。 每当我们在方括号中暂停该过程时,就会显示此数字。 例如,已暂停的vi应用程序的作业号为1。

现在该过程已暂停,我们回到了命令行,可以在其中执行其他命令!

恢复暂停的工作

请注意,上面的vi编辑器之类的已暂停作业将不再运行。 她处于暂时冻结状态,正等待复兴。 我们可以通过两种方式来恢复它:

  1. 重建工作并将其置于最前面(并运行命令行)
  2. 恢复工作并将其发送到后台(我们可以继续做其他事情)

要重新激活已暂停的作业并将其置于前台,我们使用以下命令:

fg% n

其中“ n”是工作编号。 因此,如果您查找完数据并想返回到在vi中编辑文件,请输入:

fg% 1

如果我们希望流程恢复操作并继续进行,请输入:

bg% n

其中“ n”再次是作业编号。 因此,如果您有一个需要连续运行的进程(例如,安装Apache),但仍需要在命令行上执行其他工作,则可以使用“ bg”命令将其恢复。

如果您忘记了流程的工作编号,请不要担心。 只需使用以下命令:

jobs -l

它将显示现有作业的列表及其状态和作业编号,如下所示:

如何在Linux中同时执行命令

因此,永远不会有失去太多工作的危险。

立即在后台运行命令

上面的脚本显示了如何使用Ctrl + z暂停进程,然后使用“ bg%n”在后台恢复其操作。 但是,我们可以通过在命令后面简单键入“&”号来组合这两个命令。 此处可以找到&符号命令的示例。 这将立即将其发送到后台。 例如:

sleep 30m &

运行sleep命令30分钟,该过程将在后台继续运行30分钟,如下所示:

如何在Linux中同时执行命令

非常舒适! 和以前一样,您可以使用“ fg”命令将进程带回到前台,然后根据需要终止或挂起该进程。

警告当在这样的后台提交进程时,请确保它不会在命令行或标准输出上生成任何输出! 确保将输出重定向到文件或其他内容。 否则,它将继续在后台运行,并在命令行中填充其输出,并且您甚至无法使用Ctrl + c将其杀死,因为它在前台不起作用。

因此,有了此警告,您现在知道如何在Linux中同时运行命令,并且可以对您的内容执行多任务处理。

请禁用您的广告拦截器或将此网站列入白名单!

Sidebar