10 個 Linux 命令行操作符及其作用
命令鏈運算符是用於在命令行中編寫微型 shell 腳本的特殊字元。 它們通常用於按特定順序執行命令,由命令之間的運算符位置定義。 這在自動化任務中非常有用。
讓我們了解一些 Linux 上的通用鏈運算符,它們可以幫助您更快地完成任務,並且用戶間隔更短。
1. 與號運算符 (&)
通常,當您從 shell 打開程序或執行命令時,您必須等到命令終止或手動退出程序才能繼續使用 shell。 這裡是 & 號運算符 (&) 發揮作用的地方。
通過將 & 運算符附加到任何命令,您可以指示 shell 在後台執行該 Linux 命令,以便您可以繼續使用不受限制的 shell。
gedit &
通常,如果您從終端運行 gedit,您將無法使用終端,除非您關閉文本編輯器。 但是,通過附加 & 運算符,您可以使其在後台運行並立即繼續使用 shell。
2. 分號運算符 (;)
分號運算符是一個非常有用的 Linux 鏈接運算符,您可以使用它以定義的順序執行命令。 對您的命令進行排序並用分號分隔它們。
密碼; mkdir 測試; 光碟測試; 觸摸文件
上面的語法指示 shell 一個接一個地執行每個命令。 請注意,shell 不會檢查每個命令是否成功終止。 一旦 shell 收到返回碼,它就會繼續執行下一個命令。
3. OR 運算符 (||)
OR 運算符只有在前面的命令失敗時才會執行後面的命令,即返回退出代碼 0。它的功能類似於邏輯或門,當輸入為 0 時返回值 1。
壞命令 || ls
在此示例語法中,bad_command 是一個將無法執行的錯誤命令,並且由於它失敗,繼 OR 運算符(即 ls 命令)之後的命令將成功執行。
4. 管道操作員 (|)
管道操作符將前面命令的輸出作為後續命令的輸入。 它最常用於使用 grep 命令過濾數據。
貓測試| grep -i “makeuseof”
此命令將 cat 命令的輸出作為輸入發送到 grep 命令,然後根據指定的字元串過濾輸出。
5. AND 運算符 (&&)
此運算符的功能與分號運算符類似,但與分號運算符不同的是,AND 運算符只有在前面的命令成功執行時才會執行命令。
pwd && mkdir test && cd test && bad_command && ls
在此示例語法中,shell 將成功執行所有命令,直到 bad_command。 但是,由於 bad_command 無法運行,shell 將返回錯誤並跳過 ls 命令。
6. NOT 運算符 (!)
NOT 運算符的工作方式與編程中的 except 語句類似。 例如,如果您想對目錄中的大量文件執行操作,但想根據某個參數排除一些文件,則可以通過在 NOT 字元 (!) 之後傳遞參數來使用 NOT 運算符。
rm -r !(*.txt)
此示例命令將遞歸刪除目錄中的所有文件,但擴展名為「.txt」的文件除外。
7. 優先運算符 ((..))
AND 和 OR 運算符後面的命令取決於前面命令的退出代碼。 這些運算符是二進位的,只計算它們之前和之後的兩個命令。
因此,在使用多個運算符時,設置組和優先順序以確保執行順序符合您的期望非常重要。
(ls *.txt > txt-files.list && cp *.tx ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || echo “優先測試”
在此示例語法中,兩組命令都必須返回退出代碼 0 以確保成功執行最後一個命令。 此示例要求第一個 set () 中的兩個命令都以 0 退出,以便第二個 set () 運行。
8. 組合運算符 ({..})
顧名思義,組合運算符用於對命令進行分組。 無論您要分組哪個命令,都可以將它們放在大括弧內,它們將根據第一個命令的退出代碼執行。
測試 -f /etc/passwd && {pwd ; 日期} && 回聲 $0 ; 回聲「你好」
示例語法將測試 /etc/passwd 文件是否存在,列印當前工作目錄、日期、shell 名稱並回顯「Hello」。
9. 連接或轉義運算符 (\)
連接或轉義運算符有兩個功能。 在 shell 中處理字元串時,您可以使用它來連接兩個命令或作為轉義字元。
mkdir test0 test1 \ test2
echo “你好從
另一邊」
第一個命令將創建四個名為 test0 到 test2 的目錄,第二個命令將列印由新行分隔的字元串。
10. 重定向運算符(>、>>、<)
重定向運算符通過重寫文件或附加到文件將輸出或輸入重定向到文件。 如果要重寫文件,則必須使用單尖括弧 (>) 語法。 如果要附加到文件,則必須使用雙尖括弧語法 (>>)。
回聲「dsd」>測試; 回聲「bsss」>>測試
在示例語法中,第一個命令將使用提供的字元串覆蓋「test」文件,但在第二個命令中,提供的字元串將附加到測試文件中。
加快您的 Linux 終端工作流程
雖然使用特殊運算符將為您顯著簡化任務執行,但還有多種其他方法可以加快您的工作流程。
在更短的時間內完成更多工作的一種簡單而有價值的方法是讓自己熟悉一些方便的 shell 快捷方式。 習慣這些快捷方式會有很長的路要走,只要你使用 Linux,你就會發現自己依賴它們。