业界尊称lsof为神器,足以可见lsof
的功能强大…
1 简介
lsof
是list open file
的简称,用于列出系统中打开的文件。
什么是文件?
文件就是字节序列,仅此而已。每个I/O设备,包括磁盘、键盘、显示器,甚至网络,都可以看做是文件。
正因为linux中几乎所有的都可以抽象成文件,所以lsof
才表现强大。
2 用法
1 | lsof -help |
1 | lsof |
COMMAND:进程名称。
PID:进程ID。
USER:进程用户。
FD:文件描述符。如:cwd当前工作目录,mem内存映射文件,mmap内存映射设备,txt应用文本(代码和数据)。其次数值表示应用程序的文件描述符,这是打开文件时返回的一个整数,u表示该文件处于读取和写入模式,®为只读,(w)为只写模式,大写W为对整个文件的写锁权限,初始打开一个应用程序时有具有三个文件描述符,从0到2分别表示标准输入,输出和错误输出,所以大多数应用程序打开的文件的PD都是从3开始的。
TYPE:表示文件的类型,如,REG普通文件,DIR目录,CHR字符文件,BLK设备文件,UNIX为Unix套接字,FIFO先进先出队列,IPv4网际协议IP套接字。
DEVICE:文件所在的设备。
SIZE/OFF:文件的大小。
NODE:索引节点,文件在磁盘的标识符。
NAME:打开文件的名称。
3 常用方法
1 查看打开的所有文件:
1 | lsof | more |
2 查看打开指定文件的打开信息:
1 | lsof <file> |
3 查看指定目录下被打开的所有文件的信息:
1 | lsof +D <dir> |
4 查看指定用户或用户组打开的文件信息:
1 | lsof -u <username> |
5 查看指定应用程序打开的文件信息:
1 | lsof -c <servername> |
6 查看指定用户和应用程序打开的文件信息:
1 | lsof -u <username> -c <servername> |
7 查看不是指定用户打开的文件信息:
1 | lsof -u <^username> |
8 查看指定进程号打开的文件信息:
1 | lsof -p <pid> |
9 查看网络链接:
1 | 查看所有网络连接 |
10 查看所有网络文件系统:
1 | lsof -N |
本文链接: https://stefanxiepj.github.io/archives/2dbf7bb4.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
![知识共享许可协议](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)