Linux 命令 | 常用命令 lsof 详解 + 实例

Linux 命令 | 常用命令 lsof 详解 + 实例Linux 命令 losof 详解 实例 lsof

大家好,欢迎来到IT知识分享网。

目录

一、基本概念

二、常用参数

三、实例

3.1 无参数

3.2 -p 参数

3.3 -l 参数

3.4 -u 参数

3.5 -c 参数

3.6 -d 参数

3.7 fileName

3.8 -i 参数

四、总结

五、参考文献


    lsof 命令常用于查找进程打开了哪些文件以及与打开文件相关联的内容,这篇文章将介绍 lsof 常用的命令参数,下面通过实例进行说明。

一、基本概念

    命令 lsof ( list opened files )负责列出系统中已经打开的文件,包括普通文件,目录,块特殊文件,字符特殊文件,正在执行的文本引用,库,流或网络文件(例如:网络套接字,NFS文件或UNIX域套接字)。

二、常用参数

-p pid : 输出指定进程打开的文件;

-l : 输出中使用ID代替用户名;

-u userName : 输出指定用户打开的文件;

-c string : 输出 COMMAND 列中包含 string 的项;

-d fd : 输出包含指定描述符的项;

fileName : 输出打开文件 fileName 的所有项;

-i [46] [protocol][@hostname|hostaddr][:service|port] : 输出符合指定条件的项,其中:

    46 :分别指 IPv4、IPv6;

    protocol :指 TCP 或 UDP;

    hostname :  网络主机名;

    hostaddr : IP 地址;

    service : 包含在 /etc/services 中的名称;

    port : 端口号,可以是多个;

三、实例

3.1 无参数

      在终端中直接执行 lsof 命令,如下所示:

[root@localhost ~]# lsof lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 253,0 236 64 / systemd 1 root rtd DIR 253,0 236 64 / systemd 1 root txt REG 253,0   /usr/lib/systemd/systemd systemd 1 root mem REG 253,0 20112  /usr/lib64/libuuid.so.1.3.0 systemd 1 root mem REG 253,0   /usr/lib64/libblkid.so.1.1.0 systemd 1 root mem REG 253,0 90248  /usr/lib64/libz.so.1.2.7 systemd 1 root mem REG 253,0   /usr/lib64/liblzma.so.5.2.2 systemd 1 root mem REG 253,0 23968  /usr/lib64/libcap-ng.so.0.0.0 systemd 1 root mem REG 253,0 19896  /usr/lib64/libattr.so.1.1.0 systemd 1 root mem REG 253,0 19248  /usr/lib64/libdl-2.17.so systemd 1 root mem REG 253,0   /usr/lib64/libpcre.so.1.2.0 …… ……

其中,每列参数的含义如下:

1. COMMAND : 命令名称;

2. PID : 进程ID;

3. TID : 线程ID,如果为空代表列出的是进程;

4. TASKCMD : 任务名称,通常与 COMMAND 相同;

5. USER : 用户ID号或登录名;

6. FD : 文件描述符;

7. TYPE : 与文件关联结点的类型;

8. DEVICE : 设备号;

9. SIZE/OFF : 文件大小/偏移量,以字节为单位;

10. NODE : 文件结点;

11. NAME : 文件挂载点和文件所在的系统;

3.2 -p 参数

      执行命令 lsof -p 1,列出 1号 进程打开的文件,如下所示:

[root@localhost ~]# lsof -p 1 lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 253,0 236 64 / systemd 1 root rtd DIR 253,0 236 64 / systemd 1 root txt REG 253,0   /usr/lib/systemd/systemd systemd 1 root mem REG 253,0 20112  /usr/lib64/libuuid.so.1.3.0 systemd 1 root mem REG 253,0   /usr/lib64/libblkid.so.1.1.0 systemd 1 root mem REG 253,0 90248  /usr/lib64/libz.so.1.2.7 systemd 1 root mem REG 253,0   /usr/lib64/liblzma.so.5.2.2 systemd 1 root mem REG 253,0 23968  /usr/lib64/libcap-ng.so.0.0.0 systemd 1 root mem REG 253,0 19896  /usr/lib64/libattr.so.1.1.0 systemd 1 root mem REG 253,0 19248  /usr/lib64/libdl-2.17.so systemd 1 root mem REG 253,0   /usr/lib64/libpcre.so.1.2.0 systemd 1 root mem REG 253,0   /usr/lib64/libc-2.17.so systemd 1 root mem REG 253,0   /usr/lib64/libpthread-2.17.so systemd 1 root mem REG 253,0 88720  /usr/lib64/libgcc_s-4.8.5-.so.1 systemd 1 root mem REG 253,0 43712  /usr/lib64/librt-2.17.so ……

