现在的位置: 首页 > 综合 > 正文

FreeBSD Lsof命令介绍

2013年10月17日 ⁄ 综合 ⁄ 共 1998字 ⁄ 字号 评论关闭
原贴:http://study.kooso.com.cn/html/freebsd/200712/081047540507.shtml

FreeBSD Lsof命令介绍
[ 来源: | 作者: | 时间: | 收藏本文 ] 【大 中 小】
◎名稱
lsof - LiSt Open Files
◎版本
Revision-4.60
◎安裝
1.採用port安裝 別忘了更新ports tree
2.過程如下圖:

◎語法
lsof [ -?ahlnNPRsv] [-c c ] [ +|-d d ] [+|-D D ] [ -g [s] ] [ -i [i] ]
[ +|-L [l] ] [ -p s ] [+|-r [t] ] [-u s] [names]
◎OPTIONS
若沒有加上任何的參數,lsof 會列出所有被程序(process)開啟的檔案。
參數可以相互結合,ex: -a -b -c 等同於 -abc
-? -h這兩個參數意思相同,顯示出 lsof 的使用說明。
-a 參數被視為 AND
注意:-a 參數一但加上 ,會影響全部的參數。
-c c 顯示出以字母 c 開頭命令程序所開啟的檔案
舉例:顯示以init程序開啟的檔案(如下圖)

+d s 依照資料夾s來搜尋,此參數將不會繼續深入搜尋此資料夾
舉例:顯示在/usr/local/資料夾下被程序開啟的檔案(如下圖)

+D D 同上但是會以該資料夾為基礎往下全部搜尋..
注意︰lsof以此參數進行時,須花費較多的動態記憶體。
尤其在處理較大的資料夾時,請務必審慎使用之。
舉例:顯示在/usr/local/資料夾下被程序開啟的檔案(如下圖)
很明顯可以看出二者的差別

-d s 此參數以file descriptor (FD)值顯示結果,
可以採用範圍表示,如 1-3 或 3-10 但 最前面的數一定要比最後面的數校
舉例:以FD為4顯示

-g [s] 以程序的PGID (process group IDentification)顯示
也可以採用範圍(1-3)或個別(3,5)表示,若沒有特別指定,則顯示全部。
舉例:以PGID為6顯示

-i [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 host:ohaha.ks.edu.tw service name:ftp

-l 此參數禁止將user ID轉換為登入名稱。(預設顯示登入名稱)

+|-L [l] +或-表示開啟或取消顯示檔案連結數.
若只有單純的+L,後面沒有任何數字,則表示顯示全部。
若其後有加上數字,只有檔案連結數少於該數字的會被列出。
-n 不將IP位址轉換成hostname,預設是不加上-n參數。
舉例:tcp@ohaha.ks.edu.tw:ftp -n
(您可以和上兩張圖比較一下,原先的hostname便回ip位置了)

-N 顯示NFS的檔案。
-p s 以process ID (PID)作為顯示的依據。
若您想知道某個process到底在做些什麼??
先用ps 查詢一下PID ,然後-p參數就派上用場了。
(可用,分隔依次查詢多個process)
舉例:lsof -p 1

-P 此參數禁止將port number轉換成service name。
預設值會自動將port number轉換成service name。

+|-r [t] 控制lsof不斷重複執行。
t-->預設是15秒。也就是說每隔15秒再重新執行。
-r參數,則lsof會永遠不斷的執行,直到收到中斷訊號(ctrl+c)。
+r參數,lsof會一直執行,直到沒有檔案被顯示。
舉例:以下圖為例子,若今天採用+r參數執行,
一但沒有任何ftp連線,lsof就會結束執行。

-R 此參數增列出processID的親代程序,也就是列出PPID。

-s 列出檔案的大小,若該檔案沒有大小,則留下空白。

-u s 以login name(登入名稱)或UID,列出所開啟檔案。
以紫色塗起來的表示登入的帳號。

-v 顯示lsof的版本資訊等。

◎作者
Lsof 主要由 Victor A.Abell 編寫
◎版本取得
最新的版本可以經由主站台或mirror站台取得...
/tupian/2005/12/24/200512242130182001c.cc.purdue.edu/pub/tools/unix/lsof
P.S 此站台需要有ip反解才能夠進入..
◎參考資料
man lsof
◎特別提醒
-c,-g,-p,-u,這四個參數最有用..^0^

抱歉!评论已关闭.