# lsof 命令
# 简介
lsof(List Open Files)命令用于列出当前系统打开的文件信息,包括普通文件、目录、网络连接、设备等。
# 语法
lsof [选项]
# 常用选项
-i
:显示网络连接信息-p
:显示指定进程打开的文件-u
:显示指定用户打开的文件-c
:显示指定命令打开的文件-t
:仅显示进程ID-n
:不将IP转换为主机名-P
:不将端口号转换为服务名-R
:显示父进程ID
# 使用示例
# 查看所有网络连接
lsof -i
# 查看特定端口
lsof -i:80
# 查看指定进程打开的文件
lsof -p 1234
# 查看指定用户打开的文件
lsof -u username
# 查看指定命令打开的文件
lsof -c nginx
# 查看指定目录的打开文件
lsof +D /var/log/
# 组合使用多个条件
lsof -u root -i TCP:80
# 输出说明
- COMMAND:进程名称
- PID:进程ID
- USER:用户名
- FD:文件描述符
- TYPE:文件类型
- DEVICE:设备号
- SIZE/OFF:文件大小
- NODE:节点号
- NAME:文件名称
# 最佳实践
系统监控
- 定期检查系统资源使用
- 监控关键进程的文件操作
- 追踪网络连接状态
故障排查
- 查找占用端口的进程
- 定位文件访问问题
- 分析进程资源使用
安全审计
- 监控可疑的网络连接
- 检查异常的文件访问
- 追踪用户活动
# 注意事项
- 需要足够的权限查看系统信息
- 大型系统上可能产生大量输出
- 注意网络信息的安全性
- 合理使用过滤选项
- 考虑输出信息的实时性