linux shell command整理

1,lsof:由于linux下一切皆文件,該命令意思是列出打開的文件,因此該命令適用場景很廣。

lsof--顯示所有打開的文件

lsof -u--特定用戶打開的文件

lsof -u^root--排除root用戶后的文件列表

lsof -i --列出所有網(wǎng)絡(luò)連接

lsof -i 4 -- lsof - i 6列出ipv4或6的文件

lsof -i TCP:80--正在監(jiān)聽特定端口的進(jìn)程

lsof -i TCP:1-1024--列出正在1-1024端口運(yùn)行的程序

lsof -i -u root--特定用戶使用的文件和命令

lsof -p 1 --通過PID搜索

kill -9 'lsof -t -u ntp'--殺死ntp用戶的所有進(jìn)程

2,vmstat param1 param2--Every param1 seconds execute a statistics until param2 count.

[root@vm-10]# vmstat 2 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r? b? swpd? free? buff? cache? si? so? ? bi? ? bo? in? cs us sy id wa st

0? 0? 77808 643596 275088 10217268? ? 0? ? 0? ? 0? ? 3? ? 0? ? 0? 1? 0 98? 0? 0

0? 0? 77808 644084 275088 10217288? ? 0? ? 0? ? 0? ? 15 1558 1012? 3? 0 97? 0? 0

0? 0? 77808 643984 275088 10217292? ? 0? ? 0? ? 0? ? 18 1395? 671? 3? 0 97? 0? 0

0? 0? 77808 643984 275088 10217296? ? 0? ? 0? ? 0? ? 39 1596? 883? 4? 0 96? 0? 0

0? 0? 77808 643876 275088 10217304? ? 0? ? 0? ? 0? ? 13 1521? 959? 3? 0 97? 0? 0

各參數(shù)說明:

r :表示運(yùn)行隊列,如果運(yùn)行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高

b :表示阻塞的進(jìn)程數(shù)

swpd :虛擬內(nèi)存已使用的大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器

free :空閑的物理內(nèi)存的大小

buff : 系統(tǒng)占用的緩存大小

cache :直接用來記憶我們打開的文件,給文件做緩沖

si:每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了

us :用戶CPU時間

sy :系統(tǒng)CPU時間

so : 每秒虛擬內(nèi)存寫入磁盤的大小,如果這個值大于0,同上。

sy : 系統(tǒng)CPU時間,如果太高,表示系統(tǒng)調(diào)用時間長,例如是IO操作頻繁。

id : 空閑CPU時間,一般來說,id + us + sy =100

wt : 等待IO CPU時間。

3,iotop--實時顯示磁盤io和進(jìn)程。

4,iostat--io統(tǒng)計。

5,top-- 執(zhí)行top后按1,可以顯示每個cpu的各個core的使用情況。

6,ps -o lstart--顯示進(jìn)程啟動時間,可以用下面的命令將 cpu 占用率高的線程找出來:

ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

7,pstree -a--按照tree的格式輸出進(jìn)程

8,free -m -- 顯示內(nèi)存和交換區(qū)使用情況

[root@vm-10]# free -m

total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available

Mem:? ? ? ? ? 15886? ? ? ? 4566? ? ? ? 4670? ? ? ? 778? ? ? ? 6648? ? ? 10126

Swap:? ? ? ? ? 6193? ? ? ? ? 1? ? ? ? 6192

9,uptime--顯示系統(tǒng)持續(xù)運(yùn)行的時間

10,dstat --top-io --top-bio--顯示哪些進(jìn)程在進(jìn)行io操作

11,cat /proc/net/sockstat--查看系統(tǒng)ipv4 socket連接情況,cat /proc/net/sockstat6用于ipv6

sockets: used 137

TCP: inuse 49 orphan 0 tw 3272 alloc 52 mem 46

UDP: inuse 1 mem 0

RAW: inuse 0

FRAG: inuse 0 memory 0

說明:

sockets: used:已使用的所有協(xié)議套接字總量

TCP: inuse:正在使用(正在偵聽)的TCP套接字?jǐn)?shù)量。

TCP: orphan:無主(不屬于任何進(jìn)程)的TCP連接數(shù)(無用、待銷毀的TCP socket數(shù))

TCP: tw:等待關(guān)閉的TCP連接數(shù)。

TCP:alloc(allocated):已分配(已建立、已申請到sk_buff)的TCP套接字?jǐn)?shù)量。其值等于netstat —ant | grep ^tcp | wc —l

TCP:mem:套接字緩沖區(qū)使用量(單位不詳。用scp實測,速度在4803.9kB/s時:其值=11,netstat —ant 中相應(yīng)的22端口的Recv-Q=0,Send-Q≈400)

UDP:inuse:正在使用的UDP套接字?jǐn)?shù)量

RAW:

FRAG:使用的IP段數(shù)量

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'--顯示不同狀態(tài)的連接總數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容