Linux命令:lsof

lsof是一个用于列出系统中打开文件的命令,包括进程、用户、网络连接等信息。它可以显示无参数、按进程ID、用户、命令、文件描述符、文件名和网络协议等条件过滤的结果。该工具在系统管理和故障排查中非常有用。
摘要由CSDN通过智能技术生成

目录

一、理论

1.lsof

二、实验

1.无参数

2.-p 参数

3.-l 参数

4. -u 参数

5.-c 参数

6.-d 参数

7.fileName

8. -i 参数


一、理论

1.lsof

(1)概念

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

(2)常用参数

表1 lsof常用参数

参数功能
-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)无参数执行

执行 lsof

其中,每列参数的含义:

表2 lsof命令每列参数含义

参数含义
COMMAND命令名称
 PID进程ID
TID 线程ID,如果为空代表列出的是进程
TASKCMD任务名称,通常与 COMMAND 相同
USER用户ID号或登录名
FD文件描述符
TYPE与文件关联结点的类型
DEVICE设备号
SIZE/OFF文件大小/偏移量,以字节为单位
NODE 文件结点
NAME文件挂载点和文件所在的系统

二、实验

1.无参数

 在终端中直接执行 lsof 命令。

[root@centos2 /]# lsof 
COMMAND    PID  TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd      1                root  cwd       DIR              253,0      4096         64 /
systemd      1                root  rtd       DIR              253,0      4096         64 /
systemd      1                root  txt       REG              253,0   1523568   68230830 /usr/lib/systemd/systemd
systemd      1                root  mem       REG              253,0     20040      90151 /usr/lib64/libuuid.so.1.3.0
systemd      1                root  mem       REG              253,0    261336     471232 /usr/lib64/libblkid.so.1.1.0
systemd      1                root  mem       REG              253,0     90664      90130 /usr/lib64/libz.so.1.2.7
systemd      1                root  mem       REG              253,0    157424      90237 /usr/lib64/liblzma.so.5.2.2
systemd      1                root  mem       REG              253,0     23968      90359 /usr/lib64/libcap-ng.so.0.0.0
systemd      1                root  mem       REG              253,0     19888      90634 /usr/lib64/libattr.so.1.1.0
……

2.-p 参数

执行命令 lsof -p 1,列出 1号 进程打开的文件。

[root@centos2 /]# lsof -p 1
COMMAND PID USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd   1 root  cwd       DIR              253,0     4096         64 /
systemd   1 root  rtd       DIR              253,0     4096         64 /
systemd   1 root  txt       REG              253,0  1523568   68230830 /usr/lib/systemd/systemd
systemd   1 root  mem       REG              253,0    20040      90151 /usr/lib64/libuuid.so.1.3.0
systemd   1 root  mem       REG              253,0   261336     471232 /usr/lib64/libblkid.so.1.1.0
systemd   1 root  mem       REG              253,0    90664      90130 /usr/lib64/libz.so.1.2.7
systemd   1 root  mem       REG              253,0   157424      90237 /usr/lib64/liblzma.so.5.2.2
systemd   1 root  mem       REG              253,0    23968      90359 /usr/lib64/libcap-ng.so.0.0.0
systemd   1 root  mem       REG              253,0    19888      90634 /usr/lib64/libattr.so.1.1.0
systemd   1 root  mem       REG              253,0    19776      64683 /usr/lib64/libdl-2.17.so
systemd   1 root  mem       REG              253,0   402384      90110 /usr/lib64/libpcre.so.1.2.0
systemd   1 root  mem       REG              253,0  2127336      64677 /usr/lib64/libc-2.17.so
systemd   1 root  mem       REG              253,0   144792      64703 /usr/lib64/libpthread-2.17.so
systemd   1 root  mem       REG              253,0    88720         84 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
systemd   1 root  mem       REG              253,0    44448      64707 /usr/lib64/librt-2.17.so
systemd   1 root  mem       REG              253,0   269416     471397 /usr/lib64/libmount.so.1.1.0
systemd   1 root  mem       REG              253,0    91784      91082 /usr/lib64/libkmod.so.2.2.10
systemd   1 root  mem       REG              253,0   122984      90361 /usr/lib64/libaudit.so.1.0.0
systemd   1 root  mem       REG              253,0    61672     550830 /usr/lib64/libpam.so.0.83.1
systemd   1 root  mem       REG              253,0    20032      90636 /usr/lib64/libcap.so.2.22
……

