lsof(list open files)是乙個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以,lsof的功能很強大。一般root使用者才能執行lsof命令,普通使用者可以看見/usr/sbin/lsof命令,但是普通使用者執行會顯示「permission denied」。因此通過lsof工具能夠檢視這個列表對系統監測以及排錯將是很有幫助的。
在終端下輸入lsof即可顯示系統開啟的檔案,因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能。
每行顯示乙個開啟的檔案,若不指定條件預設將顯示所有程序開啟的所有檔案。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會一直執行,直到沒有檔案被顯示
例子:不斷檢視目前ftp連線的情況:lsof -i [email protected]:ftp -r
Shell之lsof命令簡介
lsof工具 1 lsof list open files 是乙個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體 因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份執行它才能夠充分地發...
Linux命令 lsof命令
lsof 是遵從unix 哲學的典範,它只做一件事情,並且做的相當完美 它可以列出某個程序開啟的所有檔案資訊。開啟的檔案可能是普通的檔案,目錄,nfs檔案,塊檔案,字元檔案,共享庫,常規管道,明明管道,符號鏈結,socket流,網路socket,unix域socket,以及其它更多。因為unix系統...
Lsof命令詳解
一般root使用者才能執行lsof命令,普通使用者可以看見 usr sbin lsof命令,但是普通使用者執行會顯示 permission denied 我總結一下lsof指令的用法 lsof abc.txt 顯示開啟檔案abc.txt的程序 lsof i 22 知道22埠現在執行什麼程式 lsof...