Linux文件系統目錄結構介紹
Linux文件系統目錄結構 (英文名: Linux File System Directory Structure):
要所文件系統目錄結構我們就要先知道什么是文件系統,文件系統是操作系統用於明確存儲設備(常見的是磁
盤,也有基於 NAND Flash的固態硬盤)或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件機構稱為文件管理系統,簡稱文件系統。
Linux文件系統目錄結構其實就是定義 Linux文件系統存放目錄和文件的方式。 Linux文件系統遵從FHS 。
什么是FHS?
FHS即是 Filesystem Hierarchy Standard(文件系統層次結構標准)的縮寫。它定義了兩層規范
第一層:/下面的各個目錄應該要放什么文件數據;
第二層:針對/usr及/ar這兩個目錄的子目錄來定義。
FHS特點:FHS只定義出最上層(/)及子層(/usr,/var)目錄內容應該要放置的文件數據,因此,在其他子目錄層級內,可以隨開發人員自行配置。
FHS目錄定義圖例
FHS是根據過去的經驗一直再持續的改版的,FHS依據文件系統使用的頻繁與是否允許使用者隨意變動,而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:
FHS交互作用形態定義
FHS目錄定義的四種交互作用的形態定義 :
1、可共享的
可以共享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,是能夠分享給網絡上其他主機
掛載用的目錄;
2、不可共享的
本地計算機上面運行的設備文件或者是與程序有關的socket文件等,由於僅與自身機器有關,所以不能共享給
其他計算機。
3、不可變動的
有些數據是不會經常變動的,跟隨着文件 distribution而不變動。例如函式庫、文件說明文件、系統管理員所
管理的主機服務配置文件等等。
4、可變動的
經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。
FHS目錄樹架構定義
FHS針對目錄樹架構定義出以下三層目錄:
-
/(robt,根目錄):與開機系統有關;
-
/usr(unix software resource):與軟件安裝/執行有關;
-
/var(variable):與系統運行過程有關。Linux文件系統目錄結構
根目錄(/)的意義
-
根目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的,同時根目錄也與開機/還原/系統修復等動作有關。
-
由於系統開機時需要特定的開機軟件、核心文件、開機所需程序、函式庫等等文件數據,所以當系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序才行。由於根目錄重要性,FHS建議根目錄不要放在非常大的分區內,因為分區越大可能存儲的文件就越多,如此一來可能會提高發生錯誤的概率。
-
FHS標准建議:根目錄(/)所在分區應該越小越好,且應用程序所安裝的軟件最好不要與根目錄放在同一個分區。
-
按照FHS標准執行,不但可以提高計算機的效能,而且也可以減少問題的產生。
根目錄(/)包含的內容
FHS針對根目錄所定義的標准就僅限於上表,不過仍舊有些目錄也需要我們了解
除了這些目錄的內容之外,另外要注意的是:因為根目錄與開機有關,開機過程中僅有根目錄會被掛載,其他分區則是在開機完成之后才會持續的進行掛載的行為。所以我們要了解那哪些目錄不可與根目錄分開:
-
/etc:配置文件
-
/bin:重要執行檔
-
/dev:所需要的裝置文件
-
/lib:執行檔所需的函式庫與核心所需的模塊
-
/sbin:重要的系統執行文件
/usr目錄的意義與內容
usr是 Unix Software Resource的縮寫,這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於 windows下的 program files目錄。FHS建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄中,/usr/下包含一下目錄:
/var目錄的意義與內容
如果/usr是安裝時會占用較大硬盤容量的目錄,那么/var就是在系統運作后才會漸漸占用硬盤容量的目錄。因為/var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運作所產生的文件,包括程序文件(lock file, run file),或者例如 MySQL數據庫的文件等等。常見的次目錄有:
目錄樹和路徑
目錄樹 (英文名: Directory tree)
在 Linux中,所有的文件與目錄都是由根目錄開始的。那是所有目錄與文件的源頭,然后再一個一個的分支下來,因此,我們也稱這種目錄配置方式為:目錄樹( directory tree),這個目錄樹的主要特性有
-
目錄樹的啟始點為根目錄(/,root);
-
每一個目錄不止能使用本地端的 partition的文件系統,也可以使用網絡上的 filesystem;
-
每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。
絕對路徑 (英文名:發)
絕對路徑是指目錄下的絕對位置,直接到達目標位置,通常是從盤符開始的路徑
在 Linux中以“/ "開始的路徑
相對路徑 (英文名:甲方)
相對路徑就是指由這個文件所在的路徑引起的跟其它文件(或文件夾)的路徑關系
在 Linux中以 “./ ” 或 “../ ” 開始的路徑
符號 | 說明 |
---|---|
./ | 表示當前目錄 |
../ | 表示上一層父目錄 |
~用戶名 | 表示指定用戶的主目錄作為起點 |