7-35

Linux 怎么查看程序调用了哪些文件

1. 使用 lsof 命令

lsof (list open files) 是最强大和最常用的工具,它可以列出当前系统所有打开的文件,包括普通文件、目录、网络套接字等

基本用法:

要查看特定程序(通过 PID进程名)打开了哪些文件,你可以使用以下命令:

  • 按进程名查看:

    lsof -c <program_name>

    例如,要查看 nginx 进程打开了哪些文件,可以运行:

    lsof -c nginx
  • 按进程 ID (PID) 查看:

    lsof -p <PID>

    首先,你需要找到程序的 PID。比如,使用 ps aux | grep nginxpgrep nginx。然后,用找到的 PID 来查看:

    lsof -p 12345

常见输出字段:

lsof 的输出通常包含以下列:

  • COMMAND:命令名
  • PID:进程 ID
  • USER:用户
  • FD:文件描述符 (File Descriptor)
    • cwd:当前工作目录
    • txt:程序的可执行文件
    • mem:内存映射文件
    • 数字:普通文件,后面通常跟着 r (读)、w (写) 或 u (读写)
  • TYPE:文件类型(如 REG 表示普通文件,DIR 表示目录)
  • NAME:文件名