如何在 Linux 中一次运行多个命令

Linux 终端是一个强大的工具,它允许您使用命令执行各种操作。 这些命令使您能够完成各种计算任务,包括文件操作、程序管理和服务自动化。

理想情况下,当您需要运行一堆终端命令时,您可以一个接一个地执行。 然而,事实证明有一种更好的方法可以做到这一点,它涉及一次运行多个命令。

跟随我们演示在 Linux 中运行多个终端命令的不同方法。

一次运行多个 Linux 命令

在 Linux 上,可以通过三种方式在终端中运行多个命令:

  1. 分号 (;) 操作员
  2. 逻辑或 (||) 操作员
  3. 逻辑与 (&&) 操作员

所有这些方法都需要操作员。 虽然这些运算符中的任何一个都可以同时运行两个或多个 shell 命令,但知道使用哪个运算符以及何时使用可以帮助您制定有效的命令。 以下部分讨论正确使用这些运算符的目的和语法。

1. 使用分号 (;) 运算符

当您想在终端中运行多个命令时,使用分号分割命令链是最常见的做法。 造成这种情况的部分原因是操作员的执行方式:它按顺序运行所有命令,而不管前一个命令是成功运行还是失败。

例如,如果有两个命令: 命令 A命令 B,在它们之间使用分号运算符可确保第一个和第二个命令都按顺序执行,而不管第一个命令的输出如何。

command A ; command B

因此,如果您需要运行两个或多个不相关的终端命令,以便第一个命令的输出状态不会影响后者的执行,那么分号运算符是您的最佳选择。

示例用例:显示当前用户名和系统主机名:

whoami ; hostname

但是请记住,shell 按照您提到它们的顺序执行这些命令。 这是输出的样子:

2. 使用 OR (||) 运算符

“或”这个词的定义在这里是一个赠品:当您使用 OR 运算符运行两个命令时,您告诉 shell 在这两个命令之间只执行一个命令。

考虑一个使用 OR 运算符和两个命令的场景: 命令 A命令 B. 这是使用 OR 运算符的联合命令的样子:

command A || command B

这里, 命令 B 只有在 命令 A 失败,即何时 命令 A 返回错误。 同样,如果 命令 A 运行成功, 命令 B 不会执行。

谈到它的用例,当您需要同时运行两个相关命令时,您可以使用 OR 运算符,以便 shell 仅在前一个命令失败时执行下一个命令。

示例用例:假设您要创建一个新文件,例如 文件.txt,但在此之前,您需要确保当前目录中不存在同名文件。 在这种情况下,您可以按以下顺序运行命令:

find . -name Document.txt || touch Document.txt

在这里,find 命令会在当前工作目录中查找 文件.txt 文件。 如果它找到该文件,命令进程将停止——第二个命令将不会运行。

另一方面,如果没有找到匹配的文件,就会执行右边的命令,并生成一个新的文件名 文件.txt 将在您当前的工作目录中创建。

3. 使用 AND (&&) 运算符

正如您可能已经猜到的那样,AND 运算符仅在其前一个命令成功运行时才按顺序执行下一个命令。

为了更好地理解这一点,请考虑您希望运行两个相关命令的场景,这样您希望第二个命令仅在第一个命令返回有效输出时运行。 在这种情况下,我们可以使用 AND 运算符(称为 &&)将命令绑定在一起,以获得我们想要的结果。

示例用例: Linux 中 AND 运算符最常见的用例之一是创建一个新目录并立即进入该目录。 这样,您就不必单独运行这两个命令来执行操作。

出于本指南的目的,假设您要创建一个名为 文件 并立即将您当前的工作目录更改为它。

mkdir Documents && cd Documents

在这里, mkdir 命令将创建一个名为的新目录 文件 在您当前的工作目录中。 如果成功,它将允许执行 cd 命令。

组合多个运算符以满足您的执行标准

除了在命令中单独使用运算符外,您还可以将多个运算符组合在一起以满足您的执行条件。 当您想要基于多个条件执行命令时,这会派上用场。

考虑一个您想要执行两个命令的场景(命令 B命令 C) 只有当 命令 A 失败。 为此,您需要使用如下符号所示的运算符:

command A || command B && command C

示例用例:假设您要确定一个文件夹(名为 文档) 存在于您当前的工作目录中,如果不存在则创建它。 在这种情况下,您无需运行单独的命令来查找目录并创建新目录,而是可以一起使用 OR 和 AND 运算符来有效地执行整个操作。

下面是它的样子:

find . -name Document || echo "Directory not found" && mkdir Document

在这个命令中, 寻找 要求 shell 搜索一个名为 文档 在当前工作目录中。 如果目录不存在,终端将流转移到 回声mkdir 命令,分别打印指定的字符串并创建一个新文件夹。

在 Linux 中高效运行终端命令

如您所见,在命令中使用运算符可以简化许多命令行操作。

如果你是一个喜欢通过终端在他们的计算机上处​​理不同系统操作的人,知道如何使用这些操作符会非常有帮助,并且肯定会帮助你更有效地运行 Linux 命令。

同样,如果您刚刚开始使用 Linux,或者不太熟悉 Linux,那么学习不同的终端命令是掌握命令行界面的又一步。