如何在 Linux 终端中一次运行多个 Linux 命令 [Essential Beginners Tip]

在一行中运行两个或多个命令可以为您节省大量时间,并帮助您在 Linux 中变得更有效率和生产力。

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

; 命令 1 ; 命令 2 先运行命令 1,然后运行命令 2
&& 命令 1 && 命令 2 仅当命令 1 成功结束时才运行命令 2
|| 命令 1 || 命令 2 仅当命令 1 失败时才运行命令 2

让我向您详细展示如何在 Linux 中链接命令。

使用 ; 在一行中运行多个 Linux 命令

其中最简单的是分号 (;)。 您只需组合要使用的几个命令; 以下列方式:

cmd1; cmd2; cmd3

在这里,cmd1 将首先运行。 不管 cmd1 运行成功还是出错,cmd2 都会在它之后运行。 当 cmd2 命令完成时,cmd3 将运行。

让我们举一个您可以轻松练习的示例(如果您愿意)。

mkdir new_dir; cd new_dir; pwd

在上面的命令中,您首先使用 mkdir 命令创建一个名为 new_dir 的新目录。 然后使用 cd 命令切换到这个新创建的目录。 最后,使用 pwd 命令打印当前位置。

分号 (;) 后面的空格是可选的,但它使命令链易于阅读。

使用 && 运行多个 Linux 命令

有时您想确保在 Linux 命令链中, 下一个命令仅在上一个命令成功结束时运行. 这就是逻辑 AND 运算符 && 出现的地方:

cmd1 && cmd2 && cmd3

如果您使用基于 Ubuntu 或 Debian 的发行版,您一定遇到过这个使用 && 概念的命令:

sudo apt update && sudo apt upgrade

这里的第一个命令 (sudo apt update) 首先刷新包数据库缓存。 如果没有错误,它将升级所有具有较新版本可用的软件包。

让我们以前面的例子为例。 如果 new_dir 已经存在, mkdir 命令将返回错误。 行为的差异; 和 && 可以在下面的屏幕截图中看到:

你有没有看到当第一个命令导致错误时,由 && 分隔的命令是如何停止的?

使用 || 一次运行多个 Linux 命令

您可以使用逻辑 OR 运算符 (||) 来运行命令链,但 下一个命令仅在上一个命令以错误结束时运行. 这与您使用 && 看到的相反。

cmd1 || cmd2 || cmd3

如果 cmd1 失败,则 cmd2 运行。 如果 cmd2 运行成功,cmd3 将不会运行。

在上面的屏幕截图中, mkdir new_dir 命令失败,因为 new_dir 已经存在。 由于此命令失败,下一个命令 cd new_dir 执行成功。 现在这个命令已经成功运行,下一个命令 pwd 将不会运行。

额外提示:结合 && 和 || 运营商

您可以组合操作符来运行两个或多个 Linux 命令。

如果将三个命令与 && 和 || 结合使用,它将表现为 C/C++ 中的三元运算符 (条件?表达式_真;表达式_假)。

cmd1 && cmd2 || cmd3

例如,您可以 检查文件是否存在于 bash,并相应地打印消息。

[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"

在创建file.txt文件前后运行上面的命令看看区别:

就像 Linux 终端中的复制粘贴一样,一次运行多个命令也是 Linux 命令行节省时间的众多技巧之一。 虽然很初级,但它是任何 Linux 终端用户都应该知道的基本概念。

您还可以使用 ;、&& 和 || 在其中运行多个命令 bash 脚本也是如此。

我希望你喜欢这个终端技巧。 请继续关注每周二在 #TerminalTuesday 系列下发布的更多 Linux 命令提示和工具。