10 個 Linux 命令行操作符和它們的作用

命令鏈接運算符是用於在命令行上編寫微型 shell 腳本的特殊字符。 它們通常用於按特定順序執行命令,由命令之間的運算符位置定義。 這在自動化任務中非常有用。

讓我們了解 Linux 中的一些常見鏈接運算符,它們可以幫助您更快地完成任務並減少用戶延遲。

1. 符號 (&) 運算符

通常,當您從 shell 打開程序或運行命令時,必須等到命令完成或手動退出程序才能繼續使用 shell。 這就是與號 (&) 運算符發揮作用的地方。

通過向任何命令添加 & 運算符,您可以告訴 shell 在後台運行該 Linux 命令,這樣您就可以繼續不受限制地使用 shell。

                      
                        gedit 
                        
                          &
                        
                      
                    

通常,如果您從終端運行 gedit,除非您關閉文本編輯器,否則您將無法使用終端。但是通過添加 & 運算符,您可以讓它在後台運行並立即繼續使用 shell。

2. 分號運算符 (;)

分號運算符是一個非常有用的 Linux 鏈接運算符,您可以使用它按定義的順序執行命令。 對命令進行排序並用分號分隔它們。

                      
                        
                          pwd
                        
                         ; mkdir 
                        
                          test
                        
                         ; 
                        
                          cd
                        
                        
                          test
                        
                         ; touch file
                      
                    

上面的語法指示 shell 一個接一個地執行每個命令。 請注意,shell 不會檢查每個命令是否成功完成。 一旦 shell 收到返回代碼,它就會繼續執行下一個命令。

3. 或運算符 (||)

OR 運算符只有在前一個命令失敗時才會執行後面的命令,即它返回退出代碼 0。它的工作原理類似於 OR 邏輯門,當輸入為 0 時返回值 1。

                      
                        bad_command || ls
                      
                    

在此示例語法中,壞命令是不會執行的false命令,既然失敗了,OR運算符後面的命令,也就是ls命令,就會成功執行。

4.管道運算符(|)

管道運算符將前一個命令的輸出作為下一個命令的輸入。 它最常用於使用 grep 命令過濾數據。

                      
                        cat test | grep -i 
                        
                          "
                        
                        makeuseof
                        
                          "
                        
                      
                    

此命令將 cat 命令的輸出作為輸入發送到 grep 命令,然後根據指定的字符串過濾輸出。

5. AND 運算符 (&&)

此運算符的工作方式與分號運算符類似,不同之處在於,與分號運算符不同的是,AND 運算符僅在前一個命令成功執行時才執行命令。

                      
                        pwd 
                        
                          &
                        
                        
                          &
                        
                         mkdir test 
                        
                          &
                        
                        
                          &
                        
                         cd test 
                        
                          &
                        
                        
                          &
                        
                         bad_command 
                        
                          &
                        
                        
                          &
                        
                         ls
                      
                    

在此示例語法中,shell 將成功執行所有命令直到壞命令. 但是,由於未執行 bad_command,shell 將返回錯誤並跳過 ls 命令。

6. NOT 運算符 (!)

NOT 運算符的工作方式類似於編程中的異常語句。 例如,如果要對目錄中的大量文件執行操作,但要根據某些參數排除某些文件,則可以通過在 NOT (!) 字符後傳遞參數來使用 NOT 運算符。

                      
                        
                          rm
                        
                        
                          -r
                        
                         !(*
                        
                          .txt
                        
                        )
                      
                    

此示例命令將遞歸刪除目錄中的所有文件,但具有“。TXT“ 擴大。

7.優先運算符((..))

AND 和 OR 運算符後面的命令取決於前一個命令的退出代碼。 這些運算符是二進制的,只計算它們前後的兩個命令。

因此,在使用多個操作符時,設置組和優先級以確保執行順序符合您的預期非常重要。

                      
                        (ls *.txt 
                        
                          >
                        
                         txt-files.list 
                        
                          &
                        
                        
                          &
                        
                         cp *.tx ~) 
                        
                          &
                        
                        
                          &
                        
                         (ls *.deb 
                        
                          >
                        
                         deb-packages.list 
                        
                          &
                        
                        
                          &
                        
                         cp *.deb ~) || echo 
                        
                          "
                        
                        Precedence Test!
                        
                          "
                        
                      
                    

在此示例語法中,兩組命令都必須返回退出代碼 0,以確保成功執行最後一條命令。 此示例要求第一個 set() 中的兩個命令都以 0 退出,以便第二個 set() 執行。

8.組合運算符({..})

顧名思義,組合運算符用於對命令進行分組。 無論您想將什麼命令組合在一起,都可以將它們放在方括號中,它們將根據第一個命令的退出代碼執行。

                      
                        test -f /etc/passwd 
                        
                          &
                        
                        
                          &
                        
                         {pwd ; date} 
                        
                          &
                        
                        
                          &
                        
                         echo $0 ; echo 
                        
                          "
                        
                        Hello
                        
                          "
                        
                      
                    

示例語法將測試 /etc/passwd 文件是否存在,打印當前工作目錄、日期、shell 名稱,並重複“Hello”。

9. 串聯或轉義運算符 ()

串聯或轉義運算符有兩個功能。 在 shell 中處理字符串時,您可以使用它來連接兩個命令或作為轉義字符。

                      
                        mkdir test0 test1  test2
                        
echo "Hello! from the
other side "

第一個命令將創建四個名為 test0 到 test2 的目錄,第二個命令將打印由新行分隔的字符串。

10. 重定向運算符(>、>>、<)

重定向運算符通過重寫文件或附加文件將輸出或輸入重定向到文件。 如果要重寫文件,則必須使用單尖括號 (>) 語法。 如果要附加到文件,則需要使用雙尖括號 (>>) 語法。

                      
                        echo 
                        
                          "
                        
                        dsd
                        
                          "
                        
                        
                          >
                        
                         test ; echo 
                        
                          "
                        
                        bssss
                        
                          "
                        
                        
                          >
                        
                        
                          >
                        
                         test
                      
                    

在示例語法中,第一個命令將使用提供的字符串覆蓋“test”文件,但在第二個命令中,提供的字符串將被添加到測試文件中。

加速您的 Linux 終端工作流程

雖然使用特殊操作符會顯著加快您的任務執行速度,但還有許多其他方法可以加快您的工作流程。

在更短的時間內完成更多工作的一種簡單而有價值的方法是熟悉一些有用的 shell 快捷方式。 習慣這些快捷方式會有很長的路要走,只要您使用 Linux,您就會發現自己依賴它們。

相關文章