lsof指令簡介:
在終端下輸入lsof即可顯示系統打開的檔案,因為 lsof 需要通路核心記憶體和各種檔案,是以必須以 root 使用者的身份運作它才能夠充分地發揮其功能。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISN3MzMxgDMzIzMxYDMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
每行顯示一個打開的檔案,若不指定條件預設将顯示所有程序打開的所有檔案。lsof輸出各列資訊的意義如下:
COMMAND:程序的名稱
PID:程序辨別符
USER:程序所有者
FD:檔案描述符,應用程式通過檔案描述符識别該檔案。如cwd、txt等
TYPE:檔案類型,如DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:檔案的大小
NODE:索引節點(檔案在磁盤上的辨別)
NAME:打開檔案的确切名稱
lsof指令的用法如下:
lsof abc.txt 顯示開啟檔案abc.txt的程序
lsof 目錄名 查找誰在使用檔案目錄系統
lsof -i :22 知道22端口被哪個程序占用
lsof -c abc 顯示abc程序現在打開的檔案
lsof -g gid 顯示歸屬gid的程序情況
lsof -n 不将IP轉換為hostname,預設是不加上-n參數
lsof -p 12 看程序号為12的程序打開了哪些檔案
lsof -u username 檢視使用者打開哪些檔案
lsof -i @192.168.1.111 檢視遠端已打開的網絡連接配接(連接配接到192.168.1.111)
--------------------------------------
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 -> 端口号 (可以不隻一個)
lsof +|-r [t] 控制lsof不斷重複執行,預設是15s重新整理
-r,lsof會永遠不斷的執行,直到收到中斷信号
+r,lsof會一直執行,直到沒有檔案被顯示
http://blog.csdn.net/xifeijian/article/details/9088137