lsof使用说明

概述

lsof(list open files)是一个查看当前系统文件的工具。
Linux环境下,任何事物都以文件的形式存在,通过文件可以访问各种数据。
lsof可以打开的文件包括但不限于如下类型:

  • 普通文件
  • 目录
  • 网络文件系统的文件

lsof命令参数说明及使用例子

无参数

lsof | more

  • 输出列信息说明
命令 说明
COMMAND 进程名称
PID 进程标识符
USER 进程所有者
FD 文件描述符
TYPE 文件类型
DEVICE 指定磁盘名称
SIZE 文件大小
NODE 索引节点(文件在磁盘上的标识)
NAME 打开文件的确切名称
  • FD详述
    应用程序通过文件描述符识别该文件

    • cwd:表示current work dirctory,即应用程序当前目录(应用程序启动的目录)
    • txt: 程序代码,应用程序二进制文件本身或共享库
  • TYPE详述

    • DIR: 目录
    • CHR: 字符类型
    • IPv4: 网际协议(IP)套接字
    • FIFO: 先进先出(FIFO)队列

查看某个文件相关的进程

lsof /bin/bash

列出某个用户打开的文件信息

  • lsof -u username
    使用-u选项,u是user的缩写
lsof -u biby | more

列出某个程序进程所打开的文件信息

可以使用以下两种方式

lsof - c mysql
lsof | grep mysql

列出某个用户以及某个进程所打开的文件的信息

lsof -u biby -c mysql

通过某个进程号显示该进程打开的文件

lsof -i tcp:9035

列出所有网络链接

lsof -i

列出所有tcp网络连接信息

lsof -i tcp

列出是谁在使用端口

lsof -i :3306

列出某个用户的所有活跃的网络端口

lsof -a -u biby -i

根据文件描述列出对应的文件信息

  • lsof -d description(like 2)
    0表示标准输入,1表示标准输出,2表示标准错误
    大多数应用程序所打开文件的FD都是从3开始
lsof -d 3 | grep Google

列出被某个进程所打开的所有IPv4 network files

lsof -i 4 -a -p 1231

列出连接主机10.1.2.x上端口为20,21,80,22相关的所有文件信息,且每隔3秒重复执行

lsof -i @10.1.2.x:20,21,80,22 -r 3

参考

lsof 一切皆文件

原文地址:https://www.cnblogs.com/biby/p/15338265.html