lsof
是一个非常强大的命令行工具,用于列出当前系统中打开的文件(如网络套接字和终端)。它能够帮助用户了解哪些进程正在使用特定的文件或资源。以下是 lsof
常用的一些参数及其说明。
-i
用来查看所有网络连接状态信息。
lsof -i
-i
:显示网络相关的信息,例如网络套接字和监听端口。-p <PID>
通过指定进程ID来查看某个进程打开的文件或资源。
lsof -p 12345
-p <PID>
:根据指定的进程ID(12345)列出该进程所使用的资源。-c <command>
通过命令名查找相关的打开文件或资源。
lsof -c sshd
-c <command>
:显示由sshd
命令启动的所有进程的打开文件列表。-a
将多个 lsof
命令的参数合并,进行逻辑与操作。
lsof -i -a -p 12345
-a
:用于执行多个操作参数之间的逻辑与(AND)操作。-F
以行的形式输出结果。这对于脚本使用非常有用。
lsof -F -p 12345
-F <flag>
:指定输出的格式。例如,-F
后面可以跟一个或多个字母(如 n,f,e
),表示只显示进程ID、文件描述符和文件名等特定信息。-d
关闭与指定文件相关的文件描述符。
lsof -d 3
-d <fd>
:关闭或卸载文件描述符(如3)所对应的文件,但通常用于检查文件描述符状态而不实际关闭。-g
用来过滤显示的进程组。
lsof -g 12345
-g <group>
:仅列出指定进程组(如12345)中的进程信息。-P
不将文件名转换为路径名称,保持原始格式显示。
lsof -P -i
-P
:不解析文件描述符或网络端口,直接显示为数字形式。-s
指定输出信息的类型,如文件系统类型、读/写模式等。
lsof -s c:1234567890
-s
:可以配合 c
(inode)或 r/w
指定输出信息的类型。-S
用于指定文件系统类型。
lsof -S /dev/sda1
-S <filesystem>
:显示指定文件系统的打开文件列表,如 /dev/sda1
。通过上述这些参数及其组合使用,可以灵活地进行资源排查和诊断。希望这篇文章能帮助您更好地掌握 lsof
的强大功能!