歡迎您光臨本站 註冊首頁

Linux lsof 命令詳解

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網路連接和硬體。

例如:傳輸控制協議 (TCP) 和用戶數據報協議 (UDP) 套接字等,系統在後台都為該應用程序分配了一個文件描述符,無論這個文件的本質如何,該文件描述符為應用程序與基礎操作系統之間的交互提供了通用介面。因為應用程序打開文件的描述符列表提供了大量關於這個應用程序本身的信息,因此通過lsof工具能夠查看這個列表,對系統監測和排錯很有幫助。

欄位含義

在終端下輸入lsof 即可顯示系統打開的文件, lsof 一般需要訪問核心內存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能。

每行顯示一個打開的文件,若不指定條件默認將顯示所有進程打開的所有文件。lsof輸出各列信息的意義如下:

COMMAND:    進程的名稱

PID:                    進程標識符

USER:              進程所有者

FD:                    文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等

TYPE:                文件類型,如DIR、REG等

DEVICE:          指定磁碟的名稱

SIZE:                文件的大小

NODE:              索引節點(文件在磁碟上的標識)

NAME:              打開文件的確切名稱

其中:

FD 列中的文件描述符cwd 值表示應用程序的當前工作目錄,這是該應用程序啟動的目錄,除非它本身對這個目錄進行更改。

txt  類型的文件是程序代碼,如應用程序二進位文件本身或共享庫,如上列表中顯示的 /sbin/init 程序。

數值,表示應用程序的文件描述符,這是打開該文件時返回的一個整數。如上的最後一行文件/dev/null,其文件描述符為 2u。這裡 u 表示該文件被打開並處於讀取/寫入模式,而不是只讀 (r) 或只寫 (w) 模式。同時還有大寫 的W 表示該應用程序具有對整個文件的寫鎖。該文件描述符用於確保每次只能打開一個應用程序實例。初始打開每個應用程序時,都具有三個文件描述符,從 0 到 2,分別表示標準輸入、輸出、錯誤流。所以大多數應用程序所打開的文件的 FD 都是從 3 開始。

與 FD 列相比,Type 列則比較直觀。文件和目錄分別稱為 REG 和 DIR; 而CHR 和 BLK,分別表示字元和塊設備;或者 UNIX、FIFO 和 IPv4,分別表示 UNIX 域套接字、先進先出 (FIFO) 隊列,網際協議 (IP) 套接字。



[火星人 ] Linux lsof 命令詳解已經有1654次圍觀

http://coctec.com/docs/linux/show-post-64977.html