lsof(list open files)是一個列出目前系統開啟檔案的工具。在linux環境下,任何事物都以文件的形式存在,透過文件不僅可以存取常規數據,還可以存取網路連接和硬體。
(推薦教學: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)
以上是linux中lsof指令是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!