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.www58058.com/76464