Linux中的重定向 標準輸入、標準輸出、標準錯誤
類型 | 數字 | 英文 | 縮寫 |
---|---|---|---|
標準輸入 | 0 | standard input | stdin |
標準輸出 | 1 | standard output | stdout |
標準錯誤 | 2 | standard error | stderr |
標準輸出 重定向
>
把標準輸出重定向到新文件
等於1>
,1
可省略
標準錯誤不適應,要用&>
或者2>
會覆蓋已有文件,追加用>>
systemctl status httpd > httpd # 命令能執行成功,無屏顯,內容都存到httpd
systemctl status dfasdfdsfas > httpd # 命令能執行失敗,屏顯錯誤,httpd文件顯示空白
>>
追加符,不覆蓋原有文件
等於1>>
,1
可省略
標準錯誤不適應,要用&>>
或者2>>
把標準輸出、標準錯誤重定向到文件
[命令] > /dev/null 2>&1
[命令] >& /dev/null
[命令] &> /dev/null
tee
命令類似>
,但只從管道接收數據
tee -a(append)
類似>>
tee
& tee -a
都會屏顯,>
& >>
不屏顯
tee
可以同時重定向到多個文件
~/Desktop via 🅒 base
➜ echo 456 > 456.txt 4567.txt
(base)
~/Desktop via 🅒 base
➜ more 456.txt
456 4567.txt
(base)
~/Desktop via 🅒 base took 2s
➜ cat 4567.txt
cat: 4567.txt: No such file or directory
(base)
將命令1的結果既保存到file.txt中,也傳遞給命令2,並屏顯命令2的結果,tee只管前後兩個命令
[命令1] | tee file.txt | [命令2]
~/Desktop via 🅒 base
➜ echo 123.txt | tee 123.txt | tr a-z A-Z
123.TXT
(base)
標準輸入 重定向
<
指定輸入文件
<<
等待用戶輸入,需要一個結束符,常設定爲EOF
或END
結合cat
命令使用:
cat > file << END
tr
命令
translate or delete characters
只處理字符,而非單行單列
只顯示處理結果,不修改原文件
從管道接收數據(同tee
),或從輸入接收數據
替換字符並顯示:
~/Desktop via 🅒 base
➜ echo 1234567 | tr 123 asd
asd4567
(base)
壓縮(把多個重複的壓縮到一個)
~/Desktop via 🅒 base
➜ echo 1:2::::3::::::::::4 | tr -s :
1:2:3:4
(base)
刪除內容中的空格並打印在屏幕上
tr -d " " < file