linux常用命令--管道命令
管道命令
“|”僅能處理由前面一個命令傳來的正確資訊,管理後面接的命令必須能夠接收standard input的資料,如less、more、cut、grep、sort、wc、tee
cut和grep為選取命令,針對“行”來分析,並不是整篇資訊。cut是在一行資訊中取出某部分想要的,grep則是分析一行資訊,若當中有所需要的資訊則將該行拿出來。
cut命令
echo $PATH | cut -d ‘:’ -f 3,5 #取得分隔字元為:的和第三段和第五段的內容
export | cut -c 12- #取得第12字元以後的所有字串
-d:後接分隔符,與-f一起使用
-f:取出第幾段的意思
-c:取出固定字元區間
grep命令
grep -n ‘^[^a-zA-Z]’ regular_express.txt #開頭不是英文字母
grep -n ‘^[[:lower:]]’ regular_express.txt #開頭是小寫字母
last | grep -v ’root’ #只要沒有root的就取出
-n:順便輸出行號
-i:忽略大小寫的不同
-v:顯示沒有這個字串的那一行
sort 排序
cat /etc/passwd |sort -t ‘:’ -k 3 -n #/etc/passwd內容是以:分隔的,以第三列按照文字型別排列
wc 輸出檔案裡的字數、字元數、行數
last | grep [a-zA-Z] | grep -v ‘wtmp’ | wc -l #用grep取出非空白行,以及去除有wtmp字串的行,再計算行數
-l:列出行
-w:列出多少字
-m:多少字元
tee 雙向重定向,會同時將資料流送與檔案與螢幕
last | tee -a last.list | cut -d “ “ -f1 #將last的輸出以累加的方式儲存到last.list檔案中,同時螢幕輸出以空格符分隔的第一列的資訊
-a:以append的方式將資料加入檔案中,否則檔案會被覆蓋
資料重定向 可以將標準輸出和標準錯誤輸出分別傳送到其他檔案或裝置中去
find /home -name .bashrc > list_right 2> list_error
1>或>:以覆蓋的方式將正確的資料輸出到指定的檔案或裝置
1>>或>>:以累加的方式
2>:以覆蓋的方式將錯誤的資料輸出到指定的檔案或裝置
2>>:以累加的方式
xargs 引數代換
很多命令並不支援管道命令,因此我們可以通過xargs來提供該命令引用standard input之用
find /sbin -perm +7000 | xargs ls -l #找出/sbin下面具有各執一份許可權的檔名,並使用ls列出屬性