首页 > 编程笔记 > Linux命令 阅读:17

Linux lsof命令的用法(附带实例)

Linux 的 lsof 命令来自英文词组 list opened files 的缩写,其功能是查看文件的进程信息。

由于 Linux 系统中的一切都是文件,因此使用 lsof 命令查看进程打开的文件,或是查看文件的进程信息,都能帮助用户很好地了解相关服务的运行状态,是一个不错的系统监视工具。

lsof 命令的语法格式如下:
lsof 参数 文件名
常用参数见下表:

选项 描述 选项 描述
-a 显示与打开的文件相关的进程 -o 显示文件偏移量
-c 显示指定进程所打开的文件 -p 显示指定进程号所打开的文件
-d 显示占用该文件的进程 -R 显示父进程 ID
-g 显示 GID 号进程的详细信息 -u 显示 UID 号进程的详细信息
-h 显示帮助信息 -v 显示版本信息
-i 显示符合条件的进程 +d 显示目录下被打开的文件
-n 显示使用 NFS 的文件 +D 递归处理所有子文件
-N 显示 NFS 文件列表    

【实例 1】查看当前系统中全部文件与进程的对应信息:
[root@clinux ~]# lsof
COMMAND   PID   TID TASKCMD  USER   FD     TYPE     DEVICE SIZE/OFF      NODE NAME
systemd     1     root  cwd      DIR               253,0      224       128 /
systemd     1     root  rtd      DIR               253,0      224       128 /
………………省略部分输出信息………………

【实例 2】显示指定目录中被调用的文件信息:
[root@clinux ~]# lsof +d /root
COMMAND    PID USER  FD TYPE DEVICE SIZE/OFF     NODE NAME
dbus-daem 2158 root cwd  DIR  253,0     4096 33575041 /root
gdm-wayla 2161 root cwd  DIR  253,0     4096 33575041 /root
gnome-ses 2164 root cwd  DIR  253,0     4096 33575041 /root
gnome-she 2223 root cwd  DIR  253,0     4096 33575041 /root
gvfsd     2240 root cwd  DIR  253,0     4096 33575041 /root
………………省略部分输出信息………………

【实例 3】递归显示指定目录中全部被调用的文件信息:
[root@clinux ~]# lsof +D /root
COMMAND    PID USER   FD  TYPE DEVICE SIZE/OFF   NODE NAME
pulseaudi 2147 root  mem   REG  253,0      696 781661
/root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-card-database.tdb
pulseaudi 2147 root  mem   REG  253,0    12288 781660
/root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-stream-volumes.tdb
pulseaudi 2147 root  mem   REG  253,0     8192 781659
/root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-device-volumes.tdb
………………省略部分输出信息………………

相关文章