lsof命令簡介

2022-06-14 06:42:14 字數 1666 閱讀 7250

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...