1.概述
lsof即列出打开文件(lists openfiles),Linux一切都是文件。
当给它传递选项时,默认行为是对结果进行“或”运算。因此,如果用-i来拉出一个端口列表,同时又用-p来拉出一个进程列表,那么默认情况下你会获得两者的结果。
感觉lsof是linux中功能最多的命令了。
2.基本操作
⑴最常用用法,查看某个进程打开文件目录,以定位IO问题
lsof -p 进程号
⑵查看正在使用某个文件的进程
[work(caibin)@bjdhj-63-189 logs]$ lsof hugopenapi_es.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1372 work 208w REG 8,6 8636 568723265 hugopenapi_es.log
- FD 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
- TYPE 文件类型,主要分为:
- REG 常规文件
- DIR 目录
- CHR 表示字符类型
- BLK 块设备
- UNIX UNIX 域套接字
- FIFO 先进先出 (FIFO) 队列
- IPV 网际协议 (IP) 套接字
- DEVICE 指定磁盘的名称
- SIZE/OFF 文件的大小
- NODE 索引节点(文件在磁盘上的标识)