檔案系統層次標準(FHS)簡介

Jonathan Terrasi發表於2017-08-07
作者: Jonathan Terrasi 譯者: LCTT Firmy Yang

| 2017-08-07 18:20   收藏: 1    

當你好奇地看著系統的根目錄(/)的時候,可能會發現自己有點不知所措。大多數三個字母的目錄名稱並沒有告訴你它們是做什麼的,如果你需要做出一些重要的修改,那就很難知道在哪裡可以檢視。

我想給那些沒有深入瞭解過自己的根目錄的人簡單地介紹下它。

有用的工具

在我們開始之前,這裡有幾個需要熟悉的工具,它們可以讓您隨時挖掘那些您自己找到的有趣的東西。這些程式都不會對您的檔案進行任何更改。

最有用的工具是 ls -- 它列出了使用完整路徑或相對路徑(即從當前目錄開始的路徑)作為引數給出的任何目錄的內容。

$ ls 路徑

當您進一步深入檔案系統時,重複輸入長路徑可能會變得很麻煩,所以如果您想簡化這一操作,可以用 cd 替換 ls 來更改當前的工作目錄到該目錄。與 ls 一樣,只需將目錄路徑作為 cd 的引數。

$ cd 路徑

如果您不確定某個檔案是什麼檔案型別的,可以透過執行 file 並且將檔名作為 file 命令的引數。

$ file 檔名

最後,如果這個檔案看起來像是適宜閱讀的,那麼用 less 來看看(不用擔心檔案有改變)。與最後一個工具一樣,給出一個檔名作為引數來檢視它。

$ less 檔名

完成檔案翻閱後,點選 q 鍵退出,即可返回到您的終端。

根目錄之旅

現在就開始我們的旅程。我將按照字母順序介紹直接放在根目錄下的目錄。這裡並沒有介紹所有的目錄,但到最後,我們會突出其中的亮點。

我們所有要遍歷的目錄的分類及功能都基於 Linux 的檔案系統層次標準(FHS)。Linux 基金會維護的 Linux FHS 幫助發行版和程式的設計者和開發人員來規劃他們的工具的各個元件應該存放的位置。

透過將各個程式的所有檔案、二進位制檔案和幫助手冊儲存在一致的組織結構中,FHS 讓對它們的學習、除錯或修改更加容易。想象一下,如果不是使用 man 命令找到使用指南,那麼你就得對每個程式分別尋找其手冊。

按照字母順序和結構順序,我們從 /bin 開始。該目錄是存放所有核心繫統二進位制檔案的地方,其包含的命令可以在 shell (解釋終端指令的程式)中使用。沒有這個目錄的內容,你的系統就基本沒法使用。

接下來是 /boot 目錄,它儲存了您的計算機啟動所需的所有東西。其中最重要的是載入程式和核心。載入程式是一個透過初始化一些基礎工具,使引導過程得以繼續的程式。在初始化結束時,載入程式會載入核心,核心允許計算機與所有其它硬體和韌體進行介面。從這一點看,它可以使整個作業系統工作起來。

/dev 目錄用於儲存類似檔案的物件來表示被系統識別為“裝置”的各種東西。這裡包括許多顯式的裝置,如計算機的硬體元件:鍵盤、螢幕、硬碟驅動器等。

此外,/dev 還包含被系統視為“裝置”的資料流的偽檔案。一個例子是流入和流出您的終端的資料,可以分為三個“流”。它讀取的資訊被稱為“標準輸入”。命令或程式的輸出是“標準輸出”。最後,被分類為除錯資訊的輔助性輸出指向到“標準錯誤”。終端本身作為檔案也可以在這裡找到。

/etc(發音類似工藝商業網站 “Etsy”,如果你想讓 Linux 老使用者驚豔一下的話,囧),許多程式在這裡儲存它們的配置檔案,用於改變它們的設定。一些程式儲存這裡的是預設配置的副本,這些副本將在修改之前複製到另一個位置。其它的程式在這裡儲存配置的唯一副本,並期望使用者可以直接修改。為 root 使用者保留的許多程式常用一種配置模式。

/home 目錄是使用者個人檔案所在的位置。對於桌面使用者來說,這是您花費大部分時間的地方。對於每個非特權使用者,這裡都有一個具有相應名稱的目錄。

/lib 是您的系統賴以執行的許多庫的所在地。許多程式都會重複使用一個或多個功能或子程式,它們經常會出現在幾十上百個程式中。所以,如果每個程式在其二進位制檔案中重複寫它需要的每一個元件,結果會是產生出一些大而無當的程式,作為更好的替代方案,我們可以透過進行“庫呼叫”來引用這些庫中的一個或多個。

/media 目錄中可以訪問像 USB 快閃記憶體驅動器或攝像機這樣的可移動媒體。雖然它並不是所有系統上都有,但在一些專注於直觀的桌面系統中還是比較普遍的,如 Ubuntu。具有儲存能力的媒體在此處被“掛載”,這意味著當裝置中的原始位流位於 /dev 目錄下時,使用者通常可以在這裡訪問那些可互動的檔案物件。

/proc 目錄是一個動態顯示系統資料的虛擬檔案系統。這意味著系統可以即時地建立 /proc 的內容,用包含執行時生成的系統資訊(如硬體統計資訊)的檔案進行填充。

/tmp 正如其名字,用於放置快取資料等臨時資訊。這個目錄不做其他更多的事情。

現代 Linux 系統上大多數程式的二進位制檔案儲存在 /usr 目錄中。為了統一包含二進位制檔案的各種目錄,/usr 包含 /bin/sbin/lib 中的所有內容的副本。

最後,/var 裡儲存“可變variable”長度的資料。這裡的可變長度資料的型別通常是會累積的資料,就像日誌和快取一樣。一個例子是你的核心保留的日誌。

為了避免硬碟空間用盡和崩潰的情況,/var 內建了“日誌旋轉”功能,可刪除舊資訊,為新資訊騰出空間,維持固定的最大大小。

結尾

正如我所說,這裡介紹的絕對不是您在根目錄中可以找到的一切,但是確定系統核心功能所在地是一個很好的開始,而且可以更深入地研究這些功能是什麼。

所以,如果你不知道要學習什麼,就可能有很多的想法。如果你想得到一個更好的想法,就在這些目錄中折騰自己吧!


作者簡介:

自 2017 年以來 Jonathan Terrasi 一直是 ECT 新聞網的專欄作家。他的主要興趣是電腦保安(特別是 Linux 桌面),加密和分析政治和時事。他是全職自由作家和音樂家。他的背景包括在芝加哥委員會發表的保衛人權法案文章中提供技術評論和分析。


via: http://www.linuxinsider.com/story/84658.html

作者:Jonathan Terrasi 譯者:firmianay 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

檔案系統層次標準(FHS)簡介

相關文章