前言
proc文件系统是一个虚拟文件系统,它存储了当前内核运行状态相关文件,并且文件的内容都是动态创建的。用户可以通过查看这些文件获取系统状态以及当前正在运行的进程信息。而通过了解这些信息,能够帮助我们帮助我们定位疑难问题。本文将简单介绍通过proc文件系统能够获取哪些有用的信息。
总览
我们进入到/proc目录下,查看所有文件:
cd /proc
ls -al
774 acpi iomem mtrr uptime
775 asound ioports net version
781 buddyinfo irq pagetypeinfo version_signature
782 bus kallsyms partitions vmallocinfo
8 cgroups kcore sched_debug vmstat
813 cmdline keys schedstat zoneinfo
9 consoles key-users scsi
973 cpuinfo kmsg self
974 crypto kpagecgroup slabinfo
978 devices kpagecount softirqs
98 diskstats kpageflags stat
983 dma loadavg swaps
984 driver locks sys
987 execdomains mdstat sysrq-trigger
99 fb meminfo sysvipc
994 filesystems misc thread-self
996 fs modules timer_list
998 interrupts mounts tty
(列出部分内容)
可以看到有三类内容:
-
普通文件,如version,它存放的是内核版本相关信息
-
以数值命名的文件夹,如1,它存放的是init进程相关信息
-
非数字命名的文件夹,如drivers,它存放的是驱动相关信息
事实上,很多获取系统信息的命令都是通过读取/proc下相关文件内容获取的,例如uname,df,ps等。多数情况下,它们能满足我们对系统状态的查看需求,但是并不尽然,因此我们需要简单了解/proc下的文件,帮助我们获取更多信息。毕竟它是一个巨大的信息宝库。