重定向
0 標準輸入 stdin /dev/stdin
1 標準輸出 stdout /dev/stdout
2 標準錯誤 stderr /dev/stderr
>覆蓋文件
- 如果log.txt不存在,則會創建
- 如果存在,則會覆蓋之前的內容
ls -l / 1>./log.txt
>>追加文件
- 會把重定向的內容追加到log.txt
ls -l / 1>>./log.txt
區別輸出類型
# 1 代表標準輸出 stdout
ls -l / 1>>./stdout.txt
# 2 代表標準錯誤 stderr
ls -l / 2>>./stderr.txt
# 也可以區別開
ls -l /bin /etc 1>stdout.txt 2>stderr.txt
# 將標準輸出和錯誤輸出合併到一個文件
ls -l / &>log.txt
echo
- -e 表示輸出轉義符
echo -e "1 \n 2 \n 3"
/dev/null
-
/dev/null : 在類Unix系統中,/dev/null,或稱空設備,是一個特殊的設備文件,它丟棄一切寫入其中的數據(但報告寫入操作成功),讀取它會立即得到一個EOF。
-
/dev/null 被稱爲位桶(bit bucket)或者黑洞(black hole)。空設備通常被用於丟棄不需要的輸出流,或作爲用於輸入流的空文件。這些操作通常由重定向完成。
/dev/zero
- /dev/zero:在類UNIX操作系統中,/dev/zero是一個特殊的文件,當你讀它時,它會提供無限的空字符(NULL , ASCALL NUL, 0x00)。
tr 輸入重定向
tr 準備要替換的字符 要替換成的字符
# 把空格替換爲製表符 並輸出到test.txt
tr ' ' '\t' <./test.txt
sort 命令
- 對文件內容進行按行的排序
管道
- 支持管道輸入的命令
和less結合查看文本
# 把ls的輸出作爲less的輸入
ls -al /etc | less
和grep結合過濾文本
# 把ls的輸出作爲grep的輸入
ls -al /etc | grep 'ssh'
和cut結合切割文本
# 切割log文件的前兩列字符
cat ./log.txt | cut -c1,2
# 切割第一個字符串以:爲分隔符
cat /etc/passwd | cut -f1 -d*:
和wc結合統計文本
wc 文件名
行數 單詞數 字節數
# 僅僅統計文本行數
wc -l 文件名
- 統計當前用戶家目錄下所有目錄的總數
ls -al ~ | cut -c1 | grep 'd' | wc -l
# ls -al ~ 列出家目錄中所有文件
# cut -c1 切割每一行中第一字符列,切割出來的爲文件類型符號
# grep 'd' 查找文件類型爲目錄的行
# wc -l 統計目錄行數