# 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:文件名称

# 最佳实践

  1. 系统监控

    • 定期检查系统资源使用
    • 监控关键进程的文件操作
    • 追踪网络连接状态
  2. 故障排查

    • 查找占用端口的进程
    • 定位文件访问问题
    • 分析进程资源使用
  3. 安全审计

    • 监控可疑的网络连接
    • 检查异常的文件访问
    • 追踪用户活动

# 注意事项

  • 需要足够的权限查看系统信息
  • 大型系统上可能产生大量输出
  • 注意网络信息的安全性
  • 合理使用过滤选项
  • 考虑输出信息的实时性