開源文化的核心理念之一就是不要重複發明輪子,不少開源軟件都大量使用了其餘開源軟件或功能組建,一樣,Linux中的命令也每每只實現某個特定的、單一的功能,複雜功能每每都是經過多命令協做完成的linux
管道及重定向就是Linux多命令協做的基礎機制工具
Linux的Shell對數據流進行如下分類定義: .net
stdin 標準輸入 編號爲:0 默認:鍵盤命令行
stdout 標準輸出 編號爲:1 默認:終端unix
stderr 標準錯誤 編號爲:2 默認:終端排序
重定向用來控制終端數據流:get
> 將標準輸入以覆蓋形式重定向到指定文件,如:ls > outfile開源軟件
>> 將標準輸入以追加形式重定向到指定文件,如:ls >> outfileast
< 重定向標準輸入 如:grep linuxcast < /etc/passwdclass
2> 重定向標準錯誤
2>&1 將標準錯誤合併到標準輸出中
管道「|」用以將一個命令的標準輸出做爲另外一個命令的標準輸入:
命令1 | 命令2
管道一般用來組合不一樣命令
重定向一般用來保存輸出信息
關鍵字搜索:
grep 關鍵字 指定文件
-i 搜索時忽略大小寫
-n 顯示結果所在行
-v 顯示不包含關鍵字的行
基於列的文本處理:
cut -d: -f1 /etc/passwd
-d 指定分割字符
-f 指定顯示列
-c 基於字符順序進行列分割
文本統計:
wc linuxcast
-l 只統計行數
-w 只統計單詞書
-c 只統計字節數
-m 只統計字符數
文本排序:
sort linuxcast
-r 倒序排序
-n 基於數字進行排序
-f 忽略大小寫
-u 刪除重複行
文本比較:
diff linuxcast-1 linuxcast-2
-i 忽略大小寫
-b 忽略空格數變化
-u 統一顯示信息(通常用於生成patch文件)
文本轉換:
tr -d "TMD" < linuxcast 刪除指定關鍵字
tr 'a-z' 'A-Z' < linuxcast 轉換大小寫
搜索替換:
sed 's/linux/unix/g' linuxcast 將全部linux關鍵字替換爲unix