命令格式

lsof [options] [name]

  • options: 选项

  • name: 文件

注意点:

  • 通常多个选项直接是 or 关系,即同时显示多个选项匹配到的内容,要使用 and 关系,添加选项 -a

  • -r TIME 不断执行lsof命令,间隔时间为TIME

  • -n: 不进行域名解析

  • -P: 显示端口为数字,不是端口名

显示网络信息

-i [46][protocol][@hostname|hostaddr][:service|port]

  • 46

    • 4: IPv4

    • 6: IPv6

  • protocol: TCP|UDP

  • hostname|hostaddr: 主机名或地址

  • :service|port: 端口或者/etc/services中定义的,比如http, ftp

示例1: 列出所有TCP/UDP连接

lsof -i

示例2: 列出本地socket连接

lsof -U

示例3:显示IPv4 TCP连接

lsof -i 4TCP

示例4: 显示IPv4 TCP 22号端口连接

lsof -i 4TCP:22

示例5: 显示IPv4 TCP 地址:0.0.0.0 端口:22的连接

lsof -i 4TCP@0.0.0.0:22

-s [protocol:state]

  • protocol: TCP|UDP

  • state:

    • CLOSED

    • IDLE

    • BOUND

    • LISTEN

    • ESTABLISHED

    • SYN_SENT

    • SYN_RCDV

    • CLOSE_WAIT

    • FIN_WAITE1

    • CLOSING

    • LAST_ACK

    • FIN_WAIT_2

    • TIME_WAIT

    • Unbound

    • Idle

示例1: 显示IPv4 TCP 22号端口 状态为监听的连接

lsof -i 4TCP:22 -s TCP:LISTEN

进程打开的文件

lsof -p PID|^PID

示例1: 进程PID:323打开的文件描述符

lsof -p 323

lsof -c EXECUTEFILE

示例1: 可执行文件bash启动的进程所打开的文件

lsof -c bash

文件被哪些进程打开

`lsof [+d|+D] FILE

  • +d 当前目录下面被打开的文件

  • +D 递归当前目录下被打开的文件

  • FILE: 文件,目录

示例1: test.txt被哪些进程打开

lsof test.txt

示例2:/opt/c/ 目录及子目录被下的所有文件被哪些进程打开

lsof +D /opt/c/

-d FD|FD1-FD2|FD1,FD2,...|^FD1 |txt|mem

文件描述符被哪些进程使用

示例1: 0-2文件描述符被哪些进程使用

lsof -d 0-2

示例2: 显示程序文件

lsof -d txt