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 nginx
或pgrep nginx
。然后,用找到的 PID 来查看:lsof -p 12345
常见输出字段:
lsof
的输出通常包含以下列:
- COMMAND:命令名
- PID:进程 ID
- USER:用户
- FD:文件描述符 (File Descriptor)
cwd
:当前工作目录txt
:程序的可执行文件mem
:内存映射文件数字
:普通文件,后面通常跟着r
(读)、w
(写) 或u
(读写)
- TYPE:文件类型(如
REG
表示普通文件,DIR
表示目录) - NAME:文件名