【linux系統】命令學習(八)bash 程式設計實戰學習
常見shell : bash sh zsh
windows: git bash cygwin
MAC : terminal iterm
netstat
是linux下用於顯示網路狀態的命令。通過它能統計埠情況,網路連線狀態,路由表等資訊。在網路開發或運維中,經常會使用netstat來檢視網路狀態。
常用引數說明:
-l或–listening 顯示監控中的伺服器的Socket。
-n或–numeric 直接使用IP地址,而不通過域名伺服器。
-p或–programs 顯示正在使用Socket的程式識別碼和程式名稱。
-t或–tcp 顯示TCP傳輸協議的連線狀況。
日常用法:
netstat -tnlp
netstat -tnp
原文連結:https://blog.csdn.net/weixin_43627624/article/details/107133778
範例:
netstat -tnp | grep ":22" | awk '{print $5}' | awk -F: '{print $1}' | uniq -c | sort -nr |wc -l
檢視當前網路連線狀態,查詢關於:22的網路連線,取第五列資料,在第五列資料中以:為分隔符取第一列,去重並統計數量,按數字排序並倒序排序,統一共有多少行。
head -3 jmeter.log
檢視前三行
more jmeter.log
less jmeter.log -----less 更好用,查詢,上下鍵可以瀏覽資料
diff 1 2 比較1 和 2 的區別
cat 120601.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 3
less 120601.log | awk '{print $7}'| awk -F? '{print $1}' | grep "/topics/[0-9]*/"
less 120601.log | awk '{print $7}'| awk -F? '{print $1}' | grep "/topics/[0-9][0-9]5"
less 120601.log | grep topics | grep -E "/topics/[0-9]{1,10}[?]{1}" | sed -E 's#[0-9]{1,10}#:int:#g' | awk '{print $7}' | sort | uniq -c
grep topics 120601.log | awk '{print $7}' | sed 's#?.*##g'
grep topics 120601.log | awk '{print $7}' | sed 's#?.*##g' | sed 's#/topics/[0-9]*$#/topics/topics#' | sort | uniq -c | sort -nr |head -5
grep topics 120601.log | awk '{print $7}' | sed 's#?.*##g' | sed 's#/topics/[0-9]*$#/topics/topics#' | sed 's#/topics/[0-9]*/replies/[0-9]*/.*#topics/replies#' | sort | uniq -c | sort -nr |head -5
grep topics 120601.log | grep -v "topoooo" 過濾掉topoooo的資訊
http常見協議
200 30x 400 404 500 503
ps:檢視 Linux 中當前執行的程序的命令
man ps
ps -ef 斜槓分隔 標準格式輸出 ps -e 列印所有程序
UID //使用者ID、但輸出的是使用者名稱
PID //程序的ID
PPID //父程序ID
C //程序佔用CPU的百分比
STIME //程序啟動到現在的時間
TTY //該程序在那個終端上執行,若與終端無關,則顯示? 若為pts/0等,則表示由網路連線主機程序。
CMD //命令的名稱和引數
ps -eo 獲取少數字段,可以進行分析
ps -o pid 只打印有用的資料
ps aux用BSD的格式來顯示
USER //使用者名稱
%CPU //程序佔用的CPU百分比
%MEM //佔用記憶體的百分比
VSZ //該程序使用的虛擬記憶體量(KB)
RSS //該程序佔用的固定記憶體量(KB)(駐留中頁的數量)
STAT //程序的狀態
D //無法中斷的休眠狀態(通常 IO 的程序);
R //正在執行可中在佇列中可過行的;
S //處於休眠狀態;
T //停止或被追蹤;
W //進入記憶體交換 (從核心2.6開始無效);
X //死掉的程序 (基本很少見);
Z //殭屍程序;
< //優先順序高的程序
N //優先順序較低的程序
L //有些頁被鎖進記憶體;
s //程序的領導者(在它之下有子程序);
l //多執行緒,克隆執行緒(使用 CLONE_THREAD, 類似 NPTL pthreads);
+ //位於後臺的程序組;
START //該程序被觸發啟動時間
TIME //該程序實際使用CPU執行的時間
for i in {1..8};do sleep 1 ; ps -o %cpu -p pid; done -------ps -o %cpu -p pid迴圈八次
for i in {1..8};do sleep 1 ; ps -o %cpu,%mem -p pid; done -------ps -o %cpu -p pid迴圈八次
kill -9 pid 關閉程序
top
經常用來監控linux的系統狀況,是常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用情況。
-d:number代表秒數,表示top命令顯示的頁面更新一次的間隔。預設是5秒。
-b:以批次的方式執行top。
-n:與-b配合使用,表示需要進行幾次top命令的輸出結果。
-p:指定特定的pid程序號進行觀察。
?:顯示在top當中可以輸入的命令
P:以CPU的使用資源排序顯示
M:以記憶體的使用資源排序顯示
N:以pid排序顯示
T:由程序使用的時間累計排序顯示
k:給某一個pid一個訊號。可以用來殺死程序
r:給某個pid重新定製一個nice值(即優先順序)
q:退出top(用ctrl+c也可以退出top)。
top -b -p 1132 -n 2 -d 1 | grep --line-buffered 1132 | awk 'BEGIN{print "CPU MEM"}{print $9,$10;c+=$9;m+$10}END{print "-------";print c/NR,M/NR}'
top -b -p 1132 -n 2 -d 1 | grep --line-buffered 1132 | awk 'BEGIN{print "CPU MEM avgc avgs"}{c+=$9;m+=$10}{print $9,$10,c/NR,m/NR}'
jobs -l 檢視當前執行程序
kill pid 殺掉命令