lsof(list open files)是一个列出当前系统打开文件的工具。
lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
lsof -R
COMMAND PID TID PPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 0 root cwd DIR 8,1 4096 2 /
systemd 1 0 root rtd DIR 8,1 4096 2 /
systemd 1 0 root txt REG 8,1 1577232 399597 /lib/systemd/systemd
systemd 1 0 root mem REG 8,1 18976 400022 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd 1 0 root mem REG 8,1 262408 399830 /lib/x86_64-linux-gnu/libblkid.so.1.1.0
systemd 1 0 root mem REG 8,1 14608 399862 /lib/x86_64-linux-gnu/libdl-2.23.so
systemd 1 0 root mem REG 8,1 456632 399967 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
systemd 1 0 root mem REG 8,1 1868984 399838 /lib/x86_64-linux-gnu/libc-2.23.so
lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
参考
1、Linux 利用lsof命令恢复删除的文件
2、linux lsof详解
3、linux lsof命令详解及实例
4、lsof命令
5、使用 lsof 查找打开的文件
6、Linux 命令神器:lsof 入门
7、您应该知道的UNIX工具系列之3:lsof