/proc 是 Linux 系统中一个特殊的虚拟文件系统,它不占用磁盘空间,而是内核运行时信息的动态映射。该目录下的文件和子目录提供了对系统内核参数、进程信息、硬件状态等的实时访问。以下是主要文件和子目录的作用详解:
/proc/cpuinfo
显示 CPU 的详细信息(型号、核心数、频率、特性标志等)。
cat /proc/cpuinfo
/proc/meminfo
系统内存使用情况(总内存、空闲内存、缓存等)。
cat /proc/meminfo | grep MemTotal
/proc/version
当前运行的内核版本和编译信息。
/proc/uptime
系统启动时间和空闲时间(秒)。
cat /proc/uptime
/proc/loadavg
系统负载平均值(1/5/15分钟的平均负载,运行进程数等)。
/proc/interrupts
已分配的中断请求(IRQ)列表,显示每个 CPU 核心的中断统计。
cat /proc/interrupts
/proc/devices
已加载的块设备和字符设备列表。
/proc/partitions
磁盘分区信息(名称、大小、块数等)。
/proc/mounts
当前挂载的文件系统列表(等效于 mount 命令)。
/proc/sys/ 目录
动态调整内核参数(需 sysctl 命令或直接写入文件):
/proc/sys/net/ipv4/ip_forward:控制 IP 转发(0/1)。/proc/sys/kernel/hostname:系统主机名。/proc/sys/vm/swappiness:控制交换分区使用倾向。示例:启用 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward
每个运行进程会生成一个以 PID 命名的子目录(如 /proc/1234/),包含:
- /proc/PID/cmdline:进程启动命令(含参数)。
- /proc/PID/status:进程状态(内存、用户、线程等)。
- /proc/PID/fd/:进程打开的文件描述符(符号链接)。
- /proc/PID/environ:进程的环境变量。
- /proc/PID/stat:进程的详细状态(运行时间、优先级等)。
示例:查看进程 1(init)的命令
cat /proc/1/cmdline
/proc/net/ 目录
网络栈信息,如:
arp:ARP 表。tcp:TCP 连接状态。dev:网络接口流量统计。/proc/stat
系统全局统计(CPU 使用率、上下文切换次数等)。
cat /proc/stat | grep cpu
/proc/kmsgdmesg 或 root 权限访问)。/proc/moduleslsmod)。/proc/filesystems/proc 下的内容随系统状态动态变化,重启后重置。strace、lsof 等工具依赖 /proc 获取进程信息。meminfo、stat 等分析资源使用。/proc/sys/ 下的参数优化系统行为。如果需要更详细的信息,可以通过 man proc 查看完整文档。