前言
文件系統層級結構由很多目錄組成,且大多數的目錄也都包含更多的子目錄。並且目錄龐雜繁多,涉及到這臺電腦運行的方方面面,下面就邊聯繫便區別幫助理解。
官方文件上面說過,明瞭的結構是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有了最初步的瞭解,對此係統也有了初步的印象。感覺邏輯非常清晰,還會在之後對本片博客進行改進擴充。還需持續瞭解。