2025-02-24
proc
文件系统是一个由内核动态生成的虚拟文件系统,挂载在/proc
目录下。它不占用物理存储空间,而是通过内存实时反映系统和进程的运行状态。用户和开发者可通过该文件系统访问内核数据结构、进程信息,并动态调整内核参数。
/proc/cpuinfo:显示CPU的详细信息,包括型号、核心数、频率、缓存大小等。
/proc/meminfo:展示内存使用情况,如总内存、空闲内存、缓存、交换分区等。
/proc/version:内核版本、GCC 编译器版本及系统环境信息。
/proc/uptime:系统运行时间(秒)和所有CPU核心的总空闲时间。
/proc/loadavg:系统的平均负载(1/5/15 分钟)、正在运行的进程数/总进程数、最近活跃进程PID。
/proc/filesystems:内核支持的文件系统类型列表(如ext4、tmpfs)。
/proc/modules:当前加载的内核模块,等同于 lsmod 的输出。
/proc/mounts:已挂载的文件系统信息,格式与/etc/mtab
一致。
/proc/partitions:块设备的分区信息,包括名称、主/次设备号、大小。
/proc/stat:系统统计信息,如 CPU 时间、上下文切换次数、中断次数等。
/proc/net/dev:网络接口的流量统计(接收/发送的字节、包数、错误数)。
/proc/cmdline:系统启动时传递给内核的引导参数(如 root=/dev/sda1)。
cmdline:启动进程的命令行参数,以空字符(\0)分隔。
status:进程状态摘要,包括名称、PID、PPID、内存使用(VmSize、VmRSS)、状态(运行/睡眠)。
io:进程的 I/O 统计,如读取字节数(rchar)、实际磁盘读取(read_bytes)。
exe:符号链接指向进程的可执行文件路径。 示例:ls -l /proc/1234/exe → /usr/bin/bash
cwd:符号链接到进程的当前工作目录。
fd:目录包含进程打开的文件描述符(如 0 标准输入、1 标准输出)。
environ:进程的环境变量,以空字符分隔。
maps:进程的内存映射(代码段、堆、栈、共享库等)。
通过修改/proc/sys
下的文件可实时调整内核行为(需 root 权限)。
/proc/sys/kernel/hostname:系统主机名,修改后立即生效(等效于hostname
命令)。
/proc/sys/net/ipv4/ip_forward:控制 IPv4 转发(1 启用,0 禁用)。
/proc/sys/vm/swappiness:调整交换分区使用倾向(值范围 0-100,值越高越倾向使用交换空间)。
/proc/interrupts:各CPU核心的中断分配情况。
/proc/diskstats:磁盘I/O统计(读/写次数、扇区数)。
/proc/self:指向当前访问/proc
的进程自身的符号链接。
proc
文件系统是Linux系统管理和调试的核心工具之一,提供了从硬件信息到进程状态的全面视图。常用工具如top、ps、free均依赖其数据。掌握 /proc 的使用,能够更高效地进行性能分析和故障排查。