Linux系統(tǒng)lsof命令怎么用
Linux系統(tǒng)中,lsof命令可用于查找應(yīng)用程序打開的文件名稱和數(shù)量,除此之外,losf命令還有很多用法,下面學(xué)習(xí)啦小編就給大家介紹下Linux中l(wèi)sof命令的用法實(shí)例,一起來看看吧。
lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。在linux環(huán)境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件,所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報(bào)協(xié)議 (UDP) 套接字等,系統(tǒng)在后臺都為該應(yīng)用程序分配了一個(gè)文件描述符,無論這個(gè)文件的本質(zhì)如何,該文件描述符為應(yīng)用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口。因?yàn)閼?yīng)用程序打開文件的描述符列表提供了大量關(guān)于這個(gè)應(yīng)用程序本身的信息,因此通過lsof工具能夠查看這個(gè)列表對系統(tǒng)監(jiān)測以及排錯(cuò)將是很有幫助的。
1.命令格式:
lsof [參數(shù)][文件]
2.命令功能:
用于查看你進(jìn)程開打的文件,打開文件的進(jìn)程,進(jìn)程打開的端口(TCP、UDP)。找回/恢復(fù)刪除的文件。是十分方便的系統(tǒng)監(jiān)視工具,因?yàn)?lsof 需要訪問核心內(nèi)存和各種文件,所以需要root用戶執(zhí)行。
lsof打開的文件可以是:
1.普通文件
2.目錄
3.網(wǎng)絡(luò)文件系統(tǒng)的文件
4.字符或設(shè)備文件
5.(函數(shù))共享庫
6.管道,命名管道
7.符號鏈接
8.網(wǎng)絡(luò)文件(例如:NFS file、網(wǎng)絡(luò)socket,unix域名socket)
9.還有其它類型的文件,等等
3.命令參數(shù):
-a 列出打開文件存在的進(jìn)程
-c《進(jìn)程名》 列出指定進(jìn)程所打開的文件
-g 列出GID號進(jìn)程詳情
-d《文件號》 列出占用該文件號的進(jìn)程
+d《目錄》 列出目錄下被打開的文件
+D《目錄》 遞歸列出目錄下被打開的文件
-n《目錄》 列出使用NFS的文件
-i《條件》 列出符合條件的進(jìn)程。(4、6、協(xié)議、:端口、 @ip )
-p《進(jìn)程號》 列出指定進(jìn)程號所打開的文件
-u 列出UID號進(jìn)程詳情
-h 顯示幫助信息
-v 顯示版本信息
4.使用實(shí)例:
實(shí)例:無任何參數(shù)
命令:lsof
輸出:
代碼如下:
[root@localhost ~]# lsof《/p》 《p》COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,2 4096 2 /
init 1 root rtd DIR 8,2 4096 2 /
init 1 root txt REG 8,2 43496 6121706 /sbin/init
init 1 root mem REG 8,2 143600 7823908 /lib64/ld-2.5.so
init 1 root mem REG 8,2 1722304 7823915 /lib64/libc-2.5.so
init 1 root mem REG 8,2 23360 7823919 /lib64/libdl-2.5.so
init 1 root mem REG 8,2 95464 7824116 /lib64/libselinux.so.1
init 1 root mem REG 8,2 247496 7823947 /lib64/libsepol.so.1
init 1 root 10u FIFO 0,17 1233 /dev/initctl
migration 2 root cwd DIR 8,2 4096 2 /
migration 2 root rtd DIR 8,2 4096 2 /
migration 2 root txt unknown /proc/2/exe
ksoftirqd 3 root cwd DIR 8,2 4096 2 /
ksoftirqd 3 root rtd DIR 8,2 4096 2 /
ksoftirqd 3 root txt unknown /proc/3/exe
migration 4 root cwd DIR 8,2 4096 2 /
migration 4 root rtd DIR 8,2 4096 2 /
migration 4 root txt unknown /proc/4/exe
ksoftirqd 5 root cwd DIR 8,2 4096 2 /
ksoftirqd 5 root rtd DIR 8,2 4096 2 /
ksoftirqd 5 root txt unknown /proc/5/exe
events/0 6 root cwd DIR 8,2 4096 2 /
events/0 6 root rtd DIR 8,2 4096 2 /
events/0 6 root txt unknown /proc/6/exe
events/1 7 root cwd DIR 8,2 4096 2 /
說明:
lsof輸出各列信息的意義如下:
COMMAND:進(jìn)程的名稱
PID:進(jìn)程標(biāo)識符
PPID:父進(jìn)程標(biāo)識符(需要指定-R參數(shù))
USER:進(jìn)程所有者
PGID:進(jìn)程所屬組
FD:文件描述符,應(yīng)用程序通過文件描述符識別該文件。如cwd、txt等