3.-l 参数

执行命令 lsof -l ,输出中使用用户 ID 代替用户名。USER 列显示的是用户ID而不是用户名。

[root@centos2 /]# lsof -l 
COMMAND    PID  TID     USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd      1             0  cwd       DIR              253,0      4096         64 /
systemd      1             0  rtd       DIR              253,0      4096         64 /
systemd      1             0  txt       REG              253,0   1523568   68230830 /usr/lib/systemd/systemd
systemd      1             0  mem       REG              253,0     20040      90151 /usr/lib64/libuuid.so.1.3.0
systemd      1             0  mem       REG              253,0    261336     471232 /usr/lib64/libblkid.so.1.1.0
systemd      1             0  mem       REG              253,0     90664      90130 /usr/lib64/libz.so.1.2.7
systemd      1             0  mem       REG              253,0    157424      90237 /usr/lib64/liblzma.so.5.2.2
systemd      1             0  mem       REG              253,0     23968      90359 /usr/lib64/libcap-ng.so.0.0.0
systemd      1             0  mem       REG              253,0     19888      90634 /usr/lib64/libattr.so.1.1.0
……

4. -u 参数

执行命令 lsof -u root,输出 root 用户打开的文件。

[root@centos2 /]# lsof -u root 
COMMAND    PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd      1 root  cwd       DIR              253,0      4096         64 /
systemd      1 root  rtd       DIR              253,0      4096         64 /
systemd      1 root  txt       REG              253,0   1523568   68230830 /usr/lib/systemd/systemd
systemd      1 root  mem       REG              253,0     20040      90151 /usr/lib64/libuuid.so.1.3.0
systemd      1 root  mem       REG              253,0    261336     471232 /usr/lib64/libblkid.so.1.1.0
systemd      1 root  mem       REG              253,0     90664      90130 /usr/lib64/libz.so.1.2.7
systemd      1 root  mem       REG              253,0    157424      90237 /usr/lib64/liblzma.so.5.2.2
systemd      1 root  mem       REG              253,0     23968      90359 /usr/lib64/libcap-ng.so.0.0.0
systemd      1 root  mem       REG              253,0     19888      90634 /usr/lib64/libattr.so.1.1.0
……

5.-c 参数

执行命令 lsof -c sshd,输出 COMMAND 列包含 sshd 的项。

[root@centos2 /]#  lsof -c sshd 
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
sshd    1510 root  cwd    DIR              253,0     4096       64 /
sshd    1510 root  rtd    DIR              253,0     4096       64 /
sshd    1510 root  txt    REG              253,0   853024  2450038 /usr/sbin/sshd
sshd    1510 root  mem    REG              253,0    62184    64695 /usr/lib64/libnss_files-2.17.so
sshd    1510 root  mem    REG              253,0    68192    90241 /usr/lib64/libbz2.so.1.0.6
sshd    1510 root  mem    REG              253,0    99944    90322 /usr/lib64/libelf-0.168.so
sshd    1510 root  mem    REG              253,0    19888    90634 /usr/lib64/libattr.so.1.1.0
sshd    1510 root  mem    REG              253,0    15688    90389 /usr/lib64/libkeyutils.so.1.5
sshd    1510 root  mem    REG              253,0    58728   409352 /usr/lib64/libkrb5support.so.0.1
……

6.-d 参数

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

