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