一、watch命令 :週期性的執行下個程序,並全屏顯示執行的結果html
-n:指定週期秒數 -d:高亮顯示變更過的地方 -t:關閉watch 命令在頂部的時間間隔命令顯示
示例:mysql
watch -n 1 -d netstat -ant watch -n 1 -d 'pstree | grep http'
二、tcpdump命令:linux網絡抓包工具linux
三、top命令:顯示系統中各個進程的資源佔用情況,相似於Windows的任務管理器正則表達式
-b 批處理 -c 顯示整個命令行而不僅是顯示命令名 -I 忽略失效過程 -s 保密模式 -S 累積模式 -i<時間> 設置間隔時間 -u<用戶名> 指定用戶名 -p<進程號> 指定進程 -n<次數> 循環顯示的次數
信息:sql
PID 進程id PPID 父進程id RUSER Real user name UID 進程全部者的用戶id USER 進程全部者的用戶名 GROUP 進程全部者的組名 TTY 啓動進程的終端名。不是從終端啓動的進程則顯示爲 ? PR 優先級 NI nice值。負值表示高優先級,正值表示低優先級 P 最後使用的CPU,僅在多CPU環境下有意義 %CPU 上次更新到如今的CPU時間佔用百分比 TIME 進程使用的CPU時間總計,單位秒 TIME+ 進程使用的CPU時間總計,單位1/100秒 %MEM 進程使用的物理內存百分比 VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。 RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA CODE 可執行代碼佔用的物理內存大小,單位kb DATA 可執行代碼之外的部分(數據段+棧)佔用的物理內存大小,單位kb SHR 共享內存大小,單位kb nFLT 頁面錯誤次數 nDRT 最後一次寫入到如今,被修改過的頁面數。 S 進程狀態。(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/中止,Z=殭屍進程) COMMAND 命令名/命令行 WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名
示例:編程
top -d 1 #設置top的顯示間隔(以秒計) top -n 3 #設置top退出前迭代的次數 top -p 12345 -p 6789//每隔5秒顯示pid是12345和pid是6789的兩個進程的資源佔用狀況 top -d 2 -c -p 123456 //每隔2秒顯示pid是12345的進程的資源使用狀況,並顯式該進程啓動的命令行參數
四、awk:一個強大的文本分析工具,用於在linux/unix下對文本和數據進行處理。數據能夠來自標準輸入、一個或多個文件,或其它命令的輸出。支持用戶自定義函數和動態正則表達式等先進功能,是linux/unix下的一個強大編程工具。在命令行中使用,但更可能是做爲腳原本使用。
參考:https://www.cnblogs.com/xudon...
使用方法:網絡
awk '{pattern + action}' {filenames} awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
參數:tcp
-F fs or --field-separator fs #指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。 -v var=value or --asign var=value #賦值一個用戶定義變量。 -f scripfile or --file scriptfile #從腳本文件中讀取awk命令。 特殊: $0 表示整個當前行 $1 每行第一個字段 NF 字段數量變量 NR 每行的記錄號,多文件記錄遞增 FNR 與NR相似,不過多文件記錄不遞增,每一個文件都從1開始 \t 製表符 \n 換行符 FS BEGIN時定義分隔符 RS 輸入的記錄分隔符, 默認爲換行符(即文本是按一行一行輸入) ~ 匹配,與==相比不是精確比較 !~ 不匹配,不精確比較 == 等於,必須所有相等,精確比較 != 不等於,精確比較 && 邏輯與 || 邏輯或 + 匹配時表示1個或1個以上 /[0-9][0-9]+/ 兩個或兩個以上數字 /[0-9][0-9]*/ 一個或一個以上數字 FILENAME 文件名 OFS 輸出字段分隔符, 默認也是空格,能夠改成製表符等 ORS 輸出的記錄分隔符,默認爲換行符,即處理結果也是一行一行輸出到屏幕 -F'[:#/]' 定義三個分隔符
使用示例:編輯器
awk -F":" '{print $1}' /etc/passwd awk -F":" '{print $1,$3}' /etc/passwd #多了一個逗號,$1與$3使用空格分隔 awk -F":" '{print "Username:" $1 "\t\t Uid:" $3 }' /etc/passwd #自定義輸出 awk -F: '{print NF}' /etc/passwd #顯示每行有多少字段 awk -F: '{print $NF}' /etc/passwd #將每行第NF個字段的值打印出來 awk -F: 'NF==4 {print}' /etc/passwd #顯示只有4個字段的行 awk -F: 'NF>2{print $0}' /etc/passwd #顯示每行字段數量大於2的行 awk -F: '{print NR,NF,$NF,"\t",$0}' /etc/passwd #依次打印行號,字段數,最後字段值,製表符,每行內容 awk -F: 'NR==5 || NR==6{print}' /etc/passwd #顯示第5行和第6行 //匹配代碼塊 //純字符匹配 !//純字符不匹配 ~//字段值匹配 !~//字段值不匹配 ~/a1|a2/字段值匹配a1或a2 awk '/mysql/{print $0}' /etc/passwd #三條指令結果同樣 awk '!/mysql/{print $0}' /etc/passwd #輸出不匹配mysql的行 awk '!/mysql|mail/{print}' /etc/passwd #輸出不匹配mysql或mail的行 awk '/[2][7][7]*/{print $0}' /etc/passwd #匹配包含27爲數字開頭的行,如27,277,2777... awk -F: '$1~/mail/{print $1}' /etc/passwd #$1匹配指定內容才顯示 awk -F: '$1!~/mail|mysql/{print $1}' /etc/passwd IF語句 必須用在{}中,且比較內容用()擴起來 awk -F: '{if($1~/mail/) print $1}' /etc/passwd awk -F: '{if($1~/mail/) {print $1}}' /etc/passwd awk -F: '{if($1~/mail/) {print $1} else {print $2}}' /etc/passwd #if...else... 條件表達式 == != > >= awk -F":" '{if($1=="mysql") print $3}' /etc/passwd //與上面相同 awk -F":" '$1!="mysql"{print $3}' /etc/passwd //不等於 awk -F":" '$3>1000{print $3}' /etc/passwd //大於 邏輯運算符 && || awk -F: '{if($1~/mail/ && $3>8) print }' /etc/passwd awk -F: '{if($1~/mail/ || $3>1000) print }' /etc/passwd
應用:函數
ls -l|awk 'NR!=1 && !/^d/{sum[$3]+=$5} END{for (i in sum) printf "%-6s %-5s %-3s %-2s \n",i," ",sum[i]/1024/1024,"MB"}'
五、sed:一種流編輯器,它是文本處理中很是有用的工具,可以完美的配合正則表達式,處理時,把當前處理的行存儲在臨時緩衝區中,稱爲『模式空間』(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,直到文件末尾。原文件內容並無改變。
參考:http://www.runoob.com/linux/l...
參數:
參數說明: -f<script文件>或--file=<script文件> 以選項中指定的script文件來處理輸入的文本文件。 -h或--help 顯示幫助。 -V或--version 顯示版本信息。 -n :只打印模式匹配的行 -e :直接在命令行模式上進行sed動做編輯,此爲默認選項 -i :直接修改文件內容 動做說明: a :新增, a 的後面能夠接字串,而這些字串會在新的一行出現(目前的下一行)~ c :取代, c 的後面能夠接字串,這些字串能夠取代 n1,n2 之間的行! d :刪除,由於是刪除啊,因此 d 後面一般不接任何咚咚; i :插入, i 的後面能夠接字串,而這些字串會在新的一行出現(目前的上一行); p :打印,亦即將某個選擇的數據印出。一般 p 會與參數 sed -n 一塊兒運行~ s :取代,能夠直接進行取代的工做哩!一般這個 s 的動做能夠搭配正規表示法!例如 1,20s/old/new/g 就是啦! = 顯示文件行號 w filename r filename 從另外一個文件中讀文本,相似輸入重定向 < q 第一個模式匹配完成後退出或當即退出 {} 在定位行執行的命令組,用分號隔開 \<pattern\> 單詞錨點
示例:
echo hello|sed 's/hello/(&)/' #將hello放在擴號中 sed -i '/DEVICE/c\Ethernet' test nl /etc/passwd | sed '2i drink tea' sed -i '/connect/s#YES#NO#' test #匹配connect的行,把YES替換成NO