在 Linux 后台运行多个命令
简介
在 Linux 后台执行多个命令是一个非常有用的功能,它允许用户同时执行多个任务。当运行需要较长时间才能完成的长运行命令时,这尤其有用,因为它允许用户在后台命令执行的同时继续处理其他任务。
在 Linux 后台运行命令有几种方法,包括使用"&"运算符和"nohup"命令。在本文中,我们将探讨这些方法并提供如何使用它们的示例。
使用 "&" 运算符在后台运行命令
在 Linux 后台运行命令最直接的方法之一是使用"&"运算符。此运算符用于在后台运行命令并将终端控制权返回给用户。
要使用"&"运算符,只需将其附加到要在后台运行的命令的末尾即可。例如,要在后台运行sleep命令,您将输入以下命令:
$ sleep 45 &
此命令将执行sleep命令,这将导致终端暂停45秒,然后将终端控制权返回给用户。该命令将继续在后台运行,直到完成。
您可以使用jobs命令查看当前系统上正在运行的后台作业列表。例如:
$ jobs [1]+ Running sleep 60 &
您还可以使用"fg"命令将后台作业调到前台,并使用"bg"命令将作业发送到后台。例如,要将"sleep"命令调到前台,您将输入以下命令:
$ fg %1
使用 "nohup" 在后台运行命令
在 Linux 后台运行命令的另一种方法是使用nohup命令。此命令用于运行不受挂起信号影响的命令,即使关闭终端或用户注销,该命令也可以继续运行。
要使用nohup命令,只需输入"nohup",然后输入要在后台运行的命令即可。例如,要使用nohup在后台运行sleep命令,您将输入以下命令:
$ nohup sleep 60 &
此命令将执行sleep命令并将终端控制权返回给用户。即使关闭终端或用户注销,该命令也会继续在后台运行,直到完成。
默认情况下,命令的输出将重定向到当前工作目录中的名为"nohup.out"的文件。如果需要,您可以使用">"运算符将输出重定向到不同的文件。例如:
$ nohup sleep 60 > output.txt &
此命令将执行"sleep"命令并将输出重定向到当前工作目录中的名为"output.txt"的文件。
使用"nohup"还有一个额外的好处,即使您没有通过终端登录到系统,也可以在后台运行命令。例如,如果您想在远程服务器上运行命令然后断开与服务器的连接,这将非常有用。
结论
在 Linux 后台运行多个命令是一个有用的功能,它允许用户同时执行多个任务。在 Linux 后台运行命令有几种方法,包括使用"&"运算符和"nohup"命令。通过使用这些方法,您可以在后台执行长运行命令的同时继续处理其他任务。
请记住使用"jobs"命令查看当前系统上正在运行的后台作业列表,并分别使用"fg"和"bg"命令将后台作业调到前台或将其发送到后台。
使用"nohup"还有一个额外的好处,即使您没有通过终端登录到系统,也可以在后台运行命令,这对于在远程服务器上运行命令非常有用。
总而言之,在后台运行命令是 Linux 中一个非常有价值的工具,可以帮助提高生产力和效率。因此,对于 Linux 用户来说,这是一个非常有用的功能。