1. 程式人生 > >Linux下的重要目錄概括

Linux下的重要目錄概括

① /proc,

    /proc目錄是一個虛擬的檔案系統,該目錄中的檔案是記憶體中的映像。可以通過檢視該目錄中的檔案獲取有關係統硬體執行的詳細資訊,例如使用more或者less命令檢視/proc/interrupts檔案以獲取硬體中斷(IRQ)資訊,檢視/proc/cpuinfo檔案以獲取CPU的型號、主頻等資訊。

② /sys

    /sys下有多個子目錄:

    /sys/devices :

               該目錄下是全域性裝置結構體系,包含所有被發現的註冊在各種總線上的各種物理裝置。一般來說,所有的物理裝置都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform devices一般是掛在晶片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接定址;system devices不是外設,而是晶片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的程式碼來配置它們。

(sys/devices是核心對系統中所有裝置的分層次表達模型,也是/sys檔案系統管理裝置的最重要的目錄結構)

    sys/dev 

    該目錄下維護一個按照字元裝置和塊裝置的主次號碼(major:minor)連結到真是裝置(/sys/devices)的符號連結檔案

    /sys/class 

    該目錄下包含所有註冊在kernel裡面的裝置型別,這是按照裝置功能分類的裝置模型,每個裝置型別表達具有一種功能的裝置。每個裝置型別子目錄下都是這種哦哦那個裝置型別的各種具體裝置的符號連結,這些連結指向

/sys/devices/name下的具體裝置。裝置型別和裝置並沒有一一對應的關係,一個物理裝置可能具備多種裝置型別;一個裝置型別只表達具有一種功能的裝置,比如:系統所有輸入裝置都會出現在/sys/class/input之下,而不論它們是以何種匯流排連線到系統的。(/sys/class也是構成linux統一裝置模型的一部分) 

    /sys/block  

    該目錄下的所有子目錄代表著系統中當前被發現的所有塊裝置。按照功能來說防止在/sys/class下會更合適,但由於歷史遺留因素而一直存在於/sys/block,但從linux2.6.22核心開始這部分就已經標記為過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯才會有這個目錄存在,並且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的介面/sys/block為了向後相容而保留存在,但其中的內容已經變為了指向它們在/sys/devices/中真實裝置的符號連結檔案。

    /sys/bus   

   該目錄下的每個子目錄都是kernel支援並且已經註冊了的匯流排型別。這是核心裝置按照匯流排型別分層放置的目錄結構,/sys/devices中的所有裝置都是連線於某種匯流排之下的,bus子目錄下的每種具體匯流排之下可以找到每個具體裝置的符號連結,一般來說每個子目錄(匯流排型別)下包含兩個子目錄,一個是devices,另一個是drivers;其中devices下是這個匯流排型別下的所有裝置,這些裝置都是符號連結,它們分別指向真正的裝置(/sys/devices/name/下);而drivers下是所有註冊在這個總線上的驅動,每個driver子目錄下 是一些可以觀察和修改的driver引數。(它也是構成linux統一裝置模型的一部分)

    /sys/fs    

   按照設計,該目錄使用來描述系統中所有的檔案系統,包括檔案系統本身和按照檔案系統分類存放的已掛載點。

   /sys/kernel    

  這個目錄下存放的是核心中所有可調整的引數

  /sys/firmware  

  該目錄下包含對韌體物件(firmware object)和屬性進行操作和觀察的介面,即這裡是系統載入韌體機制的對使用者空間的介面.(關於韌體有專用於韌體載入的一套API)

  /sys/hypervisor  

  該目錄是與虛擬化Xen相關的裝置。(Xen是一個開放原始碼的虛擬機器監視器)

  /sys/module   

  該目錄下有系統中所有的模組資訊,不論這些模組是以內聯(inlined)方式編譯到核心映像檔案中還是編譯為外模組(.ko檔案),都可能出現在/sys/module中。即module目錄下包含了所有的被載入kernel的模組。

 /sys/power

  該目錄是系統中的電源選項,對正在使用的power子系統的描述。這個目錄下有幾個屬性檔案可以用於控制整個機器的電源狀態,如可以向其中寫入控制命令讓機器關機/重啟等等。

③ /SElinux

 SELINUX 有【disabled】、【permissive】、【enforcing】3種選擇。
      • disabled:不啟用SELINUX功能
      • permissive:SELINUX有效,但是即使你違反了策略,它讓你繼續操作,但是把你的違反的內容記錄下來。在我們開發策略的時候非常的有用。相當於Debug模式。

      • enforcing:當你違反了策略,你就無法繼續操作下去。

       有兩大類:【targeted】和【strict】

④ /bin

    /bin目錄為命令檔案目錄,也稱為二進位制目錄。包含了供系統管理員及普通使用者使用的重要的Linux命令的二進位制(可執行)檔案,包括Shell直譯器等,該目錄下不能包含子目錄。目錄/usr/bin存放了大部分的使用者命令。  

⑤ /usr/lib

    包含各應用軟體的函式庫、目標檔案(object file),以及不被一般使用者慣用的執行檔案或指令碼(script)。某些軟體會提供一些特殊的命令來進行伺服器的設定,這些命令也不會經常被系統管理員操作,那就會被擺放到這個目錄下。要注意的是,如果你使用的是X86_64的Linux系統,那可能會有/usr/lib64/目錄產生

⑥ /usr/local

   系統管理員在本機自行安裝自己下載的軟體(非distribution預設提供者),建議安裝到此目錄,這樣會比較便於管理。舉例來說,你的distribution提供的軟體較舊,你想安裝較新的軟體但又不想刪除舊版,此時你可以將新版軟體安裝於/usr/local/目錄下,可與原先的舊版軟體有區別。你可以自行到/usr/local去看看,該目錄下也是具有bin,etc,include,lib的子目錄

⑦ /var

    /var目錄以及該目錄下的子目錄中通常儲存經常變化的內容,如系統日誌、郵件檔案等。

⑧ /tmp

    /tmp目錄存放了臨時檔案,一些命令和應用程式會用到這個目錄。該目錄下的所有檔案會被定時刪除,以避免臨時檔案佔滿整個磁碟。