lsof命令详解

说明

​ lsof 是关于文件打开信息的标准输出工具

输出标题

COMMAND: 进程的名称

PID: 进程标识符

USER: 进程所有者

FD: 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

TYPE: 文件类型,如DIR、REG等

DEVICE: 指定磁盘的名称

SIZE/OFF: 文件的大小

NODE: 索引节点(文件在磁盘上的标识)

NAME: 打开文件的确切名称

FD文件描述符:

  • cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录
  • txt:该类型的文件是程序代码,如应用程序二进制文件本身或共享库
  • lnn:library references (AIX)
  • er:FD information error (see NAME column)
  • jld:jail directory (FreeBSD)
  • ltx:shared library text (code and data)
  • mxx:hex memory-mapped type number xx
  • m86:DOS Merge mapped file
  • mem:memory-mapped file
  • mmap:memory-mapped device
  • pd:parent directory
  • rtd:root directory
  • tr:kernel trace file (OpenBSD)
  • v86:VP/ix mapped file
  • 0:表示标准输出
  • 1:表示标准输入
  • 2:表示标准错误

TYPE:文件类型

  • DIR:表示目录
  • CHR:表示字符类型
  • BLK:块设备类型
  • UNIX:UNIX域套接字
  • FIFO:先进先出(FIFO)队列
  • IPv4:网际协议(IP)套接字

选项

lsof [options] filename

默认没有添加选项的情况是输出所有打开的文件信息

  • lsof filename: 显示打开指定文件的所有进程

  • -a: 表示 后面两个参数必须同时满足才输出结果

  • -c string/command: 显示COMMAND列中包含指定字符的进程所有打开的文件

  • -u username: 显示所属user进程打开的文件

  • -g gid: 显示归属gid的进程情况

  • +d /dir_path/: 显示目录下被进程打开的文件

  • +D /dir_path/: 同上,但是会搜索目录下的所有目录,时间相对较长

  • -d FD: 显示指定文件描述符的进程, ‘^mem’即不包括mem类型的FD

  • -n: 不将IP转换为hostname,缺省是不加上-n参数

  • -N: 列出打开的nfs文件

  • -i: 用以显示符合条件的进程情况(列出所有的网络连接)

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

        46 --> IPv4 or IPv6 
        protocol --> TCP or UDP 
        hostname --> Internet host name 
        hostaddr --> IPv4地址 
        service --> /etc/service中的 service name (可以不只一个) 
        port --> 端口号 (可以不只一个) 
    
      lsof -i tcp/udp 
    
      lsof -i tcp:80/udp:25
    
  • +L/-L: 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列。

  • -r t: 间隔t秒打印一次,默认是15秒刷新

  • -p pid:列出指定进程号所打开的文件;

  • -s: 列出打开文件的大小,如果没有大小,则留下空白

posted @ 2023-01-15 10:50  ishmaelwanglin  阅读(385)  评论(0编辑  收藏  举报