作者介紹:我是一位在簡歷上沒有標注精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面展示的思維導圖展示了預計更新的內容和當前進度(不定時更新)。
在上一章節中,我們詳細探討了linux系統自帶的日志服務。接下來,我們將深入講解一些進階命令,這些命令將從以下幾個方面展開:系統操作、系統查看處理、文本處理、邏輯判斷、重定向、網絡傳輸、服務啟動和文件句柄等。通過學習這些操作,您將更加熟練地操作Linux系統。以下是具體的章節劃分:
Linux進階命令-top
Linux進階命令-ps&kill
Linux進階命令-sort&wc
Linux進階命令-sed&split
Linux進階命令-awk&uniq
Linux進階命令-邏輯或&邏輯與(本章節)
Linux進階命令-重定向
Linux進階命令-scp
Linux進階命令-rsync
Linux進階命令-rsync-daemon
Linux進階命令-nohup&screen
Linux進階命令-lsof
Linux進階命令-小結
在前面的章節中,我們提到過使用echo $?命令可以判斷上一個命令是否執行成功,但這需要手動執行。那么,有沒有一種自動判斷的方式,并根據前一個命令的結果來決定是否執行后面的命令呢?這就是今天要講解的內容。
邏輯或操作符 ||
在Linux命令行中,邏輯“或”用于控制命令的執行流程。它特別適用于在命令鏈中執行多個命令,其中只有在前一個命令失敗時才會執行后一個命令。邏輯“或”運算符在Linux中的具體表現如下:
||操作符語法:
command1 || command2
功能:如果command1執行失敗(返回非零狀態碼),則command2會被執行。如果command1執行成功(返回零狀態碼),則command2不會被執行。
示例:
mkdir /some/Directory || echo "目錄創建失敗"
在這個例子中,如果mkdir /some/directory命令失敗,echo “目錄創建失敗”將會被執行,輸出一條錯誤信息。
實際應用:
- 條件執行:邏輯“或”可以用于在某些操作失敗時執行備選命令。例如:
cp file1.txt /some/directory || echo "文件復制失敗"
如果cp命令因某種原因失?。ㄈ缒繕四夸洸淮嬖冢?,則會輸出錯誤信息。
- 默認值:可以用于設置默認值。例如:
myvar=$(cat myfile.txt || echo "默認值")
如果cat myfile.txt失?。ɡ缥募淮嬖冢?,則myvar將被賦值為”默認值”。
邏輯與操作符 &&
&&操作符語法:
command1 && command2
功能:只有在command1執行成功(返回狀態碼為零)時,command2才會被執行。如果command1執行失?。ǚ祷胤橇銧顟B碼),command2將不會被執行。
示例:
mkdir /some/directory && cd /some/directory
在這個例子中,只有在mkdir /some/directory成功創建目錄后,cd /some/directory命令才會被執行。
實際應用:
- 順序執行:邏輯“與”用于確保前一個命令成功后才執行后一個命令。例如:
make && make install
如果make編譯成功,則會繼續執行make install安裝程序。
- 條件操作:可以用于執行依賴于前一個命令結果的操作。例如:
test -f file.txt && echo "文件存在"
如果file.txt文件存在(test -f成功),則輸出”文件存在”。
總結: 邏輯或和邏輯與是兩個功能相反的命令,一個是前一個命令執行成功,則執行后面的命令;另一個是前一個命令執行失敗則執行后面的命令。它們的符號分別是||和&&。主要用途是在一些需要根據上一個命令執行結果來決定是否執行下一步命令的場景中。比如我們前面學過的Linux基礎軟件-軟件安裝的nginx編譯安裝就可以組合一個命令:
./configure --prefix=/usr/local/nginx && make && make install