lsof可以列出某个进程打开的所有文件信息,例如:普通的文件、目录、NFS文件、块文件、字符文件、共享库、常规管道、命名管道、符号链接、Socket流、网络Socket、UNIX域Socket,以及其它更多类型。含Unix系统“一切皆文件”的重要哲学思想。
lsof [options] filename
lsof /path/to/somefile :显示打开指定文件的所有进程之列表
lsof -c string :显示其COMMAND列中包含指定字符(string)的进程所有打开的文件; 此选项可以重复使用,以指定多个模式;
lsof -p PID :查看该进程打开了哪些文件;进程号前可以使用脱字符“^”取反;
lsof -u USERNAME :显示指定用户的进程打开的文件;用户名前可以使用脱字符“^”取反,如“lsof -u ^root”则用于显示非root用户打开的所有文件;
lsof -g GID :显示归属gid的进程情况
lsof +d /DIR/ :显示指定目录下被进程打开的文件
lsof +D /DIR/ :基本功能同上,但lsof会对指定目录进行递归查找,注意这个参数要比 grep版本慢
lsof -a :按“与”组合多个条件,如lsof -a -c apache -u apache
lsof -N :列出所有NFS(网络文件系统)文件
lsof -d FD :显示指定文件描述符的相关进程;也可以为描述符指定一个范围,如
0-2 表示0,1,2三个文件描述符
lsof -d mem : 列出所有内存映射文件;
lsof -d mmap :显示所有内存映射设备;
lsof -d txt :列出所有加载在内存中并正在执行的进程,包含code和data;
lsof -d cwd :正在访问当前目录的进程列表;
lsof -n :不反解IP至HOSTNAME
lsof -i :用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46:IPv4或IPv6
protocol:TCP or UDP
hostname:Internet host name
hostaddr:IPv4地址
service:/etc/service中的服务名称(可以不只一个)
port:端口号 (可以不只一个)
查看22端口现在运行的情况
lsof -i :22
转载于:https://blog.51cto.com/nineep/1846257