Linux 終端是一個(gè)功能強(qiáng)大的工具,允許您使用命令執(zhí)行各種系統(tǒng)操作。文件操作、程序管理和服務(wù)自動(dòng)化是您可以使用 shell 命令高效執(zhí)行的一些操作。
但是,在執(zhí)行多個(gè)操作時(shí),逐個(gè)運(yùn)行命令效率不高。一種更快的方法是在一行中鏈接多個(gè)命令。這不僅加快了流程,而且還節(jié)省了您的時(shí)間。 讓我們探索一下在 Linux 中一次運(yùn)行多個(gè)命令的所有方法。
一次運(yùn)行多個(gè) Linux 命令
Linux 使用三個(gè)運(yùn)算符來(lái)幫助您在一行中執(zhí)行多個(gè)命令:
分號(hào)?(;) 運(yùn)算符
邏輯?OR?(||)?運(yùn)算符
邏輯
AND?(&&) 運(yùn)算符
所有這些運(yùn)算符都可以同時(shí)運(yùn)行兩個(gè)或多個(gè) shell 命令。但是,了解要使用的運(yùn)算符以及何時(shí)使用可以幫助您更有效地創(chuàng)建命令。以下各節(jié)討論正確使用這些運(yùn)算符的目的和語(yǔ)法:
1. 使用分號(hào) (;)? 運(yùn)算符
使用分號(hào)對(duì)命令鏈進(jìn)行分段是在 Linux 終端中運(yùn)行多個(gè)命令的最常見做法。部分原因是運(yùn)算符的執(zhí)行方式:它運(yùn)行序列中的所有命令,而不管前一個(gè)命令是否成功運(yùn)行。 例如,如果有兩個(gè)命令:命令 A 和命令 B,則在它們之間使用分號(hào)運(yùn)算符可確保無(wú)論第一個(gè)命令的輸出如何,這兩個(gè)命令都按順序執(zhí)行。
command A ; command B因此,如果您需要同時(shí)運(yùn)行兩個(gè)或多個(gè)不相關(guān)的終端命令,以便第一個(gè)命令的輸出狀態(tài)不會(huì)影響后者的執(zhí)行,分號(hào)運(yùn)算符是要走的路。 示例用例:如果要查看當(dāng)前用戶的名稱和系統(tǒng)主機(jī)名,可以使用:
xiaoyuer@linuxmi:~/www.linuxmi.com$ whoami ; hostname xiaoyuer linuxmi請(qǐng)記住,shell 按照您提及它們的確切順序執(zhí)行這些命令。輸出如下所示:
?
?
2. 使用 OR (||)運(yùn)算符
“or”這個(gè)詞的定義在這里是一個(gè)贈(zèng)品:當(dāng)你使用 OR 運(yùn)算符運(yùn)行兩個(gè)命令時(shí),你告訴 shell 只執(zhí)行兩個(gè)命令中的一個(gè)。 假設(shè)將 OR 運(yùn)算符與兩個(gè)命令一起使用:命令 A 和命令 B。以下是使用 OR 運(yùn)算符的連體命令的外觀:
command A || command B在這里,命令 B 僅在命令 A 失敗時(shí)執(zhí)行,即當(dāng)命令 A 返回錯(cuò)誤時(shí)。同樣,如果命令 A 成功運(yùn)行,命令 B 將不會(huì)執(zhí)行。 談到它的用例,當(dāng)你需要同時(shí)運(yùn)行兩個(gè)相關(guān)的命令時(shí),你可以使用 OR 運(yùn)算符,這樣 shell 只有在前一個(gè)命令失敗時(shí)才執(zhí)行下一個(gè)命令。 示例用例:假設(shè)您要?jiǎng)?chuàng)建一個(gè)新文件,例如 Document.txt,但在執(zhí)行此操作之前,您需要確保該文件尚未存在于當(dāng)前目錄中。在這種情況下,您可以按以下順序運(yùn)行命令:
xiaoyuer@linuxmi:~/www.linuxmi.com$ find . -name linuxmi.txt || touch linuxmi.txt xiaoyuer@linuxmi:~/www.linuxmi.com$
在這里,find 命令將查找 linux.txt 文件的當(dāng)前工作目錄。如果找到該文件,命令進(jìn)度將停止,并且第二個(gè)命令將不會(huì)運(yùn)行。 另一方面,如果找不到該文件,則將執(zhí)行右側(cè)的命令,并在當(dāng)前工作目錄中創(chuàng)建一個(gè)名為 linux.txt 的新文件。
3. 使用 AND (&&) 運(yùn)算符
正如您可能已經(jīng)猜到的那樣,AND 運(yùn)算符允許您按順序運(yùn)行多個(gè)命令,即,它僅在前一個(gè)命令成功運(yùn)行時(shí)執(zhí)行序列中的下一個(gè)命令。 為了更好地理解這一點(diǎn),請(qǐng)考慮這樣一個(gè)場(chǎng)景:您希望運(yùn)行兩個(gè)相關(guān)命令,以便僅當(dāng)?shù)谝粋€(gè)命令返回有效輸出時(shí)才運(yùn)行第二個(gè)命令。在這種情況下,您可以使用 AND 運(yùn)算符(稱為 &&)將命令綁定在一起,以獲得所需的結(jié)果。 示例用例:在 Linux 中,AND 運(yùn)算符最常見的用例之一是創(chuàng)建一個(gè)新目錄并立即進(jìn)入該目錄。這樣,您就不必分別運(yùn)行這兩個(gè)命令來(lái)執(zhí)行操作。 在本指南中,假設(shè)您要?jiǎng)?chuàng)建一個(gè)名為“l(fā)inuxmi”的新目錄,并立即將當(dāng)前工作目錄更改為該目錄。這是你可以做到的:
xiaoyuer@linuxmi:~/www.linuxmi.com$ mkdir linuxmi && cd linuxmi xiaoyuer@linuxmi:~/www.linuxmi.com/linuxmi$
在這里,mkdir 命令將在當(dāng)前工作目錄中創(chuàng)建一個(gè)名為 linuxmi 的新目錄。如果成功,它將允許執(zhí)行 cd 命令。
組合多個(gè)運(yùn)算符以滿足您的執(zhí)行標(biāo)準(zhǔn)
除了在命令中單獨(dú)使用運(yùn)算符外,還可以對(duì)多個(gè)運(yùn)算符進(jìn)行分組以滿足執(zhí)行條件。當(dāng)您想要執(zhí)行滿足多個(gè)條件的命令時(shí),這會(huì)派上用場(chǎng)。 例如,假設(shè)您希望僅在命令 A 失敗時(shí)才執(zhí)行兩個(gè)命令(命令 B 和命令 C)。為此,您需要使用運(yùn)算符,如下面的符號(hào)所示
command A || command B && command C示例用例:假設(shè)您要確定當(dāng)前工作目錄中是否存在文件夾(名為 linuxmi),如果不存在,則創(chuàng)建該文件夾。 在這種情況下,您可以一起使用 OR 和 AND 運(yùn)算符來(lái)有效地執(zhí)行整個(gè)操作,而不是運(yùn)行單獨(dú)的命令來(lái)查找目錄并創(chuàng)建新目錄。 就是這樣子:
find . -name linuxmi1 || echo "目錄未找到" && mkdir linuxmi在此命令中,find 要求 shell 在當(dāng)前工作目錄中搜索名為 Document 的文件夾。如果該目錄不存在,終端會(huì)將流傳輸?shù)?echo 和 mkdir 命令,這些命令分別打印指定的字符串并創(chuàng)建新文件夾。
使用 shell 腳本一次運(yùn)行多個(gè)命令
shell 腳本是一個(gè)程序,可讓您一次自動(dòng)執(zhí)行一系列命令。它消除了在 Linux 終端中鍵入多個(gè)命令的需要,并節(jié)省了時(shí)間和精力。 只需創(chuàng)建一個(gè)腳本,其中包含頻繁運(yùn)行所需的所有命令,并將其轉(zhuǎn)換為可執(zhí)行文件。然后,在您需要執(zhí)行這些命令時(shí)運(yùn)行它,它將為您完成所有操作。 首先創(chuàng)建一個(gè)新文件,然后鍵入要立即執(zhí)行的命令。使用適當(dāng)?shù)拿Q保存文件,并在末尾添加“.sh”擴(kuò)展名。 現(xiàn)在,打開終端并導(dǎo)航到保存腳本的文件夾。運(yùn)行以下命令以使文件可執(zhí)行:
chmod +x linuxmi.sh完成后,下次需要再次執(zhí)行這些命令時(shí),請(qǐng)轉(zhuǎn)到終端中包含腳本文件的文件夾并像這樣執(zhí)行它:
./linuxmi.sh您可以使用它的一個(gè)應(yīng)用程序是系統(tǒng)更新。與其在每次要更新系統(tǒng)時(shí)在終端中手動(dòng)鍵入和執(zhí)行 sudo apt update 和 sudo apt upgrade 命令,不如創(chuàng)建一個(gè)腳本來(lái)自動(dòng)為您運(yùn)行命令。 只需使用以下命令創(chuàng)建一個(gè)腳本文件,然后按照上面演示的其余步驟操作:
#!/bin/bash sudo apt update && sudo apt upgrade -y?在 Linux 中高效運(yùn)行終端命令
如您所見,在命令中使用運(yùn)算符可以簡(jiǎn)化大多數(shù)命令行操作。 如果您希望通過終端在計(jì)算機(jī)上執(zhí)行不同的系統(tǒng)操作,了解如何使用這些運(yùn)算符將非常有幫助,并幫助您有效地運(yùn)行 Linux 命令。 同樣,如果您剛剛開始(或者不太熟悉)Linux,那么學(xué)習(xí)不同的終端命令是掌握命令行界面的又一步。 OK,這就是本文的內(nèi)容。如果還有什么疑問,請(qǐng)?jiān)谙旅娴脑u(píng)論區(qū)告訴我們。
編輯:黃飛
?
評(píng)論
查看更多