什么是lsof
lsof代表列表打开文件。
如果把lsof命令看作“ls + of”,其中ls代表列表,并且代表打开的文件,则很容易记住lsof命令。
Linux中的lsof命令在其输出中显示由进程打开的文件的信息如果要快速查看特定进程(或所有进程)已经打开的文件的名称,则可以使用lsof命令。打开的文件可以是常规文件,目录,库,块特殊文件,字符特殊文件,正在执行的文本引用,甚至是流或网络文件。
下面是lsof命令的一些简单应用
Lsof 显现所有打开文件的信息
直接输入lsof
显示用户特定的文件信息
Lsof -u root 、 lsof -u wang
根据其Internet地址列出文件。这可以使用-I命令行选项完成筛选ipv4、ipv6 、 tcp 、udp等
Lsof -i 4(或者6)
lsof -i tcp(或者udp)
根据进程标识(PID)号显示打开的文件。这可以通过使用-p命令行选项来完成。
你也可以在输出前加上^符号来排除特定的PID 。要排除特定的PID,可以运行以下命令:
例如:lsof -p ^ 1
ID为1的进程被排除在列表之外。
列出已打开特定文件的进程的ID。这可以通过使用-t命令行选项来完成
已经打开文件cli.c
限制lsof到一个特定的目录
可以搜索所有打开的目录实例(包括它包含的所有文件和目录)。可以使用+D命令行选项访问此功能。
列出所有Internet和x.25(HP-UX)网络文件
Lsof -i
根据端口范围列出打开的文件
显示端口1-1024的打开文件,请使用以下命令:
$ lsof-i:1-1024
lsof列表进程的父PID
强制lsof在输出中列出父进程标识(PPID)编号。有问题的选项是-R。
$lsof -R
要获取特定PID的PPID信息,可以运行以下命令:
$lsof -p [PID] -R
例如:
$lsof -p 3 -R