Linux 中命令連結操作符的十個最佳例項

發表於2017-12-12

Linux命令中的連結的意思是,通過操作符的行為將幾個命令組合執行。Linux中的連結命令,有些像你在shell中寫短小的shell指令碼,並直接在終端中執行。連結使得自動處理變得更方便。不僅如此,一個無人看管的機器在連結操作符的幫助下能夠十分有條理地執行。

Linux中的10個連結操作符

本文旨在介紹一些常用的連結操作符,通過簡短的描述和相關的例子幫助讀者提高生產力、降低系統負載、寫出更加簡短有意義的程式碼。

1. 和號操作符 (&)

&’的作用是使命令在後臺執行。只要在命令後面跟上一個空格和 ‘&’。你可以一口氣在後臺執行多個命令。

在後臺執行一個命令:

同時在後臺執行兩個命令:

2. 分號操作符 (;)

分號操作符使你可以一口氣執行幾個命令,命令順序執行。

上述命令先後執行了update和upgrade,最後在當前工作目錄下建立了一個‘test’資料夾

3. 與操作符 (&&)

如果第一個命令執行成功,與操作符 (&&)才會執行第二個命令,也就是說,第一個命令退出狀態是0。(譯註:原文的這裡明顯寫錯了,我們進行了改譯,有興趣的讀者可以參看原文以及原文下面的評論。在UNIX裡面,0表示無錯誤,而所有非0返回值都是各種錯誤)。這個命令在檢查最後一個命令的執行狀態時很有用。

比如,我想使用links 命令在終端中訪問網站tecmint.com,但在這之前我需要檢查主機是否線上不線上

4. 或操作符 (||)

或操作符 (||)很像程式設計中的else語句。上面的操作符允許你在第一個命令失敗的情況下執行第二個命令,比如,第一個命令的退出狀態是1

舉例來說,我想要在非root帳戶中執行‘apt-get update‘,如果第一個命令失敗了,接著會執行第二個命令‘links www.tecmint.com‘。

上面的命令中,由於該使用者不允許更新系統,這意味著第一個命令的退出狀態是’1′,因此最後一個命令‘links tecmint.com‘會執行。

如果第一個命令成功執行並且退出狀態是‘0‘呢?很明顯的,第二個命令不會執行。

這裡,使用者在家目錄建立了一個‘test‘資料夾,這是被允許的。命令成功的執行,退出狀態是‘0‘,因此,最後的命令不會執行。

5. 非操作符 (!)

非操作符 (!)很像except語句。這個命令會執行除了提供的條件外的所有的語句。要理解這點,在你的主目錄建立一個目錄‘tecmint’,並‘cd’到它這裡。

接下來,在資料夾‘tecmint’下建立不同型別的檔案。

看一下我們在資料夾‘tecmint’建立的新檔案。

用一種聰明的辦法馬上刪除除了 ‘html’之外的所有檔案。

驗證一下上次的執行結果,使用ls 命令列出可見所有檔案。

6. 與或操作符 (&& – ||)

上面的操作符實際上是‘’和‘’操作符的組合。它很像‘if-else‘語句。

比如,我們ping tecmint.com,如果成功列印‘已驗證’,否則列印‘主機故障’。

示例輸出

現在,斷開我們現在的網路連線誒,再試一下相同的命令。

例項輸出

7. 管道操作符 (|)

PIPE在將第一個命令的輸出作為第二個命令的輸入時很有用。比如,‘ls -l’的輸出通過管道到‘less’,並看一下輸出。

8. 命令合併操作符 {}

合併兩個或多個命令,第二個命令依賴於第一個命令的執行。

比如,檢查一下檔案‘xyz.txt’是否在Downloads目錄下,如果不存在則建立之並輸出提示資訊。

但是這樣的命令的執行結果並不如我們預期的執行,會始終都輸出提示資訊。因此需要使用{}操作符來合併命令:

(譯註:原文這裡應該也是複製或書寫的時候,出現了一些問題,例子中並沒有出現小標題中的”{}”操作符,所以這裡我們進行了修改)

9. 優先操作符 ()

這個操作符可以讓命令以優先順序執行。

在上面的虛擬碼中,如果Command_x1執行失敗了會怎麼樣,Command_x2, Command_x3, Command_x4沒有一個會執行,對於這種情況,我們使用優先操作符

在上面的虛擬碼中,如果Command_x1執行失敗,Command_x2不會執行,但是Command_x3會繼續執行, Command_x4會依賴於 Command_x3的退出狀態。

10. 連線符 ($$

連線符 ()如它名字所說,被用於連線shell中那些太長而需要分成多行的命令。可以在輸入一個“\”之後就回車,然後繼續輸入命令列,直到輸入完成。比如,下面的命令會開啟文字檔案test(1).txt

 

相關文章