Linux 下 lsof 命令的使用总结
查看端口相关
# 显示所有打开的端口
lsof -i
# 显示所有打开80端口的进程
lsof -i:80
# 显示使用fd为4的进程
lsof -d 4
查看文件相关
# 查看哪个进程正在使用文件
lsof /etc/passwd //那个进程在占用/etc/passwd
# 查看一个进程的文件使用情况
lsof -c sendmail # 用进程名过滤
lsof -p 30297 # 用进程号过滤
# 显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn
lsof -c courier -u ^zahn
# 显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列
lsof -D /tmp
# 查看某个用户的进程的文件使用情况
lsof -u1000 # 用用户号进行过滤
lsof -utony # 用用户名进行过滤
lsof -u^tony # 查看不是用户tony的进程的文件使用情况(^是取反的意思)
# 显示所有打开的端口和UNIX domain文件
lsof -i -U
查看连接相关
# 显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接
lsof -i UDP@[url]www.akadia.com:123
# 不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新)
lsof -i tcp@ohaha.ks.edu.tw:ftp -r
# lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i tcp@ohaha.ks.edu.tw:ftp -n