具體有以下幾個命令:
top
netstat -a
lsof -i:port
kill -9 pid
free
1、top命令
top [-] [d delay] [q] [c] [S] [s]
[n]
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優(yōu)先序執(zhí)行。
c:顯示進程完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閑置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數(shù),完成后將會退出top。
top - 12:21:21 up 22 days, 15:03, 5 users, load average: 4.50, 4.44, 4.33
Tasks: 138 total, 5 running, 133 sleeping, 0 stopped, 0 zombie
Cpu(s): 62.3% us, 13.0% sy, 1.7% ni, 23.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1553580k total, 1391172k used, 162408k free, 184552k buffers
Swap: 4096564k total, 242236k used, 3854328k free, 653744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
586 root 16 0 3352 1020 764 R 1.3 0.1 0:00.51 top
3341 sdl 16 0 3444 1808 780 S 0.3 0.1 1:55.67 gam_server
6471 root 16 0 8544 1268 1104 S 0.3 0.1 0:00.41 cupsd
1 root 16 0 3352 484 456 S 0.0 0.0 0:06.84 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.77 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
第一行表示的項目依次為當前時間、系統(tǒng)運行時間、當前系統(tǒng)登錄用戶數(shù)目、1/5/10分鐘系統(tǒng)平均負載(一般來說,這個負載值應(yīng)該不太可能超過 1 才對,除非您的系統(tǒng)很忙碌。 如果持續(xù)高于 5 的話,那么.....仔細的看看到底是那個程序在影響整體系統(tǒng)吧!)。
第二行顯示的是所有啟動的進程、目前運行、掛起 (Sleeping)的和無用(Zombie)的進程。(比較需要注意的是最后的 zombie
那個數(shù)值,如果不是 0 ,嘿嘿!好好看看到底是那個 process
變成疆尸了吧?!)(stop模式:與sleep進程應(yīng)區(qū)別,sleep會主動放棄cpu,而stop是被動放棄cpu
,例單步跟蹤,stop(暫停)的進程是無法自己回到運行狀態(tài)的)
第三行顯示的是目前CPU的使用情況,包括us用戶空間占用CPU百分比、sy 內(nèi)核空間占用CPU百分比、ni
用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比(中斷處理占用)、id 空閑CPU百分比、wa
等待輸入輸出的CPU時間百分比、hi,si,st 三者的意思目錄還不清楚 :)
第四行顯示物理內(nèi)存的使用情況,包括總的可以使用的內(nèi)存、已用內(nèi)存、空閑內(nèi)存、緩沖區(qū)占用的內(nèi)存。
第五行顯示交換分區(qū)使用情況,包括總的交換分區(qū)、使用的、空閑的和用于高速緩存的大小。
PID(Process ID):進程標示號 ( 每個 process 的 ID )
USER:進程所有者的用戶名 ( 該 process 所屬的使用者 )
PR:進程的優(yōu)先級別 ( Priority 的簡寫,程序的優(yōu)先執(zhí)行順序,越小越早被執(zhí)行 )
NI:進程的優(yōu)先級別數(shù)值 ( Nice 的簡寫,與 Priority 有關(guān),也是越小越早被執(zhí)行 )
VIRT:進程占用的虛擬內(nèi)存值。
RES:進程占用的物理內(nèi)存值。
SHR:進程使用的共享內(nèi)存值。
S:進程的狀態(tài),其中S表示休眠,R表示正在運行,Z表示僵死狀態(tài),N表示該進程優(yōu)先值是負數(shù)。
%CPU:該進程占用的CPU使用率。
%MEM:該進程占用的物理內(nèi)存和總內(nèi)存的百分比。
TIME+:該進程啟動后占用的總的CPU時間 ( CPU 使用時間的累加 )
Command:進程啟動的啟動命令名稱,如果這一行顯示不下,進程會有一個完整的命令行。
2、netstat
netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運作。
-a 顯示所有socket,包括正在監(jiān)聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。
-n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協(xié)議的連接情況。
-u 顯示UDP協(xié)議的連接情況。
-v 顯示正在進行的工作。
3、lsof
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -i :22 知道22端口現(xiàn)在運行什么程序
lsof -c abc 顯示abc進程現(xiàn)在打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個)
port --> 端口號 (可以不只一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看進程號為12的進程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新
-r,lsof會永遠不斷的執(zhí)行,直到收到中斷信號
+r,lsof會一直執(zhí)行,直到?jīng)]有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打開文件的大小,如果沒有大小,則留下空白
lsof -u username 以UID,列出打開的文件
一般root用戶才能執(zhí)行l(wèi)sof命令,普通用戶可以看見/usr/sbin/lsof命令,但是普通用戶執(zhí)行會顯示“permission denied”
我總結(jié)一下lsof指令的用法:
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -i :22 知道22端口現(xiàn)在運行什么程序
lsof -c abc 顯示abc進程現(xiàn)在打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個)
port --> 端口號 (可以不只一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看進程號為12的進程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新
-r,lsof會永遠不斷的執(zhí)行,直到收到中斷信號
+r,lsof會一直執(zhí)行,直到?jīng)]有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打開文件的大小,如果沒有大小,則留下空白
lsof -u username 以UID,列出打開的文件
4、kill
殺死進程
kill -9 進程號即可
5 free
查看內(nèi)存使用情況