對於每一個Linux學習者來說,瞭解Linux檔案系統的目錄結構,是學好Linux的至關重要的一步.,深入瞭解linux檔案目錄結 構的標準和每個目錄的詳細功能,對於我們用好linux系統只管重要,下面我們就開始瞭解一下linux目錄結構的相關知識。
當在使用Linux的時候,如果您通過ls –l / 就會發現,在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等 目錄,而在這些目錄中,我們進去看看,發現也有很多的目錄或檔案。檔案系統在Linux下看上去就象樹形結構,所以我們可以 把檔案系統的結構形象的稱為 樹形結構。
檔案系統的是用來組織和排列檔案存取的,所以她是可見的,在Linux中,我 們可以通過ls等工具來查看其結構,在Linux系統中,我們見到的都是樹形結構;比如作業系統安裝在一個檔案系統中,他表現 為由/ 起始的樹形結構。linux檔案系統的最頂端是/,我們稱/為Linux的root,也就是 Linux作業系統的檔案系統。Linux的文 件系統的入口就是/,所有的目錄、檔案、裝置都在/之下,/就是Linux檔案系統的召集人,也是最上級的領導者。
由於 linux是開放原始碼,各大公司和團體根據linux的核心代碼做各自的操作,編程。這樣就造成在根下的目錄的不同。這樣就造成 個人不能使用他人的linux系統的PC。因為你根本不知道一些基本的配置,檔案在哪裡。。。這就造成了混亂。這就是FHS (Filesystem Hierarchy Standard )機構誕生的原因。該機構是linux愛好者自發的組成的一個團體,主要是是對linux做一些 基本的要求,不至於是操作者換一台主機就成了linux的‘文盲’。
根據FHS(http://www.pathname.com/fhs/)的官方文 件指出, 他們的主要目的是希望讓使用者可以瞭解到已安裝軟體通常放置於那個目錄下, 所以他們希望獨立的軟體開發商、操 作系統製作者、以及想要維護系統的使用者,都能夠遵循FHS的標準。 也就是說,FHS的重點在於規範每個特定的目錄下應該要放 置什麼樣子的資料而已。 這樣做好處非常多,因為Linux作業系統就能夠在既有的面貌下(目錄架構不變)發展出開發人員想要的獨 特風格。
事實上,FHS是根據過去的經驗一直再持續的改版的,FHS依據檔案系統使用的頻繁與否與是否允許使用者隨意 更動, 而將目錄定義成為四種互動作用的形態,用表格來說有點像底下這樣:
四中類型:
1. 可 分享的:
可以分享給其他系統掛載使用的目錄,所以包括執行檔案與使用者的郵件等資料, 是能夠分享給網路上其他主機 掛載用的目錄;
2. 不可分享的:
自己機器上面運作的裝置檔案或者是與程式有關的socket檔案等, 由於僅與自 身機器有關,所以當然就不適合分享給其他主機了。
3. 不變的:
有些資料是不會經常變動的,跟隨著 distribution而不變動。 例如函式庫、檔案說明檔案、系統管理員所管理的主機服務組態檔等等;
4. 可變動的:
經常改變的資料,例如登入檔案、一般使用者可自行收受的新聞群組等。
事實上,FHS針對分類樹架構僅定義出三層 目錄底下應該放置什麼資料而已,分別是底下這三個目錄的定義:
/ (root, 根目錄):與開機系統有關;
/usr (unix software resource):與軟體安裝/執行有關;
/var (variable):與系統運作過程有關。
一. 根目錄 (/) 的意義與內容:
根目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的, 同時根目錄也與 開機/還原/系統修複等動作有關。 由於系統開機時需要特定的開機軟體、核心檔案、開機所需程式、 函式庫等等檔案資料,若 系統出現錯誤時,根目錄也必須要包含有能夠修複檔案系統的程式才行。 因為根目錄是這麼的重要,所以在FHS的要求方面,他 希望根目錄不要放在非常大的分區, 因為越大的分區內你會放入越多的資料,如此一來根目錄所在分區就可能會有較多發生錯 誤的機會。
因此FHS標準建議:根目錄(/)所在分區應該越小越好, 且應用程式所安裝的軟體最好不要與根目錄放在同一 個分區內,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的檔案系統也較不容易發生問題。說白了,就是根目錄和 Windows的C盤一個樣。
根據以上原因,FHS認為根目錄(/)下應該包含如下子目錄:
除了這些目錄的內容之外 ,另外要注意的是,因為根目錄與開機有關,開機過程中僅有根目錄會被掛載, 其他分區則是在開機完成之後才會持續的進行 掛載的行為。就是因為如此,因此根目錄下與開機過程有關的目錄, 就不能夠與根目錄放到不同的分區去。那哪些目錄不可與 根目錄分開呢?有底下這些:
/etc:設定檔
/bin:重要執行檔
/dev:所需要的裝置檔案
/lib: 執行檔所需的函式庫與核心所需的模組
/sbin:重要的系統執行檔案
這五個目錄千萬不可與根目錄分開在不同的 分區。請背下來啊。