- [root@localhost proc]# ls
- 1 1658 2016 2353 246 5572 devices mpt
- 10 1694 2019 2359 247 5573 diskstats mtd
- 10147 17 2024 236 248 5574 dma mtrr
- 11 1783 2026 2367 25 5590 driver net
- 12 18 2028 2374 2547 5594 execdomains pagetypeinfo
- 13 19 2030 2378 2552 569 fb partitions
- 1359 1930 2032 2382 2556 6 filesystems sched_debug
- 14 1939 2043 2384 2561 66 fs schedstat
- 1407 1940 2045 2393 26 7 interrupts scsi
- 1423 1941 2067 2395 27 792 iomem self
- 1464 1949 21 2396 2705 793 ioports slabinfo
- 1482 1957 2148 2399 2708 794 irq softirqs
- 1492 1965 2155 2400 28 795 kallsyms stat
- 1496 1977 2196 2403 29 8 kcore swaps
- 15 1988 22 2404 3 837 key-users sys
- 1504 2 2208 2405 3171 861 keys sysrq-trigger
- 1505 20 2215 2406 3254 867 kmsg sysvipc
- 1523 2006 2298 2410 339 9 kpagecount timer_list
- 1552 2008 23 2417 34 acpi kpageflags timer_stats
- 1565 2009 2308 2418 340 asound loadavg tty
- 1574 2010 2317 2420 346 buddyinfo locks uptime
- 1575 2011 2318 2421 36 bus mdstat version
- 16 2012 2337 2423 37 cgroups meminfo vmallocinfo
- 1613 2013 2345 2426 4 cmdline misc vmstat
- 1616 2014 2346 2431 421 cpuinfo modules zoneinfo
- 1640 2015 235 2442 5 crypto mounts
首先我们先观察目录中的内容,基本上,目前主机上面的各个程序的 PID 都是以目录的型态存在於 /proc 当中。 举例来说,我们启动所运行的第一支程序 init 他的 PID 是 1 , 这个 PID 的所有相关资讯都写入在 /proc/1/* 当中!若我们直接观察 PID 为 1 的数据好了。其中cmdline不表示启动这个进程的命令串,environ表示这个进程的环境变量内容。
查看cmdline如下
- [root@localhost proc]# cd 1
- [root@localhost 1]# ls
- attr cwd loginuid oom_adj sessionid task
- auxv environ maps oom_score smaps wchan
- cgroup exe mem pagemap stack
- clear_refs fd mountinfo personality stat
- cmdline fdinfo mounts root statm
- coredump_filter io mountstats sched status
- cpuset limits net schedstat syscall
- [root@localhost 1]# cat cmdline
- /sbin/init
就是这个命令与参数启动init的。
/proc目录下的文件与对应的内容
档名 文件内容
/proc/cmdline 加载 kernel 时所下达的相关参数!查阅此文件,可了解系统是如何启动的!
/proc/cpuinfo 本机的 CPU 的相关资讯,包含时脉、类型与运算功能等
/proc/devices 这个文件记录了系统各个主要装置的主要装置代号,与 mknod 有关呢!
/proc/filesystems 目前系统已经加载的文件系统罗!
/proc/interrupts 目前系统上面的 IRQ 分配状态。
/proc/ioports 目前系统上面各个装置所配置的 I/O 位址。
/proc/kcore 这个就是内存的大小啦!好大对吧!但是不要读他啦!
/proc/loadavg 还记得 top 以及 uptime 吧?没错!上头的三个平均数值就是记录在此!
/proc/meminfo 使用 free 列出的内存资讯,嘿嘿!在这里也能够查阅到!
/proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!
/proc/mounts 系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!
/proc/swaps 到底系统挂加载的内存在哪里?呵呵!使用掉的 partition 就记录在此啦!
/proc/partitions 使用 fdisk -l 会出现目前所有的 partition 吧?在这个文件当中也有纪录喔!
/proc/pci 在 PCI 汇流排上面,每个装置的详细情况!可用 lspci 来查阅!
/proc/uptime 就是用 uptime 的时候,会出现的资讯啦!
/proc/version 核心的版本,就是用 uname -a 显示的内容啦!
/proc/bus/* 一些汇流排的装置,还有 U盘 的装置也记录在此喔!