1.什麼是管道命令?
管道命令能夠將一個命令的執行結果經過篩選,只保留我們需要的信息。
如,/etc目錄下會有大量的文件,如果使用ls很難找到需要的文件,因此可以使用管道命令將ls的結果進行一次篩選,只保留需要的信息。
2 管道 和 數據流重定向 的區別?
● 管道一詞非常生動形象,原始數據經過管道後,管道會將一部分不需要的信息過濾掉,只保留用戶所關注的信息。
● 數據流重定向是指定數據在哪裏顯示,默認情況下會在屏幕顯示,我們可以指定它輸出到文件。
3 管道命令有哪些
3.1 選取指定列:cut
cut爲剪切的意思,它能將一行行的數據按照指定的分隔符切成一列列,然後只顯示特定列的數據。
cut有兩種使用方式:
● 按照指定字符分隔
這個命令會按照特定的分隔符將數據切分,並只顯示第n列的數據。
cut -d ‘分隔符’ -f n
例子:顯示環境變量PATH第1和6列的數據
echo $PATH | cut -d ‘:’ -f 1,6
● 選擇特定範圍內的數據
cut -c 起始字符的下標-結束字符的下標
注意:cut中涉及的下標均從1開始。
3.2 關鍵詞搜索指定行:grep
3.2.1 grep命令介紹
grep用於進行關鍵詞查找,它會將文件中含有關鍵詞的那一整行輸出來。
grep [-cinv] [--color=auto] '關鍵詞' 待查找的文件名
-c:統計關鍵詞出現的次數
-i:關鍵詞忽略大小寫
-n:輸出行號
-v:反向選擇,即查找不包含該關鍵詞的行
3.2.2 grep的兩種使用方式
3.2.2.1 方式1:grep [-參數] ‘關鍵詞’ 文件
這種方式並沒有用到管道,只是從指定文件中將符合關鍵詞的行搜索出來。
3.2.2.2方式2:命令 | grep [-參數] ‘關鍵詞’
這種方式採用管道,將前一個命令的執行結果輸出給grep,並通過grep的關鍵詞搜索將符合條件的行搜索出來。
3.3 排序:sort
3.3.1 sort命令介紹
sort命令能夠將指定文件 或 前一個命令的結果數據 按照指定字段進行排序。
sort [-參數] 文件
-t:指定分隔符
-k:選取分隔後的第幾個字段進行排序
-f:排序時忽略選取字段的大小寫
-b:去除選取字段前的空格
-M:將選取的字段按照月份來排序(前提是選取字段就是月份)
-n:將選取字段按照數據來排序(前提是選取字段就是數字)
-r:反向排序
-u:去重。若選取字段有重複,則去掉重複。
3.3.2 sort兩種使用方式
和grep一樣,sort也有兩種使用方式。
3.3.2.1 方式1:sort [-參數] 文件
將文件中的數據按照指定字段排序。
3.3.2.2 方式2:命令 | sort [-參數]
使用管道,將前一個命令執行的結果按照指定字段進行排序。
3.4 去除重複行:uniq
3.4.1 uniq命令介紹
uniq命令只能用於管道,它能夠去除前一個命令執行的結果中完全一樣的行。
uniq [-參數]
-i:忽略大小寫
-c:進行重複行的統計
3.4.2 uniq使用方式
該命令只能用於管道,如統計當前系統所有用戶的登錄次數:
last | cut -d ’ ’ -f 1 | uniq -c
3.5 統計字數、行數、字符數:wc
3.5.1 wc命令介紹
wc [-參數]
-l:列出行數
-w:列出字數
-m:列出字符數
3.5.2 wc使用方法
wc只能通過管道使用:命令 | wc [-參數]
3.6 雙向重定向:tee
3.6.1 tee命令介紹
tee能夠同時將命令執行的結果輸出到指定的文件和屏幕。
tee [-a] 文件
-a:以追加的形式寫入文件
。
3.6.2 tee使用方式
tee只能和管道結合使用,如將last中的信息輸出指文件並顯示在屏幕上:
last | tee -a lastfile | cut -d ’ ’ f 1
last的所有信息將會被寫入文件lastfile中,然後數據流將會輸出到屏幕上,我們可以在輸出前再添加一條管道,只輸出數據的第一個字段。
3.7 連接兩個文件:join
3.7.1 join命令介紹
這個命令與管道無關。
它相當於數據庫中的join連接,將兩張表中指定字段,且字段相同的行連接起來。在這裏,它能夠將兩個文件中指定字段的相同字段連接起來,併成一行。
3.7.2 join命令的用法
join [-參數] 文件1 文件2
-t:兩個文件的字段分隔符
-1:第一個文件的字段
-2:第二個文件的字段
-i:忽略選取字段的大小寫
3.8 切割文件:split
3.8.1 命令介紹
該命令能將一個大文件切分成若干個小文件。
3.8.2 命令用法
split [-參數] 大文件 小文件名字前綴
-b:指定小文件的大小,需要加上單位:b、k、m
-l:指定每個小文件中的行數。
大文件會被切分成若干個小文件,且小文件的名字爲:小文件名字前綴+aa、小文件名字前綴+ab、小文件名字前綴+ac