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