Linux 文件系統結構介紹

2018-12-26

https://www.blackmoreops.com/2015/06/18/linux-file-system-hierarchy-v2-0/


微信圖片_20181226163450.jpg


Linux中的(de)文件是什麽?它的(de)文件系統又是什麽?那些配置文件又在哪裏?我下載好的(de)程序保存在哪裏了?在 Linux 中文件系統是标準結構的(de)嗎?好了,上圖簡明地(dì)闡釋了Linux


的(de)文件系統的(de)層次關系。當你苦于尋找配置文件或者二進制文件的(de)時候,這便顯得十分有用了。我在下方添加了一(yī)些解釋以及例子(zǐ),不過“篇幅較長(cháng),可(kě)以有空再看”。


另外一(yī)種情況便是當你在系統中獲取配置以及二進制文件時,出現了不一(yī)緻性問題,如(rú)果你是在一(yī)個大型組織中,或者隻是一(yī)個終端用戶,這也有可(kě)能會破壞你的(de)系統(比如(rú),二


進制文件運行在舊(jiù)的(de)庫文件上了)。若然你在你的(de)Linux系統上做(zuò)安全審計的(de)話

https://www.blackmoreops.com/2015/02/15/in-light-of-recent-linux-exploits-linux-security-audit-is-a-must/

你将會發現它很容易遭到各種攻擊。所以,保持一(yī)個清潔的(de)操作系統(無論是Windows還是Linux)都顯得十分重要。


Linux的(de)文件是什麽?


對于UNIX系統來說(同樣适用于Linux),以下便是對文件簡單的(de)描述:


在UNIX系統中,一(yī)切皆為(wèi)文件;若非文件,則為(wèi)進程


這種定義是比較正确的(de),因為(wèi)有些特殊的(de)文件不僅僅是普通文件(比如(rú)命名管道(dào)和(hé)套接字),不過為(wèi)了讓事情變的(de)簡單,“一(yī)切皆為(wèi)文件”也是一(yī)個可(kě)以讓人接受的(de)說法。Linux


系統也像UNIX系統一(yī)樣,将文件和(hé)目錄視(shì)如(rú)同物,因為(wèi)目錄隻是一(yī)個包含了其他文件名的(de)文件而已。程序、服務、文本、圖片等等,都是文件。對于系統來說,輸入和(hé)輸出設備,


基本上所有的(de)設備,都被當做(zuò)是文件。


題圖版本曆史:


微信圖片_20181226163455.png


下載鏈接


以下是大圖的(de)下載地(dì)址。如(rú)果你需要其他格式,請跟原作者聯系,他會嘗試制作并且上傳到某個地(dì)方以供下載


大圖 (PNG 格式)  – 2480×1755 px – 184KB


最大圖 (PDF 格式)  – 9919x7019 px – 1686KB


注意: PDF格式文件是打印的(de)最好選擇,因為(wèi)它畫質很高(gāo)。


Linux 文件系統描述


為(wèi)了有序地(dì)管理(lǐ)那些文件,人們習慣把這些文件當做(zuò)是硬盤上的(de)有序的(de)樹狀結構,正如(rú)我們熟悉的(de)'MS-DOS'(磁盤操作系統)就是一(yī)個例子(zǐ)。大的(de)分枝包括更多的(de)分枝,分枝的(de)末梢


是樹的(de)葉子(zǐ)或者普通的(de)文件。現在我們将會以這樹形圖為(wèi)例,但晚點我們會發現為(wèi)什麽這不是一(yī)個完全準确的(de)一(yī)幅圖。


微信圖片_20181226163458.jpg

微信圖片_20181226163500.jpg

微信圖片_20181226163501.jpg


Linux的(de)文件類型


大多數文件僅僅是普通文件,他們被稱為(wèi)regular文件;他們包含普通數據,比如(rú),文本、可(kě)執行文件、或者程序、程序的(de)輸入或輸出等等


雖然你可(kě)以認為(wèi)“在Linux中,一(yī)切你看到的(de)皆為(wèi)文件”這個觀點相當保險,但這裏仍有着一(yī)些例外。


目錄:由其他文件組成的(de)文件


特殊文件:用于輸入和(hé)輸出的(de)途徑。大多數特殊文件都儲存在/dev中,我們将會在後面讨論這個問題。


鏈接文件:讓文件或者目錄出現在系統文件樹結構上多個地(dì)方的(de)機制。我們将詳細地(dì)讨論這個鏈接文件。


(域)套接字:特殊的(de)文件類型,和(hé)TCP/IP協議中的(de)套接字有點像,提供進程間網絡通訊,并受文件系統的(de)訪問控制機制保護。


命名管道(dào) : 或多或少有點像sockets(套接字),提供一(yī)個進程間的(de)通信機制,而不用網絡套接字協議。


現實中的(de)文件系統


對于大多數用戶和(hé)常規系統管理(lǐ)任務而言,“文件和(hé)目錄是一(yī)個有序的(de)類樹結構”是可(kě)以接受的(de)。然而,對于電腦而言,它是不會理(lǐ)解什麽是樹,或者什麽是樹結構。


每個分區都有它自(zì)己的(de)文件系統。想象一(yī)下,如(rú)果把那些文件系統想成一(yī)個整體,我們可(kě)以構思一(yī)個關于整個系統的(de)樹結構,不過這并沒有這麽簡單。在文件系統中,一(yī)個文件代


表着一(yī)個inode(索引節點),這是一(yī)種包含着構建文件的(de)實際數據信息的(de)序列号:這些數據表示文件是屬于誰的(de),還有它在硬盤中的(de)位置。


每個分區都有一(yī)套屬于他們自(zì)己的(de)inode,在一(yī)個系統的(de)不同分區中,可(kě)以存在有相同inode的(de)文件。


每個inode都表示着一(yī)種在硬盤上的(de)數據結構,保存着文件的(de)屬性,包括文件數據的(de)物理(lǐ)地(dì)址。當硬盤被格式化并用來存儲數據時(通常發生在初始系統安裝過程,或者是在一(yī)個已


經存在的(de)系統中添加額外的(de)硬盤),每個分區都會創建固定數量的(de)inode。這個值表示這個分區能夠同時存儲各類文件的(de)最大數量。我們通常用一(yī)個inode去(qù)映射2-8k的(de)數據塊。當


一(yī)個新的(de)文件生成後,它就會獲得一(yī)個空閑的(de)inode。在這個inode裏面存儲着以下信息:


文件屬主和(hé)組屬主


文件類型(常規文件,目錄文件......)


文件權限


創建、最近一(yī)次讀文件和(hé)修改文件的(de)時間


inode裏該信息被修改的(de)時間


文件的(de)鏈接數(詳見下一(yī)章(zhāng))


文件大小


文件數據的(de)實際地(dì)址


唯一(yī)不在inode的(de)信息是文件名和(hé)目錄。它們存儲在特殊的(de)目錄文件。通過比較文件名和(hé)inode的(de)數目,系統能夠構造出一(yī)個便于用戶理(lǐ)解的(de)樹結構。用戶可(kě)以通過ls -i查看inode


的(de)數目。在硬盤上,inodes有他們獨立的(de)空間。


您的(de)項目需求咨詢熱線:0760-88610046(國(guó)家高(gāo)新技術企業)

*請認真填寫需求,我們會在24小時內(nèi)與您取得聯系。