lsof命令详解
说明
lsof 是关于文件打开信息的标准输出工具
输出标题
COMMAND: 进程的名称
PID: 进程标识符
USER: 进程所有者
FD: 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE: 文件类型,如DIR、REG等
DEVICE: 指定磁盘的名称
SIZE/OFF: 文件的大小
NODE: 索引节点(文件在磁盘上的标识)
NAME: 打开文件的确切名称
FD文件描述符:
cwd
:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录txt
:该类型的文件是程序代码,如应用程序二进制文件本身或共享库lnn
:library references (AIX)er
:FD information error (see NAME column)jld
:jail directory (FreeBSD)ltx
:shared library text (code and data)mxx
:hex memory-mapped type number xxm86
:DOS Merge mapped filemem
:memory-mapped filemmap
:memory-mapped devicepd
:parent directoryrtd
:root directorytr
:kernel trace file (OpenBSD)v86
:VP/ix mapped file0
:表示标准输出1
:表示标准输入2
:表示标准错误
TYPE:文件类型
DIR
:表示目录CHR
:表示字符类型BLK
:块设备类型UNIX
:UNIX域套接字FIFO
:先进先出(FIFO)队列IPv4
:网际协议(IP)套接字
选项
lsof [options] filename
默认没有添加选项的情况是输出所有打开的文件信息
-
lsof filename: 显示打开指定文件的所有进程
-
-a: 表示 后面两个参数必须同时满足才输出结果
-
-c string/command: 显示COMMAND列中包含指定字符的进程所有打开的文件
-
-u username: 显示所属user进程打开的文件
-
-g gid: 显示归属gid的进程情况
-
+d /dir_path/: 显示目录下被进程打开的文件
-
+D /dir_path/: 同上,但是会搜索目录下的所有目录,时间相对较长
-
-d FD: 显示指定文件描述符的进程, ‘^mem’即不包括mem类型的FD
-
-n: 不将IP转换为hostname,缺省是不加上-n参数
-
-N: 列出打开的nfs文件
-
-i: 用以显示符合条件的进程情况(列出所有的网络连接)
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不只一个) port --> 端口号 (可以不只一个)
lsof -i tcp/udp lsof -i tcp:80/udp:25
-
+L/-L: 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列。
-
-r t: 间隔t秒打印一次,默认是15秒刷新
-
-p pid:列出指定进程号所打开的文件;
-
-s: 列出打开文件的大小,如果没有大小,则留下空白