Linux下進(jìn)程和端口,內(nèi)存相關(guān)操作
top
netstat -a
lsof -i:port
kill -9 pid
free
1、top命令
top [-] [d delay] [q] [c] [S] [s] [n]
d:指定更新的間隔,以秒計(jì)算。
q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會(huì)以最高的優(yōu)先序執(zhí)行。
c:顯示進(jìn)程完整的路徑與名稱。
S:累積模式,會(huì)將己完成或消失的子行程的CPU時(shí)間累積起來。
s:安全模式。
i:不顯示任何閑置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數(shù),完成后將會(huì)退出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
第一行表示的項(xiàng)目依次為當(dāng)前時(shí)間、系統(tǒng)運(yùn)行時(shí)間、當(dāng)前系統(tǒng)登錄用戶數(shù)目、1/5/10分鐘系統(tǒng)平均負(fù)載(一般來說,這個(gè)負(fù)載值應(yīng)該不太可能超過 1 才對,除非您的系統(tǒng)很忙碌。 如果持續(xù)高于 5 的話,那么.....仔細(xì)的看看到底是那個(gè)程序在影響整體系統(tǒng)吧!)。
第二行顯示的是所有啟動(dòng)的進(jìn)程、目前運(yùn)行、掛起 (Sleeping)的和無用(Zombie)的進(jìn)程。(比較需要注意的是最后的 zombie 那個(gè)數(shù)值,如果不是 0 ,嘿嘿!好好看看到底是那個(gè) process 變成疆尸了吧?!)(stop模式:與sleep進(jìn)程應(yīng)區(qū)別,sleep會(huì)主動(dòng)放棄cpu,而stop是被動(dòng)放棄cpu ,例單步跟蹤,stop(暫停)的進(jìn)程是無法自己回到運(yùn)行狀態(tài)的)
第三行顯示的是目前CPU的使用情況,包括us用戶空間占用CPU百分比、sy 內(nèi)核空間占用CPU百分比、ni 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級的進(jìn)程占用CPU百分比(中斷處理占用)、id 空閑CPU百分比、wa 等待輸入輸出的CPU時(shí)間百分比、hi,si,st 三者的意思目錄還不清楚 :)
第四行顯示物理內(nèi)存的使用情況,包括總的可以使用的內(nèi)存、已用內(nèi)存、空閑內(nèi)存、緩沖區(qū)占用的內(nèi)存。
第五行顯示交換分區(qū)使用情況,包括總的交換分區(qū)、使用的、空閑的和用于高速緩存的大小。
PID(Process ID):進(jìn)程標(biāo)示號 ( 每個(gè) process 的 ID )
USER:進(jìn)程所有者的用戶名 ( 該 process 所屬的使用者 )
PR:進(jìn)程的優(yōu)先級別 ( Priority 的簡寫,程序的優(yōu)先執(zhí)行順序,越小越早被執(zhí)行 )
NI:進(jìn)程的優(yōu)先級別數(shù)值 ( Nice 的簡寫,與 Priority 有關(guān),也是越小越早被執(zhí)行 )
VIRT:進(jìn)程占用的虛擬內(nèi)存值。
RES:進(jìn)程占用的物理內(nèi)存值。
SHR:進(jìn)程使用的共享內(nèi)存值。
S:進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值是負(fù)數(shù)。
%CPU:該進(jìn)程占用的CPU使用率。
%MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比。
TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間 ( CPU 使用時(shí)間的累加 )
Command:進(jìn)程啟動(dòng)的啟動(dòng)命令名稱,如果這一行顯示不下,進(jìn)程會(huì)有一個(gè)完整的命令行。
2、netstat
netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。
-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 顯示正在進(jìn)行的工作。
3、lsof
lsof abc.txt 顯示開啟文件abc.txt的進(jìn)程
lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序
lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開的文件
lsof -g gid 顯示歸屬gid的進(jìn)程情況
lsof +d /usr/local/ 顯示目錄下被進(jìn)程開啟的文件
lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長
lsof -d 4 顯示使用fd為4的進(jìn)程
lsof -i 用以顯示符合條件的進(jìn)程情況
語法: 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 (可以不只一個(gè))
port --> 端口號 (可以不只一個(gè))
例子: 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 看進(jìn)程號為12的進(jìn)程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新
-r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行,直到收到中斷信號
+r,lsof會(huì)一直執(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í)行會(huì)顯示“permission denied”
我總結(jié)一下lsof指令的用法:
lsof abc.txt 顯示開啟文件abc.txt的進(jìn)程
lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序
lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開的文件
lsof -g gid 顯示歸屬gid的進(jìn)程情況
lsof +d /usr/local/ 顯示目錄下被進(jìn)程開啟的文件
lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長
lsof -d 4 顯示使用fd為4的進(jìn)程
lsof -i 用以顯示符合條件的進(jìn)程情況
語法: 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 (可以不只一個(gè))
port --> 端口號 (可以不只一個(gè))
例子: 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 看進(jìn)程號為12的進(jìn)程打開了哪些文件
lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新
-r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行,直到收到中斷信號
+r,lsof會(huì)一直執(zhí)行,直到?jīng)]有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打開文件的大小,如果沒有大小,則留下空白
lsof -u username 以UID,列出打開的文件
4、kill
殺死進(jìn)程
kill -9 進(jìn)程號即可
5 free
查看內(nèi)存使用情況
posted on 2009-04-18 12:23 草原上的駱駝 閱讀(712) 評論(0) 編輯 收藏 所屬分類: Linux