[root@centos2 /]#  lsof -d 12
COMMAND    PID   USER   FD      TYPE             DEVICE SIZE/OFF  NODE NAME
systemd      1   root   12u     unix 0xffff8800753a7400      0t0 11936 /run/systemd/private
systemd-j  635   root   12u      REG               0,19  8388608  1396 /run/log/journal/3144c1ec002b4a5ba24a4201fce78a36/system.journal
auditd     941   root   12u  a_inode                0,9        0  7017 [eventfd]
systemd-l  969   root   12u     unix 0xffff88007355c400      0t0 18886 socket
dbus-daem  970   dbus   12u     unix 0xffff88007355e000      0t0 18906 socket
avahi-dae  976  avahi   12u     IPv4              20540      0t0   UDP *:mdns 
NetworkMa 1073   root   12u  netlink                         0t0 22044 KOBJECT_UEVENT
tuned     1513   root   12w      CHR              10,61      0t0  1326 /dev/cpu_dma_latency
cupsd     1514   root   12u     IPv4              25922      0t0   TCP localhost:ipp (LISTEN)
libvirtd  1593   root   12u     unix 0xffff8800760cec00      0t0 27840 /var/run/libvirt/libvirt-admin-sock
gdm       1597   root   12u     unix 0xffff880068a13400      0t0 30006 @/tmp/dbus-wO56ln9Y
dnsmasq   1794   root   12r     FIFO                0,8      0t0 28702 pipe
X         1965   root   12u      CHR              10,63      0t0  1026 /dev/vga_arbiter
gnome-ses 1985    gdm   12u     unix 0xffff880064964000      0t0 30154 /tmp/.ICE-unix/1985
dbus-daem 1992    gdm   12u     unix 0xffff880064980000      0t0 31043 @/tmp/dbus-8WzejNFdMr
dbus-daem 2003    gdm   12u     unix 0xffff88005a2ef800      0t0 32670 @/tmp/dbus-MWHhpKb4yc
gnome-she 2016    gdm   12u     unix 0xffff880064984c00      0t0 31045 socket
pulseaudi 2039    gdm   12r  a_inode                0,9        0  7017 inotify
ibus-daem 2057    gdm   12u     unix 0xffff88005481d400      0t0 33800 @/tmp/dbus-7rkWWgJC
gnome-set 2089    gdm   12r  a_inode                0,9        0  7017 inotify
colord    2102 colord   12u     unix 0xffff88005a2b8000      0t0 33005 socket

7.fileName

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

[root@centos2 /]#  lsof /usr/lib64/ld-2.17.so
COMMAND    PID           USER  FD   TYPE DEVICE SIZE/OFF  NODE NAME
systemd      1           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
systemd-j  635           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
lvmetad    657           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
systemd-u  664           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
auditd     941           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
audispd    943           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
sedispatc  945           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
irqbalanc  968           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
systemd-l  969           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
dbus-daem  970           dbus mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
rtkit-dae  975          rtkit mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
avahi-dae  976          avahi mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
lsmd       977 libstoragemgmt mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
rsyslogd   978           root mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
polkitd    979        polkitd mem    REG  253,0   164264 36574 /usr/lib64/ld-2.17.so
……

8. -i 参数

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

[root@centos2 /]#  lsof -i 4
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd      1   root   41u  IPv4  18403      0t0  TCP *:sunrpc (LISTEN)
avahi-dae  976  avahi   12u  IPv4  20540      0t0  UDP *:mdns 
avahi-dae  976  avahi   13u  IPv4  20541      0t0  UDP *:60660 
rsyslogd   978   root    3u  IPv4  20409      0t0  TCP *:shell (LISTEN)
chronyd   1015 chrony    1u  IPv4  21596      0t0  UDP localhost:323 
sshd      1510   root    3u  IPv4  24985      0t0  TCP *:ssh (LISTEN)
cupsd     1514   root   12u  IPv4  25922      0t0  TCP localhost:ipp (LISTEN)
dnsmasq   1793 nobody    3u  IPv4  28688      0t0  UDP *:bootps 

(2)执行命令 lsof -i UDP 输出协议类型为 UDP 的所有项。

[root@centos2 /]#  lsof -i UDP
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
avahi-dae  976  avahi   12u  IPv4  20540      0t0  UDP *:mdns 
avahi-dae  976  avahi   13u  IPv4  20541      0t0  UDP *:60660 
chronyd   1015 chrony    1u  IPv4  21596      0t0  UDP localhost:323 
chronyd   1015 chrony    2u  IPv6  21597      0t0  UDP localhost:323 
dnsmasq   1793 nobody    3u  IPv4  28688      0t0  UDP *:bootps 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值