新聞中心

創(chuàng)新互聯(lián)建站專注于杭州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購(gòu)物商城網(wǎng)站建設(shè)。杭州網(wǎng)站建設(shè)公司,為杭州等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
lsof 命令,“l(fā)ist opened files”的縮寫,直譯過(guò)來(lái),就是列舉系統(tǒng)中已經(jīng)被打開(kāi)的文件。通過(guò) lsof 命令,我們就可以根據(jù)文件找到對(duì)應(yīng)的進(jìn)程信息,也可以根據(jù)進(jìn)程信息找到進(jìn)程打開(kāi)的文件。
lsof 命令的基本格式如下:
[root@localhost ~]# lsof [選項(xiàng)]
此命令常用的選項(xiàng)及功能,如表 1 所示。
| 選項(xiàng) | 功能 |
|---|---|
| -c 字符串 | 只列出以字符串開(kāi)頭的進(jìn)程打開(kāi)的文件。 |
| +d 目錄名 | 列出某個(gè)目錄中所有被進(jìn)程調(diào)用的文件。 |
| -u 用戶名 | 只列出某個(gè)用戶的進(jìn)程打開(kāi)的文件。 |
| -p pid | 列出某個(gè) PID 進(jìn)程打開(kāi)的文件。 |
【例 1】
[root@localhost ~]# lsof | more
#查詢系統(tǒng)中所有進(jìn)程調(diào)用的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 145180 130874 /sbin/init
init 1 root mem REG 8,3 142472 665291 /lib/ld-2.12.so
init 1 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.so
…省略部分輸出…
這個(gè)命令的輸出非常多。它會(huì)按照 PID,從 1 號(hào)進(jìn)程開(kāi)始列出系統(tǒng)中所有的進(jìn)程正在調(diào)用的文件名。
【例 2】
[root@localhost ~]# lsof /sbin/init
#查詢某個(gè)文件被哪個(gè)進(jìn)程調(diào)用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root txt REG 8,3 145180 130874 /sbin/init
lsof 命令也可以反過(guò)來(lái)查詢某個(gè)文件被哪個(gè)進(jìn)程調(diào)用。這個(gè)例子就查詢到 /sbin/init 文件是被 init 進(jìn)程調(diào)用的。
【例 3】
[root@localhost ~]# lsof +d /usr/lib
#查詢某個(gè)目錄下所有的文件是被哪些進(jìn)程調(diào)用的
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpc.idmap 1196 root mem REG 8,3 26400 279930 /usr/lib/libnfsidmap.so.0.3.0
rpc.idmap 1196 root mem REG 8,3 108948 276696 /usr/lib/libevent-1.4.so.2.1.3
avahi-dae 1240 avahi mem REG 8,3 49124 271310 /usr/lib/libavahi-common.so.3.5.1
avahi-dae 1240 avahi mem REG 8,3 23904 283188 /usr/lib/libdaemon.so.0.5.0
avahi-dae 1240 avahi mem REG 8,3 227212 268396 /usr/lib/libavahi-core.so.6.0.1
avahi-dae 1241 avahi mem REG 8,3 49124 271310 /usr/lib/libavahi-common.so.3.5.1
avahi-dae 1241 avahi mem REG 8,3 23904 283188 /usr/lib/libdaemon.so.0.5.0
avahi-dae 1241 avahi mem REG 8,3 227212 268396 /usr/lib/libavahi-core.so.6.0.1
cupsd 1251 root mem REG 8,3 69564 270210 /usr/lib/libtasn1.so.3.1.6
使用“+d”選項(xiàng)可以搜索某個(gè)目錄下所有的文件,查看到底哪個(gè)文件被哪個(gè)進(jìn)程調(diào)用了。
【例 4】
[root@localhost ~]# lsof -c httpd
#查看以httpd開(kāi)頭的進(jìn)程調(diào)用了哪些文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 4689 root cwd DIR 8,3 4096 2 /
httpd 4689 root rtd DIR 8,3 4096 2 /
httpd 4689 root txt REG 8,3 1797559 2855 /usr/local/apache2/bin/httpd
httpd 4689 root mem REG 8,3 302300 665303 /lib/libfreebl3.so
httpd 4689 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.s
httpd 4689 root mem REG 8,3 142472 665291 /lib/ld-2.12.so
httpd 4689 root mem REG 8,3 1889704 665292 /lib/libc-2.12.so
…省略部分輸出…
使用“-c”選項(xiàng)可以查詢以某個(gè)字符串開(kāi)頭的進(jìn)程調(diào)用的所有文件,比如執(zhí)行“l(fā)sof-c httpd”命令就會(huì)查詢出以 httpd 開(kāi)頭的進(jìn)程調(diào)用的所有文件。
【例 5】
[root@localhost ~]# lsof -p 1
#查詢PID是1的進(jìn)程調(diào)用的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 145180 130874 /sbin/init
init 1 root mem REG 8,3 142472 665291 /lib/ld-2.12.so
init 1 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.so
當(dāng)然,我們也可以按照 PID 查詢進(jìn)程調(diào)用的文件,比如執(zhí)行“l(fā)sof -p 1”命令就可以查看 PID 為 1 的進(jìn)程調(diào)用的所有文件。
【例 6】
[root@localhost ~]# lsof -u root
#按照用戶名查詢某個(gè)用戶的進(jìn)程調(diào)用的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 145180 130874 /sbin/init
init 1 root mem REG 8,3 142472 665291 /lib/ld-2.12.so
init 1 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.s
init 1 root mem REG 8,3 38768 655310 /lib/libnih-dbus.so.1.0.
…省略部分輸出…
我們還可以查看某個(gè)用戶的進(jìn)程調(diào)用了哪些文件。
分享文章:Linuxlsof命令:列出進(jìn)程調(diào)用或打開(kāi)的文件信息
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/djdgdgd.html


咨詢
建站咨詢