3.3 -l 参数

  执行命令 lsof -l ,输出中使用用户 ID 代替用户名,如下所示:

[root@localhost ~]# lsof -l lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 0 cwd DIR 253,0 236 64 / systemd 1 0 rtd DIR 253,0 236 64 / systemd 1 0 txt REG 253,0   /usr/lib/systemd/systemd systemd 1 0 mem REG 253,0 20112  /usr/lib64/libuuid.so.1.3.0 systemd 1 0 mem REG 253,0   /usr/lib64/libblkid.so.1.1.0 systemd 1 0 mem REG 253,0 90248  /usr/lib64/libz.so.1.2.7 …… 

例子中,USER 列显示的是用户ID而不是用户名。

3.4 -u 参数

  执行命令 lsof -u root,输出 root 用户打开的文件,如下所示:

[root@localhost ~]# lsof -u root lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 253,0 236 64 / systemd 1 root rtd DIR 253,0 236 64 / systemd 1 root txt REG 253,0   /usr/lib/systemd/systemd systemd 1 root mem REG 253,0 20112  /usr/lib64/libuuid.so.1.3.0 systemd 1 root mem REG 253,0   /usr/lib64/libblkid.so.1.1.0 systemd 1 root mem REG 253,0 90248  /usr/lib64/libz.so.1.2.7 …… 

3.5 -c 参数

    执行命令 lsof -c sshd,输出 COMMAND 列包含 sshd 的项,如下所示:

[root@localhost ~]# lsof -c sshd lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 9237 root cwd DIR 253,0 236 64 / sshd 9237 root rtd DIR 253,0 236 64 / sshd 9237 root txt REG 253,0   /usr/sbin/sshd sshd 9237 root mem REG 253,0 61560  /usr/lib64/libnss_files-2.17.so sshd 9237 root mem REG 253,0 68192  /usr/lib64/libbz2.so.1.0.6 sshd 9237 root mem REG 253,0   /usr/lib64/libelf-0.172.so sshd 9237 root mem REG 253,0 19896  /usr/lib64/libattr.so.1.1.0 sshd 9237 root mem REG 253,0 15688  /usr/lib64/libkeyutils.so.1.5 sshd 9237 root mem REG 253,0 62888  /usr/lib64/libkrb5support.so.0.1 …… 

3.6 -d 参数

执行命令 lsof -d 12,输出打开文件描述符 12 的所有项,如下所示:

[root@localhost ~]# lsof -d 12 lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 12u unix 0xffff9e2ab51d6c00 0t0 25988 /run/systemd/private systemd-j 4392 root 12u a_inode 0,10 0 7495 [timerfd] auditd 8686 root 12u a_inode 0,10 0 7495 [eventfd] dbus-daem 8724 dbus 12u unix 0xffff9e2b33fac000 0t0 44865 /run/dbus/system_bus_socket avahi-dae 8785 avahi 12u IPv4 54551 0t0 UDP *:mdns systemd-l 8788 root 12u unix 0xffff9e2bb62cac00 0t0 48301 socket NetworkMa 8794 root 12u netlink 0t0 52627 KOBJECT_UEVENT udisksd 8795 root 12u a_inode 0,10 0 7495 [eventfd] tuned 9236 root 12u a_inode 0,10 0 7495 [eventpoll] ……

3.7 fileName

    执行命令 lsof /usr/lib64/ld-2.17.so,查看打开文件/usr/lib64/ld-2.17.so的进程项,如下所示:

