简介
    List Open Files的缩写。顾名思义,它用来查看系统中进程打开了哪些文件;因为Linux几乎所有的设备都可以看成是文件,所以lsof经常也可以用来查看管道,sockets的使用状态。列出当前系统打开文件的工具
    仅持当前用户权限
    常见用法
    查看当前所有的活跃连接
    lsof -i
    仅能查看当前用户权限下的端口开放情况
    image.png
    查看指定进程打开的文件
    lsof -p pid
    查看指定端口被哪个进程占用
    lsof -i :port
    netstat -an |grep tcp 查看所有tcp连接包括LISTEN状态
    netstat -an |grep ESTABLISHED 查看所有正在连接中的tcp连接

    如果需要统计tcp连接每种状态的连接的数量
    netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

    查找打开文件最多的信息如下:
    lsof -n|awk ‘{print $2}’|sort|uniq -c |sort -nr|more

    查看各个进程打开的文件数据量:
    lsof -n |awk ‘{print $2} “ “ $3’|sort|uniq -c |sort -nr|more

    lsof -u test 用户打开的文件
    lsof -p pid 进程号为pid的进程打开的文件
    lsof -c pro_name 进程名开头为pro_name打开的文件
    lsof -i tcp 列出所有的tcp连接
    lsof -i udp 列出所有的udp连接
    lsof -i tcp:4600 列出占用4600端口的tcp连接
    lsof -i udp:4600 列出占用4600端口的udp连接
    lsof -i :4600 列出占用4600端口连接

    lsof(8): open files - Linux man page
    Manpage of LSOF