Linux系統中的根文件系統的層級結構(Filesystem Hierarchy Standard FHS)

前言

文件系統層級結構由很多目錄組成,且大多數的目錄也都包含更多的子目錄。並且目錄龐雜繁多,涉及到這臺電腦運行的方方面面,下面就邊聯繫便區別幫助理解。
官方文件上面說過,明瞭的結構是FHS的主要目的,他們希望獨立的軟件開發商、操作系統製作者、以及想要維護系統的用戶,都能夠遵循FHS的標準,這樣就需要讓開發者使用者清楚明白的瞭解各個文件的存放位置。

根目錄下子目錄簡介

目錄 全拼 描述
bin binaries 所有用戶可執行的命令程序文件
sbin system binaries 系統管理命令程序,通常只有root用戶可以執行
boot Static files of the boot loader 系統啓動引導過程中加載的文件存放目錄
dev Device files 系統設備文件存放路徑
etc Editable Text Configuration 系統程序的配置文件
home home 普通用戶家目錄集合
root root 超級用戶家目錄
lib library 系統啓動程序和根下應用程序(/bin,/sbin等)提供共享庫
lib64 library64 64位系統存放64位庫的路徑
media media 臨時設備掛載點
mnt mount 系統磁盤的臨時掛載點
opt Optional application software packages 系統默認第三方軟件安裝的位置
proc process 進程和內核相關參數信息
sys system 內核參數目錄
srv service 當前主機位系統服務提供的數據
var variable 經常變化的系統數據
tmp temporary 系統臨時文件存放目錄
usr Universal Shared Resource 全局共享只讀資源
run run 當前運行進程相關數據

根目錄詳解

根目錄相當於Windows操作系統中c盤的文件目錄。
它定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。建議越小越好。

層級結構圖
/root目錄是所有目錄與文件的源頭,每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。
因爲在層級結構中開發者只是定義了/root和usr,var的內容,所以,其他層級的目錄內可以隨用戶與開發者自行配置。
目錄與開機有關,開機過程中僅有根目錄會被掛載,因爲如此,根目錄下與開機過程有關的目錄,不能夠與根目錄放到不同的分區(etc,bin,dev,lib,sbin)

變與不變&可分享與不可分享

  • 可變動
    需要時常改變的數據,比如日誌文件,cache文件。

  • 不變的:
    不會經常變動的,像支持語言的庫,一些文件的說明文當,部分配置文件。

  • 可分享的:
    分享給其他系統掛載使用的目錄,比如聊天信息,郵件,文檔。

  • 不可分享的:
    只與自己的計算機有關,比如自己的socket文件。

\ 可變 不可變
可分享 var/mail usr&opt
不可分享 var/run etc&boot

重要目錄解析

  • usr

usr裏面放置的數據是可分享的與不可變動的(如果你知道如何透過網絡進行分區的掛載,usr可以分享給局域網絡內其他的主機來使用)

usr是Unix Software Resource的縮寫,也就是Unix操作系統軟件資源所放置的目錄,而不是用戶的數據,這點要注意。FHS建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目錄。

所有系統默認的軟件(distribution發佈者提供的軟件)都會放置到/usr底下,因此這個目錄有點類似Windows系統中C:\Windows\ + C:\Program files\這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會佔用最多的硬盤容量。

  • var
    var文件是可變文件。
    如果/usr是安裝時會佔用較大硬盤容量的目錄,那麼/var就是在系統運作後纔會漸漸佔用硬盤容量的目錄。因爲/var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運作所產生的文件,包括程序文件(lock file,run file),或者例如MySQL數據庫的文件等等。

總結

看完這些應該對FHS有了最初步的瞭解,對此係統也有了初步的印象。感覺邏輯非常清晰,還會在之後對本片博客進行改進擴充。還需持續瞭解。

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