ubuntu下lsof工具使用手冊 一切皆檔案

2021-07-04 10:47:53 字數 3095 閱讀 3580

lsof(list open files)是乙個檢視當前系統檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。如傳輸控制協議 (tcp) 和使用者資料報協議 (udp) 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,該檔案描述符提供了大量關於這個應用程式本身的資訊。

檢視系統資訊時,需要給予管理員許可權,在前面加上sudo既可以了

如sudo lsof -i :27017,這個埠時mongodb使用的埠。

deng@deng-vpceg100c:~/文件/maketest$ sudo lsof -i :27017

command pid user fd type device size/off node name

mongod 6941 mongodb 6u ipv4 2607706 0t0 tcp localhost:27017 (listen)

lsof開啟的檔案可以是:

普通檔案

目錄網路檔案系統的檔案

字元或裝置檔案

(函式)共享庫

管道,命名管道

符號鏈結

網路檔案(例如:nfs file、網路socket,unix網域名稱socket)

還有其它型別的檔案,等等

$lsof| more

command pid user fd type device size/off node name

init 1 root cwd dir 253,0 4096 2 /

init 1 root rtd dir 253,0 4096 2 /

init 1 root txt reg 253,0 150352 1310795 /sbin/init

init 1 root mem reg 253,0 65928 5505054 /lib64/libnss_files-2.12.so

init 1 root mem reg 253,0 1918016 5521405 /lib64/libc-2.12.so

init 1 root mem reg 253,0 93224 5521440 /lib64/libgcc_s-4.4.6-20120305.so.1

init 1 root mem reg 253,0 47064 5521407 /lib64/librt-2.12.so

init 1 root mem reg 253,0 145720 5521406 /lib64/libpthread-2.12.so

...

說明:

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

$lsof /bin/bash

command pid user fd type device size/off node name

mysqld_sa 2169 root txt reg 253,0 938736 4587562 /bin/bash

ksmtuned 2334 root txt reg 253,0 938736 4587562 /bin/bash

bash 20121 root txt reg 253,0 938736 4587562 /bin/bash

$lsof -u username

-u 選項,u是user的縮寫

$lsof -c mysql

-c 選項將會列出所有以mysql這個程序開頭的程式的檔案,其實你也可以寫成 lsof | grep mysql, 但是第一種方法明顯比第二種方法要少打幾個字元;

$lsof  -u test -c mysql

$lsof -p 11968

$lsof -i

$lsof -i tcp

$lsof -n -i tcp

command pid user fd type device size/off node name

svnserve 11552 weber 3u ipv4 3799399 0t0 tcp *:svn (listen)

redis-ser 25501 weber 4u ipv4 113150 0t0 tcp 127.0.0.1:6379 (listen)

$lsof -i :27017

$lsof -a -u test -i

$lsof -d description(like 2)

示例:

$lsof -d 3 | grep parser1

說明:0表示標準輸入,1表示標準輸出,2表示標準錯誤,從而可知:所以大多數應用程式所開啟的檔案的 fd 都是從 3 開始

$lsof -i 4 -a -p 1234

lsof -i @nf5260i5-td:20,21,80 -r 3

android下使用htop和lsof

在編譯並使用基於android的htop 2.0.2過程中 引用一 發現檢視程序使用檔案控制代碼 快捷鍵 l 實際呼叫命令lsof 資訊一直為空白,經研究發現原來android的lsof其實是包含在toolbox中的子功能,其功能很單一不支援命令列引數,現單獨編譯源 生成程式供htop呼叫。一 編譯...

lsof 命令使用

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

實用的系統工具之 lsof

只需輸入 lsof 就可以生成大量的資訊,因為 lsof 需要訪問核心記憶體和各種 檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能。lsof 的示例輸出 root ylinux lab 0 lsof command pid tid user fd type device siz...