目录:
- 介绍
- 所需权限
- 格式
- 功能
- 参数
- 案例
lsof(list open files)是一个列出当前系统打开文件的工具。
权限
默认只有root用户可以执行lsof命令、普通用户会看到
1 | mvn 31261 nobody cwd unknown /proc/31261/cwd (readlink: Permission denied) |
格式
1 | lsof [参数][文件] |
功能
可以查看的文件包含:
- 普通文件
- 目录
- 网络文件系统的文件
- 字符或者设备文件
- (函数)共享库
- 管道,命名管道
- 符号连接
- 网络文件(例如:NFS file、Socket、unix域名的socket)
- 其他类型文件,等等
参数
参数 | 描述 |
---|---|
-a | AND selections (OR) |
-c <进程名称> | 列出指定<进程名>所打开的文件 |
-g | 列出 GID号的所有进程所打开文件 |
-d <文件号> | 列出占用该文件的进程 |
+d<目录> | 列出目录下被打开的文件 |
+D<目录> | 递归列出目录下被打开的文件 |
-n<目录> | 列出使用NFS的文件 |
- i<条件> | 列出符合条件的进程。 |
-p<进程号> | 列出指定进程号所打开的文件 |
-u | 列出UID号进程所打开的文件 |
-h | 显示帮助信息 |
-v | 显示版本信息 |
输出内容
列字段
列名 | 含义 |
---|---|
COMMAND | 进程的名称 |
PID | 进程号 |
TID | 线程号 |
USER | 进程所有者 |
FD | 文件描述符、应用程序通过文件描述符识别该文件。如cwd、txt等 |
TYPE | 文件类型、如DIR、REG等 |
DEVICE | 指定磁盘的名称 |
SIZE | 文件的大小 |
NODE | 索引节点(文件在磁盘上的标识) |
NAME | 打开文件的确切名称 |
文件描述符(FD)
标识 | 描述 |
---|---|
cwd | 标识current work dirctory ,应用程序当前工作目录,这是该程序的启动目录,除非它本身对这个目录进行更改 |
txt | 该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序 |
lnn | library references (AIX) |
er | FD information error (see NAME column) |
jId | 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 | 标准错误 |
**一般标准输出、错误、输入后面跟着文件状态模式:r、w、u、等
- u: 读写模式
- r:只读模式
- w:只写模式
- 空格:unknow、且没有锁定
- -:unknow、且被锁定
同时在文件状态模式后面还有相关的锁:
- N:for a Solaris NFS lock of unknown type;
- r:for read lock on part of the file;
- R:for a read lock on the entire file;
- w:for a write lock on part of the file;(文件的部分写锁)
- W:for a write lock on the entire file;(整个文件的写锁)
- u:for a read and write lock of any length;
- U:for a lock of unknown type;
- x:for an SCO OpenServer Xenix lock on part of the file;
- X:for an SCO OpenServer Xenix lock on the entire file;
- space:if there is no lock.
常见的文件类型:
- DIR:表示目录
- CHR:表示字符类型
- BLK:块设备类型
- UNIX: UNIX 域套接字
- FIFO:先进先出 (FIFO) 队列
- IPv4:网际协议 (IP) 套接字
案例
文件案例
1 | 显示开启文件abc.txt的进程 |
网络案例:
1 | lsof -i[46][protocol][@hostname|hostaddr][:service|port] |