lsof 命令是什么?
可以列出被程序所开启的档案的资讯。被开启的档案可以是
1. 普通的档案,2. 目录  3. 互联网档案系统的档案,4. 字元装置档案  5.(函式) 共享库  6. 管道,命名管道 7. 符号连结
8. 底层的 socket 字流,互联网 socket,unix 域名 socket
9. 在 linux 里面,大部分的东西都是被当做档案的….. 还有其他很多
怎样使用 lsof
这里主要用案例的形式来介绍 lsof 命令的使用
1. 列出所有开启的档案:
lsof
备注: 如果不加任何引数,就会开启所有被开启的档案,建议加上一下引数来具体定位
2. 检视谁正在使用某个档案
lsof   /filepath/file
3. 递回检视某个目录的档案资讯
lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和档案都会被列出
4. 比使用+D 选项,遍历检视某个目录的所有档案资讯 的方法
lsof | grep ‘/filepath/filepath2/’
5. 列出某个使用者开启的档案资讯
lsof  -u username
备注: -u 选项,u 其实是 user 的缩写
6. 列出某个程式所开启的档案资讯
lsof -c mysql
备注: -c 选项将会列出所有以 mysql 开头的程式的档案,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字元了
7. 列出多个程式多开启的档案资讯
lsof -c mysql -c apache
8. 列出某个使用者以及某个程式所开启的档案资讯
lsof -u test -c mysql
9. 列出除了某个使用者外的被开启的档案资讯
lsof   -u ^root
备注:^这个符号在使用者名称之前,将会把是 root 使用者开启的程序不让显示
10. 通过某个程序号显示该进行开启的档案
lsof -p 1
11. 列出多个程序号对应的档案资讯
lsof -p 123,456,789
12. 列出除了某个程序号,其他程序号所开启的档案资讯
lsof -p ^1
13 . 列出所有的互联网连线
lsof -i
14. 列出所有 tcp 互联网连线资讯
lsof  -i tcp
15. 列出所有 udp 互联网连线资讯
lsof  -i udp
16. 列出谁在使用某个埠
lsof -i :3306
17. 列出谁在使用某个特定的 udp 埠
lsof -i udp:55
特定的 tcp 埠
lsof -i tcp:80
18. 列出某个使用者的所有活跃的互联网埠
lsof  -a -u test -i
19. 列出所有互联网档案系统
lsof -N
20. 域名 socket 档案
lsof -u
21. 某个使用者组所开启的档案资讯
lsof -g 5555
22. 根据档案描述列出对应的档案资讯
lsof -d description(like 2)
23. 根据档案描述范围列出档案资讯
lsof -d 2-3