Linux下/proc目录详解
- proc目录总的概述
- proc下有关进程的目录概述
- proc下针对Linux系统相关的参数目录概述
/proc目录总的概述
1.首先,我们可以使用ll命令查看下/proc目录,如下
[root@centos6 ~]# ls -l /proc
total 0
dr-xr-xr-x. 8 root root 0 May 19 04:02 1
dr-xr-xr-x. 8 root root 0 May 19 04:02 10
dr-xr-xr-x. 8 root root 0 May 18 20:02 1078
dr-xr-xr-x. 8 root root 0 May 18 20:02 1079
...(中间省略)...
-r--r--r--. 1 root root 0 May 19 17:39 timer_list
-rw-r--r--. 1 root root 0 May 19 17:39 timer_stats
dr-xr-xr-x. 4 root root 0 May 19 17:39 tty
-r--r--r--. 1 root root 0 May 19 17:39 uptime
-r--r--r--. 1 root root 0 May 19 17:39 version
-r--------. 1 root root 0 May 19 17:39 vmallocinfo
-r--r--r--. 1 root root 0 May 19 17:39 vmstat
-r--r--r--. 1 root root 0 May 19 17:39 zoneinfo
2.使用ps aux命令查看下当前系统所有正在运行的进程
[root@centos6 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19352 1564 ? Ss May18 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S May18 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S May18 0:00
...(中间省略)...
/sbin/dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhcl
root 27825 0.0 0.4 102104 4140 ? Ss 14:10 0:00 sshd: root@pts/4
root 27826 0.0 0.4 102104 4152 ? Ss 14:10 0:00 sshd: root@pts/3
root 27833 0.0 0.1 108364 1816 pts/3 Ss 14:10 0:00 -bash
root 27834 0.0 0.1 108364 1800 pts/4 Ss+ 14:10 0:00 -bash
postfix 28615 0.0 0.3 81040 3436 ? S 17:44 0:00 pickup -l -t fifo -u
root 28620 8.0 0.1 110256 1152 pts/3 R+ 17:45 0:00 ps aux
3.对比上面的两条命令运行的结果,我们可以发现系统中每个正在运行的进程几乎都在/prom目录下有一个以其进程Id命名的文件夹(/proc/Pid/),但是proc目录下除了这些以进程Id命令的文件夹,还有其他类似/proc/cpuinfo、/proc/pci的文件夹。通过man proc得知proc是一个进程信息伪文件系统,它只存在内存当中,不占用外内存空间。它以文件的方式为访问系统内核数据的操作提供接口。
proc下有关进程的目录概述
1.用ll 查看/proc/1/、 /proc/2 等类似/proc/Pid/的文件夹,可以发现它们有相同的文件夹。如下
[root@centos6 ~]# ll /proc/1 total 0 dr-xr-xr-x. 2 root root 0 May 19 18:25 attr -rw-r--r--. 1 root root 0 May 19 18:25 autogroup -r--------. 1 root root 0 May 19 18:25 auxv -r--r--r--. 1 root root 0 May 19 18:25 cgroup --w-------. 1 root root 0 May 19 18:25 clear_refs -r--r--r--. 1 root root 0 May 19 04:02 cmdline -rw-r--r--. 1 root root 0 May 19 18:25 comm ...(中间省略)... -r--r--r--. 1 root root 0 May 19 04:02 stat -r--r--r--. 1 root root 0 May 19 18:25 statm -r--r--r--. 1 root root 0 May 19 17:46 status -r--r--r--. 1 root root 0 May 19 18:25 syscall dr-xr-xr-x. 3 root root 0 May 19 18:25 task -r--r--r--. 1 root root 0 May 19 18:25 wchan
2.下面是/proc/Pid下的常用子目录作用简介
| 文件名 | 文件内容 |
|---|---|
| /proc/[pid]/cmdline | 进程被启动的命令串 |
| /proc/[pid]/environ | 进程的环境变量内容 |
| /proc/[pid]/cwd | 指向当前进程运行目录的一个符号链接 |
| /proc/[pid]/exe | 指向启动当前进程的执行路径的符号链接 |
| /proc/[pid]/fd | 包含当前进程打开的每一个文件的文件描述符的目录 |
| /proc/[pid]/limits | 当前进程所使用的每一个受限的软硬件限制和管理单元 |
| /proc/[pid]/maps | 当前进程关联到每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表 |
| /proc/[pid]/mem | 当前进程所占用的内存空间 |
| /proc/[pid]/root | 指向当前进程运行根目录的符号链接 |
| /proc/[pid]/stat | 当前进程的状态信息 |
| /proc/[pid]/statm | 当前进程占用内存的状态信息 |
| /proc/[pid]/status | 当前进程的状态信息 |
proc下针对Linux系统相关的参数目录概述
1.我们可以使用cat查看/proc/cpuinfo 等目录,可以看到与系统相关的一些参数
[root@centos6 ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz stepping : 9 microcode : 21 cpu MHz : 2594.139 cache size : 3072 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm fsgsbase smep bogomips : 5188.27 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management:
2.下面是/proc/Pid下的常用子目录作用简介
| 文件名 | 文件内容 |
|---|---|
| /proc/cmdline | kernel启动的命令行 |
| /proc/cpuinfo | 本机的CPU相关信息 |
| /proc/devices | 记录字符和块设备的主设备号,以及分配到这些设备号的设备名称 |
| /proc/filesystems | 目前系统已经加载的文件系统 |
| /proc/interrupts | 目前系统上面的IRQ分配状态 |
| /proc/ioports | 目前系统上各个设备所配置的I/O地址 |
| /proc/kcore | 系统的物理内存以core文件格式保存的文件 |
| /proc/loadavg | 保存关于CPU和磁盘I/O的负载平均值,其前三列分别表示每1秒钟、每5秒钟及每15秒的负载平均值 |
| /proc/meminfo | 内存信息 |
| /proc/modules | Linux已经加载的模块列表 |
| /proc/mounts | 系统已经挂载的数据 |
| /proc/swaps | 当前系统上的交换分区及其空间利用信息 |
| /proc/partitons | 系统分区信息 |
| /proc/zoneinfo | 显示内存空间的统计信息,对分析虚拟内存行为很有用 |
| /proc/pci | 在PCI总线上的每个设备的详细情况 |
| /proc/uptime | 系统上次启动以来的运行时间 |
| /proc/version | 内核的版本 |
| /proc/net | 网卡设备信息 |
| /proc/tty | tty设备信息 |
| /proc/bus/* | 一些总线的设备、USB设备记录在此 |
原创文章,作者:似梦非雨,如若转载,请注明出处:http://www.178linux.com/76464

