1 管道符|
- 管道符號 | 用于將一個命令的輸出作為另一個命令的輸入。
- 這種機制允許將多個命令組合在一起,形成一個數據處理鏈,每個命令處理前一個命令的輸出,從而實現復雜的數據處理任務。
- 示例
# 查詢/var/log目錄下所有的log文件,并進行分頁顯示,每頁5條
find /var/log -name "*.log" | more -5
# 查找并統計文件中的關鍵詞
grep "error" /var/log/auth.log | wc -l
grep -c "error" /var/log/auth.log
2 重定向符號>和追加重定向符號>>
2.1 重定向符號>
- 重定向符號 > 用于將命令的輸出重定向到一個文件中。
- 如果文件不存在,它將創建該文件
- 如果文件已存在,它將覆蓋文件中的原有內容
- 示例
# 搜索auth文件中含有error的行,寫入到error.txt中
grep "error" /var/log/auth.log > error.txt
# 查詢當前文件夾下所有txt文件的詳細信息,入wb文件中
ll *.txt > wb
# 查詢lshelp.txt文件的7-10行內容,并覆蓋寫入wb文件
head -10 lshelp.txt | tail -4 > wb
2.2 追加重定向符號>>
追加重定向符號 >> 用于將命令的輸出追加到文件末尾,而不是覆蓋原有內容
- 示例
# 將一條文本追加到文件末尾
echo "這是一條新的日志信息" >> logfile.txt
# 將date命令的輸出追加到文件中
date >> logfile.txt
2.3 標準輸入
- 標準輸入在Linux系統中通常用stdin來表示。它指的是程序從用戶或其他來源獲取數據的通道。
- 通過標準輸入,用戶可以與程序進行交互,輸入數據以驅動程序的運行。
2.4 標準輸出與標準錯誤輸出
- stdout代表標準輸出,即程序正常輸出數據的通道
- stderr則表示標準錯誤輸出,用于傳遞程序在執行過程中產生的錯誤信息
- 通過這兩種數據流,程序能夠清晰地與用戶溝通其運行狀態和結果
- 將正確的輸出重定向到文件,使用1>符號,其中1代表標準輸出,可以省略
- 將錯誤輸出重定向到文件,使用2>符號。
- 示例
# 標準輸出
ls 1> true.txt
ls > true.txt
# 錯誤輸出
lk 2> error.txt
- 將這兩種輸出合并到同一個文件中,可以使用2>&1
- 2>&1的含義:將標準錯誤輸出重定向到標準輸出
- 符號>&是一個整體,不可分開
- 示例
# 1.txt 2.txt 兩個文件一個存在一個不存在# 標準輸出與錯誤輸出,合并輸出到終端
cat 1.txt 2.txt 2&>1
# 錯誤輸出到終端,標準輸出重定向到文件中
cat 1.txt 2.txt 2&>1 >1.txt
# 標準輸出到終端,錯誤輸出重定向到文件中
cat 1.txt 2.txt 2&>1 >1.txt
# 標準輸出和錯誤輸出,全部重定向到文件中
cat 1.txt 2.txt >1.txt 2&>1
3 后臺執行符&
“&”符號用于將任務放到后臺運行。
通過使用“&”符號,用戶可以在執行命令時不阻塞終端,繼續進行其他操作。
對于需要長時間運行的任務特別有用,因為它允許用戶在等待任務完成的同時,繼續使用終端執行其他命令。
- 示例
# 在后臺運行一個長時間運行的命令,如文件壓縮
tar -czf archive.tar.gz large_directory &
# 同時啟動多個命令,所有命令都會并行在后臺執行
command1 & command2 &command3
- 查看后臺任務
- 使用jobs命令查看當前在后臺運行的任務
- 格式:jobs
- jobs命令會列出后臺任務及其對應的作業號
- 將后臺任務帶到前臺
- 使用fg命令將后臺任務帶到前臺
- 格式:fg %1
- 將作業號為1的后臺任務帶到前臺執行
- 終止后臺任務
- 使用kill命令終止后臺任務
- 格式:kill %1
- 終止作業號為1的后臺任務
4 邏輯或符號|| 和邏輯與符號&&
4.1 邏輯或符號||
在Linux命令中,“||”表示邏輯“或”關系。
用于指定在前一個命令執行失敗時,才執行其后跟隨的命令。
這種用法類似于一種條件判斷,根據前一個命令的執行結果來決定是否執行后續命令。
- 示例
# 嘗試創建一個目錄,如果目錄已存在,則顯示一條消息
mkdir aa || echo "目錄已存在"
# 運行一個命令,如果命令不存在或失敗,則提示用戶
mycommand || echo "命令未找到"
# 檢查某個程序是否安裝,如果未安裝,則嘗試安裝它
command -v ifconfig || apt install net-tools
4.2 邏輯與符號&&
在Linux中,&&符號用于實現邏輯與操作。它的作用是,如果前面的命令執行成功(返回零退出狀態),則執行后面的命令。
- 示例
# 創建一個新目錄,如果創建成功,則進入該目錄
mkdir test && cd test
# 在刪除文件之前,先備份文件,只有備份成功后才刪除原文件
cp lshelp.txt shelp.txt.bak && rm lshelp.txt