linux图形图像三剑客,就linux三剑客简单归纳
就linux三劍客簡單歸納:1:awk
習(xí)題1:用 awk 中查看服務(wù)器連接狀態(tài)并匯總
netstat-an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}'ESTABLISHED1LISTEN20習(xí)題2:統(tǒng)計(jì) web 日志訪問流量,要求輸出訪問次數(shù),請求頁面或圖片,每個請求的總大小, 總訪問流量的大小匯總
awk'{a[$7]+=$10;++b[$7];total+=$10}END{for(x in a)print b[x],x,a[x]|"sort -rn";print "total size is :"total}' /app/log/access_log
total sizeis :172230
21 /icons/poweredby.png 83076
14 / 70546
8 /icons/apache_pb.gif 18608awk基本用法:awk –F [:” ”] ‘BEGIN{事件}{事件}END{事件}’
它里面可以用到if,for,數(shù)組等類c的語法,其中數(shù)組下標(biāo)除了可以是數(shù)字外還可以是字符串,這就大大增強(qiáng)了它的文本統(tǒng)計(jì)能力。在awk里變量可以不用先定義,可以直接用,初始值為0。
關(guān)于逗號的用法:
Awk和sed里都可以用,用法為awk ‘/A/,/B/{事件}END{事件}’ filename 匹配所有符合從字符A到第一個字符B的內(nèi)容并后面事件處理
Sed –n ‘/A/,/B/p’ filename 匹配所有符合從字符A到第一個字符B的內(nèi)容并輸出到屏幕2:sed
常用參數(shù):-I 直接修改文檔讀取的內(nèi)容,不在屏幕上輸出-n 當(dāng)選項(xiàng)-n和命令p同時出現(xiàn)時,sed 可打印選定的內(nèi)容-r Sed 使用擴(kuò)展正則3:grep
常用參數(shù):-I 忽略字符大小寫的差別-w 精確查找指定字符串,找到了就返回字符所在的那一行-o 查找指定字符,僅返回查找的內(nèi)容,一般加E配合,查找正則表達(dá)式-E 選項(xiàng)使用擴(kuò)展正則表達(dá)式
練習(xí):
在下面文本內(nèi)容里統(tǒng)計(jì)device{}里的key的數(shù)量,其他地方的key不算。假如filename為case.log:
keyisa linuxer.
device: {
oo
key key key
no sqlthis islog
niu niu
}
key
device: {
key key
no sqlthis islog
niu niu
}
key key
device: {
key key
no sqlthis islog
niu niu
}
device: {
key key
no sqlthis islog
niu niu
}
Key
個人解答方法:1:
awk'/^device :{/,/}/ {for(i=1;i<=NF;i++) if($i~/oldboy/) ++count;} END{print count}' case.log
解釋:先匹配所有符合device開頭且每次匹配到第一個}的內(nèi)容,再在每行的每個字段進(jìn)行匹配key,最后輸出key的num值。2:
Sed –n ‘/device :{/,/}/p’ case.log | tr “ ” “
”| grep –w “key”| wc -l
解釋:先用sed進(jìn)行匹配device里的所有含key的行,在用tr把空格換成換行,再用grep去匹配key的行(每行一個字符段),最后用wc –l統(tǒng)計(jì)行的數(shù)量及為key的num值。3:
Sed –n ‘/device :{/,/}/p’ case.log | awk –F “ ” ‘{for(i=0;i<=NF;i++) if($i~/key/) ++count} END{print count}’
sort 命令對 File 參數(shù)指定的文件中的行排序,并將結(jié)果寫到標(biāo)準(zhǔn)輸出。如果 File 參數(shù)指定多個文件,那么 sort 命令將這些文件連接起來,并當(dāng)作一個文件進(jìn)行排序。
常用參數(shù):-n :使用『純數(shù)字』進(jìn)行排序(默認(rèn)是以文字型態(tài)來排序的);-r :反向排序;-t :分隔符,默認(rèn)是用 [tab] 鍵來分隔;-k :以那個區(qū)間 (field) 來進(jìn)行排序的意思
sort 是默認(rèn)以第一個數(shù)據(jù)來排序,而且默認(rèn)是以字符串形式來排序,默認(rèn)從小到大順序。
cat/etc/passwd | sort -t ':' -k 3第三欄來排序,小到大
uniq命令可以去除排序過的文件中的重復(fù)行,因此uniq經(jīng)常和sort合用。也就是說,為了使uniq起作用,所有的重復(fù)行必須是相鄰的。
常用參數(shù):-i :忽略大小寫字符的不同-c :進(jìn)行計(jì)數(shù)-u :只顯示唯一的行-d :僅顯示存在重復(fù)的行
cut命令可以從一個文本文件或者文本流中提取文本列。
常用參數(shù):
-c :以字符為單位進(jìn)行分割-d :后面接分隔字符。與 -f 一起使用;-f :依據(jù) -d 的分隔字符將一段信息分割成為數(shù)段,用 -f 取出第幾段的意思;
echo $PATH| cut -d ':' -f 5找出第五個路徑
echo $PATH| cut -d ':' -f 1-3,5找出第一到第三個路徑
echo $PATH| cut -d ':' -f 3-找出第三到最后一個路徑
wc命令統(tǒng)計(jì)文件里面有多少行,多少單詞,多少字符。
常用參數(shù):-l :僅列出行;-w :僅列出多少字(英文單字);-m :多少字符;
tee命令讀取標(biāo)準(zhǔn)輸入的數(shù)據(jù),并將其內(nèi)容輸出成文件。
參 數(shù):
-a或 附加到既有文件的后面,而非覆蓋它;
[root@localhost ~]# who | tee who.out
root???? pts/0??????? 2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# cat who.out
root???? pts/0??????? 2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# pwd | tee -a who.out
/root
[root@localhost ~]# cat who.out
root???? pts/0??????? 2009-02-17 07:47 (123.123.123.123)
/root
paste命令用于合并文件的列,paste指令會把每個文件以列對列的方式,一列列地加以合并。
參數(shù):
總結(jié)
以上是生活随笔為你收集整理的linux图形图像三剑客,就linux三剑客简单归纳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 文件类型 管理,Linux的
- 下一篇: linux bin模式,binlog有哪