procfs是一种伪文件系统。 记录了系统运行时的所有内核信息和配置信息。这样我们就可以简单直接的通过echo或cat这样的文件操作命令对系统信息进行查取。
procfs是一种文件系统,通常会挂载在/proc上。ls /proc 可以看到很多以进程ID命名的文件夹,每个进程运行时的信息都记录在相应的文件夹下,而内核运行时信息直接记录在/proc下,大多是只读文件,如meminfo,cpuinfo,cmdline等,非数字命名的文件夹,是内核各子系统相关部分,如bus 总线信息(只读)
drivers 驱动信息(只读)
fs 文件系统特别信息(只读)
ide IDE接口信息(只读)
irq IRQ信息(只读)
net 网络子系统信息(只读)
scsi SCSI系统信息(只读)
sysvipc IPC子系统信息(只读)
tty tty子系统信息(只读)
sys 系统内核可调参数 (可调)
通过访问这些文件和文件夹,我们可以实时查询到当前系统的运行信息,甚至是某一进程的运行时信息。
比如查看某个进程打开了哪些文件:ls -l /proc/5040/fd/
查看这个进程的工作路径:ls -l /proc/5040/cwd/
查看这个进程的二进制文件所在位置:ls -l /proc/5040/exe
查看进程的状态总览:cat /proc/5040/status
查看进程的内存使用状态: cat /proc/5040/statm
查看当前系统的内存使用情况:cat /proc/meminfo
查看当前系统的网络流量:cat /proc/net/dev
查看当前系统的负载:cat /proc/loadavg
查看当前系统的连接情况:cat /proc/net/snmp
查看当前系统的基本统计情况(cpu时间的消耗分布等):cat /proc/stat
如果对这些文件和文件夹的命名或内容意义并不清楚的话,可以使用 man proc 查看系统说明。