lsof 命令的使用

2021-10-06 09:52:51 字數 1711 閱讀 1317

lsof(list open files)

是乙個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以如傳輸控制協議 (tcp) 和使用者資料報協議 (udp) 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,無論這個檔案的本質如何,該檔案描述符為應用程式與基礎作業系統之間的互動提供了通用介面。因為應用程式開啟檔案的描述符列表提供了大量關於這個應用程式本身的資訊,因此通過lsof工具能夠檢視這個列表對系統監測以及排錯將是很有幫助的。

引數:

lsof abc.txt 

顯示開啟檔案abc.txt的程序

lsof -c abc 

顯示abc程序現在開啟的檔案

lsof -c -p 1234 

列出程序號為1234的程序所開啟的檔案

lsof -g gid 

顯示歸屬gid的程序情況

lsof +d /usr/local/ 

顯示目錄下被程序開啟的檔案

lsof +d /usr/local/ 

同上,但是會搜尋目錄下的目錄,時間較長

lsof -d 4 

顯示使用fd為4的程序

lsof -i 

用以顯示符合條件的程序情況

輸出各列資訊的意義如下:

command

:程序的名稱 pid:程序識別符號

user

:程序所有者 fd

:檔案描述符,應用程式通過檔案描述符識別該檔案。如cwd、txt等 type:檔案型別,如dir、reg等

device

:指定磁碟的名稱

size

:檔案的大小

node

:索引節點(檔案在磁碟上的標識)

name

:開啟檔案的確切名稱

事例:

那個程序在使用apache的可執行檔案

lsof /etc/passwd //

那個程序在占用/etc/passwd

lsof /dev/cdrom //

那個程序在占用光碟機

lsof -c sendmail //

檢視sendmail程序的檔案使用情況

lsof -p 30297 //

顯示那些檔案被pid為30297的程序開啟

lsof -d /tmp

顯示所有在/tmp資料夾中開啟的instance和檔案的程序。但是symbol檔案並不在列

lsof -u1000 //

檢視uid是100的使用者的程序的檔案使用情況

sof -utony //

檢視使用者tony的程序的檔案使用情況

lsof -u^tony //

檢視不是使用者tony的程序的檔案使用情況(^是取反的意思)

lsof -i //

顯示所有開啟的埠

lsof -i:80 //

顯示所有開啟80埠的程序

lsof 命令使用

lsof list open files 是乙個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以如傳輸控制協議 tcp 和使用者資料報協議 udp 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,無論這...

lsof命令的使用

今天發現了這個命令lsof感覺蠻有用的尤其是對伺服器管理的人來說應該更加有用.這個命令可以看程序所需要開啟的檔案.當在lsof後邊沒有跟任何引數時,該命令將會列出當前系統中被所有程序開啟的所有檔案 下邊這幾個命令指出開啟某檔案的程序 lsof which httpd 那個程序在使用apache的可執...

lsof命令使用示例

lsof 命令是什麼?可以列出被程序所開啟的檔案的資訊。被開啟的檔案可以是 1.普通的檔案 2.目錄 3.網路檔案系統的檔案 4.字元裝置檔案 5.函式 共享庫 6.管道,命名管道 7.符號鏈結 8.底層的 socket 字流,網路 socket unix 網域名稱socket 怎樣使用 lsof ...