Linux下的proc目錄詳解

文章結構:

1.什麼是proc目錄

2. 初識proc目錄

3. 從proc窺看系統詳情



1.什麼是proc目錄

proc是Linux系統下一個很重要的目錄。 它跟/etc, /home等這些系統目錄不同, 它不是一個真正的文件系統, 而是一個虛擬的文件系統。 它不存在於磁盤, 而是存在於系統內存中。 所以當你使用 ls -al /proc這條命令來查看proc目錄時, 會看到其下面的所有文件的大小都爲0字節。 proc以文件系統的方式爲訪問系統內核的操作提供接口。 很多系統的信息, 如內存使用情況, cpu使用情況, 進程信息等等這些信息,都可以通過查看/proc下的對應文件來獲得。 proc文件系統是動態從系統內核讀出所需信息的。 


2. 初識proc目錄


proc目錄下具體有哪些文件呢?

/proc 目錄下的文件

/proc/cpuinifo       CPU的信息(型號、家族、緩存大小等)

/proc/meminfo物理內存、交換空間

/proc/mounts      已加載的文件系統的列表

/proc/devices 可用設備的列表

/proc/filesystems 被支持的文件系統

/proc/modules 已加載的模塊

/proc/virsion 內核版本

/proc/cmdline 系統啓動時輸入的內核命令行參數

/proc/XXX XXX是指以進程PID(數字編號)命名的目錄,每一個目錄表示一個進程(即線程組)。

/proc/swaps 要獲知swap空間的使用情況

/proc/uptime 獲取系統的正常運行時間

/proc/fs/nfsd/exports 列出由NFS共享的文件系統

/proc/kmsg 該文件被作爲內核日誌信息源,它可以被作爲一個系統信息調用的接口使用

/proc/self -- 到當前進程/proc目錄的符號鏈接,通過這個目錄可以獲取當前運行進程的信息。

/proc/pci -- 掛接在PCI總線上的設備

/proc/tty/driver/serial --串口配置、統計信息

/proc/version -- 系統版本信息

/proc/sys/kernel/ostype

/proc/sys/kernel/osrelease

/proc/sys/kernel/version

/proc/sys/kernel/hostname -- 主機名

/proc/sys/kernel/domainname -- 域名

/proc/partitions -- 硬盤設備分區信息

/proc/sys/dev/cdrom/info -- CDROM信息

/proc/locks -- 當前系統中所有的文件鎖

/proc/loadavg -- 系統負荷信息

/proc/uptime -- 系統啓動後的運行時間



3. 從proc窺看系統詳情


很多系統命令在讀取系統信息的時候,其實是從proc目錄下讀取對應的文件來獲得的。 所以如果我們不使用這些命令, 直接到proc目錄下去查看對應文件,也是可以獲得對應的信息的。 下面舉幾個例子:


操作 系統命令 proc對應目錄
獲取系統版本信息 uname -a 或者 lsb_release /proc/version或者/proc/sys/kernel/hostname[,domainname, osrelease, ostype, version]
獲取系統負載信息 top 或者 w 或者 uptime /proc/loadavg
獲取內存使用情況 free /proc/meminfo
獲取CPU使用情況 top  /proc/cpuinfo
獲取進程運行情況 ps aux  或者 top /proc/N[N爲對應的PID號]

對於查看進程信息一欄,做下補充:

/proc/N pid爲N的進程信息

/proc/N/cmdline 進程啓動命令

/proc/N/cwd 鏈接到進程當前工作目錄

/proc/N/environ 進程環境變量列表

/proc/N/exe 鏈接到進程的執行命令文件

/proc/N/fd 包含進程相關的所有的文件描述符

/proc/N/maps 與進程相關的內存映射信息

/proc/N/mem 指代進程持有的內存,不可讀

/proc/N/root 鏈接到進程的根目錄

/proc/N/stat 進程的狀態

/proc/N/statm 進程使用的內存的狀態

/proc/N/status 進程狀態信息,比stat/statm更具可讀性

/proc/self 鏈接到當前正在運行的進程


更多的應用場景, 留給大家自己到/proc目錄下探索吧。 



轉載請註明來自:作者hackstoic


【參考文獻】

1. http://www.cnblogs.com/johnnyflute/p/3581426.html

2. http://www.hackbase.com/tech/2014-11-11/69696.html

3.  http://blog.csdn.net/jerry_1126/article/details/45341041

4. http://www.php101.cn/2015/05/08/瞭解Linux-proc文件系統/


文章首發於:www.hackstoic.com 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章