三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

lsof命令的其他用法有哪些?

美国、香港服务器

lsof命令的其他用法有哪些?

08-16   来源:

 lsof(List Open Files)是 Linux 系统中功能强大的工具,用于列出系统中所有被进程打开的文件(包括普通文件、目录、网络套接字、设备等)。除了查看进程占用的文件,它还有许多实用用法,以下是常见场景:

1. 查看某个文件 / 目录被哪些进程占用
当文件或目录被占用导致无法删除 / 修改时,可查占用进程:
 
bash
# 查看指定文件被哪些进程占用(如 /var/log/syslog)
lsof /var/log/syslog
 
# 查看指定目录被哪些进程占用(如 /data)
lsof +D /data  # +D 表示递归查看目录下所有文件
2. 查看网络连接相关的进程
lsof 可列出所有网络连接(TCP/UDP)及对应的进程,替代部分 netstat 功能:
 
bash
# 列出所有网络连接(包括TCP/UDP)
lsof -i
 
# 查看指定端口被哪个进程占用(如端口 8080)
lsof -i :8080
 
# 查看指定协议的连接(如TCP)
lsof -i tcp
 
# 查看与指定IP的连接(如 192.168.1.100)
lsof -i @192.168.1.100
 
# 查看外部IP:端口的连接(如连接到 203.0.113.5:443)
lsof -i @203.0.113.5:443
3. 按用户筛选进程打开的文件
查看某个用户的所有进程打开的文件:
 
bash
# 查看用户 root 打开的所有文件
lsof -u root
 
# 排除某个用户(如排除 root)
lsof -u ^root
4. 按进程名称筛选
根据进程名(而非 PID)查看其打开的文件:
 
bash
# 查看所有 nginx 进程打开的文件
lsof -c nginx  # -c 后接进程名前缀(支持模糊匹配)
 
# 精确匹配进程名(如只匹配 nginx 不匹配 nginx-worker)
lsof -c ^nginx$
5. 列出所有被删除但仍被进程占用的文件
Linux 中,若文件被删除但进程仍在使用,磁盘空间不会释放。可通过 lsof 查找这类文件:
 
bash
lsof +L1  # +L1 表示文件链接数小于1(已删除但被占用)
 
用途:释放被占用的磁盘空间(重启对应的进程即可)。
6. 查看某个进程的网络连接详情
结合进程 ID 和网络选项,查看指定进程的网络活动:
 
bash
# 查看 PID 1234 进程的所有网络连接
lsof -p 1234 -i
7. 列出所有打开的 UNIX 域套接字
UNIX 域套接字用于本地进程间通信,可通过 lsof 查看:
 
bash
lsof -U  # -U 表示列出UNIX域套接字
8. 保存输出到文件
将结果保存到文件,便于后续分析:
 
bash
lsof -i :80 > port80_connections.txt
常用参数总结
参数 功能描述
-p 进程ID 查看指定进程打开的文件
-i 列出所有网络连接(TCP/UDP)
-i :端口 查看指定端口的占用进程
-u 用户名 查看指定用户的进程打开的文件
-c 进程名 按进程名筛选(支持前缀匹配)
+D 目录 递归查看目录下被打开的文件
+L1 查找已删除但仍被进程占用的文件
-U 列出所有 UNIX 域套接字
 
lsof 是系统排查问题的利器,尤其在处理 “文件占用”“端口冲突”“磁盘空间异常” 等场景时非常实用。使用 man lsof 可查看完整参数说明。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何查找已删除但仍被进程占用的文件? 下一篇:如何查看某个进程占用了哪个文件或目录?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)