云网牛站
所在位置:首页 > Linux命令 > Linux/Unix命令行工具:lsof

Linux/Unix命令行工具:lsof

2017-10-19 22:01:09作者:Linux编辑稿源:topspeedsnail

Linux下lsof列出所有进程打开的文件信息。这个文件可以是一个普通文件、一个目录、一个NFS文件、块特别文件、字符特殊文件、一个共享库。因为Linux上的几乎所有东西都看成文件,所以lsof命令的应用范围还是很广的。

 

列出所有打开的文件

# lsof

所有进程打开的所有文件信息。

 

查看一个文件被哪个进程使用

# lsof /path/to/file

只可以指定多个文件:

# lsof /path/to/file1 /path/to/file2

 

递归的在一个目录中查找正在使用(打开)的文件

# lsof +D /usr/lib

使用grep要快一点:

# lsof | grep '/usr/lib'

 

列出一个用户打开的所有文件

# lsof -u username

-u参数指定要查询的用户名。

你也可以同时查找多个用户:

# lsof -u username,root   或 # lsof -u username -u root

 

列出一个进程打开的文件

# lsof -c apache

-c参数指定程序名

它也可以同时查询多个进程:

# lsof -c apache -c python

 

列出某个进程或(or)用户打开的文件

# lsof -u username -c apache

 

列出某个进程和某个用户共同打开的文件

# lsof -a -u pkrumins -c bash

 

列出除了root用户外的其他所有用户打开的文件

# lsof -u ^root

 

指定进程PID打开的文件

# lsof -p 1

 

同样可以同时指定多个进程PID:

# lsof -p 111,112,113

 

列出除了某个进程PID的其他所有进程打开的文件

# lsof -p ^1

 

列出所有网络连接

# lsof -i

 

列出所有TCP网络连接

# lsof -i tcp

 

列出所有UDP网络连接

# lsof -i udp

 

查看谁在使用指定端口

# lsof -i :25

 

可以用服务名称:

# lsof -i :smtp

 

查看谁在使用TCP/UDP指定端口

# lsof -i tcp:80

# lsof -i udp:53

 

查看一个用户的网络连接活动

# lsof -a -u root -i

 

列出所有NFS文件

# lsof -N

 

列出 UNIX Domain Socket

# lsof -U

 

列出指定文件群组进程的所有文件

# lsof -g 1234

 

列出指定文件描述符打开的文件

# lsof -d 2

 

可以指定文件描述符的范围:

# lsof -d 0-2

-d参数还有其他特殊类型如 mem、txt。

 

列出使用某种资源的进程PID

# lsof -t -i

上面命令列出了所有使用网络的进程PID,用它可以轻松的杀死所有使用网络的进程:

# kill -9 `lsof -t -i`

Linux命令子频道
精选文章
热门文章