操作日志
cat
直接顯示文本內(nèi)容
more 參數(shù) file
+n 從笫n行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
交互命令
Enter 向下n行,需要定義。默認(rèn)為1行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當(dāng)前行的行號
:f 輸出文件名和當(dāng)前行的行號
V 調(diào)用vi編輯器
!命令 調(diào)用Shell,并執(zhí)行命令
q 退出more
less file
交互命令
-g 只標(biāo)志最后搜索的關(guān)鍵詞
-i 忽略搜索時(shí)的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號Q 退出less 命令
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
sort 參數(shù)
-u 去除重復(fù)行
-r 倒序
-o 排序結(jié)果輸出到文件
-n 按數(shù)字排序
-t 指定間隔符 -k 指定排序的行
wc 選項(xiàng) 文件
-c 統(tǒng)計(jì)字節(jié)數(shù)。
-l 統(tǒng)計(jì)行數(shù)。
-m 統(tǒng)計(jì)字符數(shù)。這個標(biāo)志不能與 -c 標(biāo)志一起使用。
-w 統(tǒng)計(jì)字?jǐn)?shù)。一個字被定義為由空白、跳格或換行字符分隔的字符串。
-L 打印最長行的長度
uniq -c 文件
顯示重復(fù)出現(xiàn)的行數(shù)的次數(shù)
grep 參數(shù) 搜索的模式 文件
-n或--line-number 在顯示符合范本樣式的那一列之前,標(biāo)示出該列的列數(shù)編號。
-c或--count 計(jì)算符合范本樣式的列數(shù)。
-數(shù)字 顯示查找到的列的前后n行
expr 10 \ * 3
表達(dá)式求值
常用命令
#訪問量前十名的IP
cat access.log|cut -f 1 -d " "|sort|uniq -c|sort -k 1 -n -r|head -10
#全文顯示 |空格分隔提取ip一行|排序重復(fù)行 |對行數(shù)倒排 |前十
#訪問量前十名的URL
cat access.log|cut -f 4 -d " "|sort|uniq -c|sort -k 1 -n -r|head -10
#全文顯示 |空格分隔提取url一行|排序重復(fù)行 |對行數(shù)倒排 |前十
日志分析腳本
sed 選項(xiàng) 文件編輯命令 文件
-n或--quiet或--silent 僅顯示script處理后的結(jié)果。
文件編輯命令
a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的下一行)~
c :取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!
d :刪除,因?yàn)槭莿h除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的上一行);
p :列印,亦即將某個選擇的數(shù)據(jù)印出。通常 p 會與參數(shù) sed -n 一起運(yùn)行~
s :取代,可以直接進(jìn)行取代的工作哩!通常這個 s 的動作可以搭配正規(guī)表示法!例如 1,20s/old/new/g 就是啦!
#指定行輸出
sed -n '2,6p' access.log
#替換文本
sed 's/oldStr/newStr/' access.log
#文本刪除
sed '/str/d' access.log
#顯示文件行號
sed '=' access.log
#行首插入
sed 'i/head' access.log
#行末插入
sed 'a/end' access.log
awk [option] 'pattern{action}' file
對pattern匹配的行執(zhí)行動作action