[root@localhost ~]# lsof /usr/lib64/ld-2.17.so lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root mem REG 253,0   /usr/lib64/ld-2.17.so systemd-j 4392 root mem REG 253,0   /usr/lib64/ld-2.17.so lvmetad 4417 root mem REG 253,0   /usr/lib64/ld-2.17.so systemd-u 4429 root mem REG 253,0   /usr/lib64/ld-2.17.so auditd 8686 root mem REG 253,0   /usr/lib64/ld-2.17.so audispd 8688 root mem REG 253,0   /usr/lib64/ld-2.17.so sedispatc 8691 root mem REG 253,0   /usr/lib64/ld-2.17.so lsmd 8712 libstoragemgmt mem REG 253,0   /usr/lib64/ld-2.17.so rpcbind 8713 rpc mem REG 253,0   /usr/lib64/ld-2.17.so abrtd 8715 root mem REG 253,0   /usr/lib64/ld-2.17.so abrt-watc 8716 root mem REG 253,0   /usr/lib64/ld-2.17.so ……

3.8 -i 参数

(1)执行命令 lsof -i 4,输出 TYPE 为 IPv4 的所有项,如下所示:

[root@localhost ~]# lsof -i 4 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 41u IPv4 47143 0t0 TCP *:sunrpc (LISTEN) systemd 1 root 42u IPv4 47144 0t0 UDP *:sunrpc rpcbind 8713 rpc 4u IPv4 47143 0t0 TCP *:sunrpc (LISTEN) rpcbind 8713 rpc 5u IPv4 47144 0t0 UDP *:sunrpc rpcbind 8713 rpc 10u IPv4 44332 0t0 UDP *:netconf-beep avahi-dae 8785 avahi 12u IPv4 54551 0t0 UDP *:mdns avahi-dae 8785 avahi 13u IPv4 54552 0t0 UDP *:36757 chronyd 8893 chrony 1u IPv4 54530 0t0 UDP localhost:323 sshd 9237 root 3u IPv4 55748 0t0 TCP *:ssh (LISTEN) ……

 (2)执行命令 lsof -i UDP 输出协议类型为 UDP 的所有项,如下所示:

[root@localhost ~]# lsof -i UDP COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 42u IPv4 47144 0t0 UDP *:sunrpc systemd 1 root 45u IPv6 47146 0t0 UDP *:sunrpc rpcbind 8713 rpc 5u IPv4 47144 0t0 UDP *:sunrpc rpcbind 8713 rpc 7u IPv6 47146 0t0 UDP *:sunrpc rpcbind 8713 rpc 10u IPv4 44332 0t0 UDP *:netconf-beep rpcbind 8713 rpc 11u IPv6 44333 0t0 UDP *:netconf-beep avahi-dae 8785 avahi 12u IPv4 54551 0t0 UDP *:mdns avahi-dae 8785 avahi 13u IPv4 54552 0t0 UDP *:36757 chronyd 8893 chrony 1u IPv4 54530 0t0 UDP localhost:323 chronyd 8893 chrony 2u IPv6 54531 0t0 UDP localhost:323 dnsmasq 11383 nobody 3u IPv4 61779 0t0 UDP *:bootps dnsmasq 11383 nobody 5u IPv4 61782 0t0 UDP localhost.localdomain:domain kubelet 20062 root 5u IPv4  0t0 UDP localhost.localdomain:43225->gateway:domain dhclient 25719 root 6u IPv4  0t0 UDP *:bootpc

四、总结

    lsof 在查找关于打开文件的相关信息时经常用到,上面对常用命令参数进行了介绍,更详细的内容可以查看 man 手册。

五、参考文献

[1] https://man7.org/linux/man-pages/man8/lsof.8.html

[2] https://www.cnblogs.com/sparkdev/p/10271351.html

[3] Linux 命令 | 常用命令 lsof 详解 + 实例

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/143532.html

(0)
上一篇 2025-05-02 20:20
下一篇 2025-05-02 20:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信