Linux 內核提供了一種經過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。
proc文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式爲訪問系統內核數據的操做提供接口。
用戶和應用程序能夠經過proc獲得系統的信息,並能夠改變內核的某些參數。c#
因爲系統的信息,如進程,是動態改變的,因此用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。數據結構
下面列出的這些文件或子文件夾,並非都是在你的系統中存在,這取決於你的內核配置和裝載的模塊。
另外,在/proc下還有三個很重要的目錄:net,scsi和sys。 Sys目錄是可寫的,能夠經過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。例如,若是系統不支持scsi,則scsi 目錄不存在。
除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。系統中當前運行的每個進程都有對應的一個目錄在/proc下,以進程的 PID號爲目錄名,它們是讀取進程信息的接口。而self目錄則是讀取進程自己的信息接口,是一個link。code
uptime主要用於顯示系統的總體開機時間。接口
root@jimmy-vm:/proc# cat uptime 33022.40 63635.93
- 第一列:系統已運行時間(單位:秒)
- 第二列:系統空閒的時間(單位:秒),是多個核心CPU空閒時間的總和
系統運行時間換算爲啓動時間點:date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
root@jimmy-vm:/proc# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" 2018-12-15 06:45:09
一樣能夠使用uptime
查看系統啓動時間進程
root@jimmy-vm:/proc# uptime 16:02:41 up 9:17, 6 users, load average: 0.00, 0.00, 0.00
- 當前時間 16:02:41
- 系統已運行的時間 9:17
- 當前在線用戶 6 user
- 平均負載:0.00, 0.00, 0.00,最近1分鐘、5分鐘、15分鐘系統的負載