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设备记录在此