Linux檔案目錄結構一覽表

學習 Linux,不僅限於學習各種命令,瞭解整個 Linux 檔案系統的目錄結構以及各個目錄的功能同樣至關重要。

使用 Linux 時,透過命令列輸入 ls -l / 可以看到,在 Linux 根目錄(/)下包含很多的子目錄(稱為一級目錄),例如 bin、boot、dev 等。同時,各一級目錄下還含有很多子目錄(稱為二級目錄),比如 /bin/bash、/bin/ed 等。Linux 檔案系統目錄總體呈現樹形結構,/ 根目錄就相當於樹根。

由於 Linux 系統免費開源,使得 Linux 發行版本有很多,利用 Linux 開發產品的團隊也有很多,如果任由每個人都按照自己的想法來配置 Linux 系統檔案目錄,後期可能會產生諸多的管理問題。試想,如果你進入一家公司,所用 Linux 系統的檔案目錄結構與所學的完全不同,實在令人頭疼。

為了避免諸多使用者對 Linux 系統目錄結構天馬行空,Linux 基金會發布了 FHS 標準。多數 Linux 發行版系統都遵循這一標準。

FHS(Filesystem Hierarchy Standard),檔案系統層次化標準,該標準規定了 Linux 系統中所有一級目錄以及部分二級目錄(/usr 和 /var)的用途。釋出此標準的主要目的就是為了讓使用者清楚地瞭解每個目錄應該存放什麼型別的檔案。

Linux 根目錄(/)

FHS 認為,Linux 系統的根目錄(/)最為重要(沒有之一),其原因有以下 2 點:

所有目錄都是由根目錄衍生出來的;

根目錄與系統的開機、修復、還原密切相關;

因此,根目錄必須包含開機軟體、核心檔案、開機所需程式、函式庫、修復系統程式等檔案,如表 1 所示。

Linux檔案目錄結構一覽表

表 1 Linux一級目錄及其作用

FHS 針對根目錄中包含的子目錄僅限於表 1,但除此之外,Linux 系統根目錄下通常還包含表 2 中的幾個一級目錄。

Linux檔案目錄結構一覽表

表 2 其他一級目錄及功能

Linux /usr目錄

usr(注意不是 user),全稱為 Unix Software Resource,此目錄用於儲存系統軟體資源。FHS 建議所有開發者,應把軟體產品的資料合理的放置在 /usr 目錄下的各子目錄中,而不是為他們的產品建立單獨的目錄。

Linux 系統中,所有系統預設的軟體都儲存在 /usr 目錄下,/usr 目錄類似

Windows 系統中 C:\Windows\ + C:\Program files\ 兩個目錄的綜合體

FHS 建議,/usr 目錄應具備表 3 所示的子目錄。

Linux檔案目錄結構一覽表

表 3 /usr 子目錄及其功能

Linux /var 目錄

/var 目錄用於儲存動態資料,例如快取、日誌檔案、軟體執行過程中產生的檔案等。通常,此目錄下建議包含如表 4 所示的這些子目錄。

Linux檔案目錄結構一覽表

表 4 /var子目錄及其功能

根據以上各表列舉的各目錄及作用,如果我們要做一些實驗和練習,需要建立一些臨時檔案,應該儲存在哪裡呢?

答案是使用者的

主目錄或 /tmp/ 臨時目錄

。但是要小心有些目錄中不能直接修改和儲存資料,比如 /proc/fn/sys/ 目錄,因為它們是儲存在記憶體中的,如果在這裡寫入資料,那麼你的記憶體會越來越小,直至宕機;/boot/ 目錄也不能儲存額外資料,因為 /boot/ 目錄會單獨分割槽作為啟動分割槽,如果沒有空閒空間,則會導致系統不能正常啟動。