2018-12-26
https://www.blackmoreops.com/2015/06/18/linux-file-system-hierarchy-v2-0/
Linux中的文件是什么?它的文件系統(tǒng)又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 Linux 中文件系統(tǒng)是標準結(jié)構(gòu)的嗎?好了,上圖簡明地闡釋了Linux
的文件系統(tǒng)的層次關(guān)系。當你苦于尋找配置文件或者二進制文件的時候,這便顯得十分有用了。我在下方添加了一些解釋以及例子,不過“篇幅較長,可以有空再看”。
另外一種情況便是當你在系統(tǒng)中獲取配置以及二進制文件時,出現(xiàn)了不一致性問題,如果你是在一個大型組織中,或者只是一個終端用戶,這也有可能會破壞你的系統(tǒng)(比如,二
進制文件運行在舊的庫文件上了)。若然你在你的Linux系統(tǒng)上做安全審計的話
https://www.blackmoreops.com/2015/02/15/in-light-of-recent-linux-exploits-linux-security-audit-is-a-must/
你將會發(fā)現(xiàn)它很容易遭到各種攻擊。所以,保持一個清潔的操作系統(tǒng)(無論是Windows還是Linux)都顯得十分重要。
Linux的文件是什么?
對于UNIX系統(tǒng)來說(同樣適用于Linux),以下便是對文件簡單的描述:
在UNIX系統(tǒng)中,一切皆為文件;若非文件,則為進程
這種定義是比較正確的,因為有些特殊的文件不僅僅是普通文件(比如命名管道和套接字),不過為了讓事情變的簡單,“一切皆為文件”也是一個可以讓人接受的說法。Linux
系統(tǒng)也像UNIX系統(tǒng)一樣,將文件和目錄視如同物,因為目錄只是一個包含了其他文件名的文件而已。程序、服務(wù)、文本、圖片等等,都是文件。對于系統(tǒng)來說,輸入和輸出設(shè)備,
基本上所有的設(shè)備,都被當做是文件。
題圖版本歷史:
下載鏈接
以下是大圖的下載地址。如果你需要其他格式,請跟原作者聯(lián)系,他會嘗試制作并且上傳到某個地方以供下載
大圖 (PNG 格式) – 2480×1755 px – 184KB
最大圖 (PDF 格式) – 9919x7019 px – 1686KB
注意: PDF格式文件是打印的最好選擇,因為它畫質(zhì)很高。
Linux 文件系統(tǒng)描述
為了有序地管理那些文件,人們習慣把這些文件當做是硬盤上的有序的樹狀結(jié)構(gòu),正如我們熟悉的'MS-DOS'(磁盤操作系統(tǒng))就是一個例子。大的分枝包括更多的分枝,分枝的末梢
是樹的葉子或者普通的文件。現(xiàn)在我們將會以這樹形圖為例,但晚點我們會發(fā)現(xiàn)為什么這不是一個完全準確的一幅圖。
Linux的文件類型
大多數(shù)文件僅僅是普通文件,他們被稱為regular文件;他們包含普通數(shù)據(jù),比如,文本、可執(zhí)行文件、或者程序、程序的輸入或輸出等等
雖然你可以認為“在Linux中,一切你看到的皆為文件”這個觀點相當保險,但這里仍有著一些例外。
目錄:由其他文件組成的文件
特殊文件:用于輸入和輸出的途徑。大多數(shù)特殊文件都儲存在/dev中,我們將會在后面討論這個問題。
鏈接文件:讓文件或者目錄出現(xiàn)在系統(tǒng)文件樹結(jié)構(gòu)上多個地方的機制。我們將詳細地討論這個鏈接文件。
(域)套接字:特殊的文件類型,和TCP/IP協(xié)議中的套接字有點像,提供進程間網(wǎng)絡(luò)通訊,并受文件系統(tǒng)的訪問控制機制保護。
命名管道 : 或多或少有點像sockets(套接字),提供一個進程間的通信機制,而不用網(wǎng)絡(luò)套接字協(xié)議。
現(xiàn)實中的文件系統(tǒng)
對于大多數(shù)用戶和常規(guī)系統(tǒng)管理任務(wù)而言,“文件和目錄是一個有序的類樹結(jié)構(gòu)”是可以接受的。然而,對于電腦而言,它是不會理解什么是樹,或者什么是樹結(jié)構(gòu)。
每個分區(qū)都有它自己的文件系統(tǒng)。想象一下,如果把那些文件系統(tǒng)想成一個整體,我們可以構(gòu)思一個關(guān)于整個系統(tǒng)的樹結(jié)構(gòu),不過這并沒有這么簡單。在文件系統(tǒng)中,一個文件代
表著一個inode(索引節(jié)點),這是一種包含著構(gòu)建文件的實際數(shù)據(jù)信息的序列號:這些數(shù)據(jù)表示文件是屬于誰的,還有它在硬盤中的位置。
每個分區(qū)都有一套屬于他們自己的inode,在一個系統(tǒng)的不同分區(qū)中,可以存在有相同inode的文件。
每個inode都表示著一種在硬盤上的數(shù)據(jù)結(jié)構(gòu),保存著文件的屬性,包括文件數(shù)據(jù)的物理地址。當硬盤被格式化并用來存儲數(shù)據(jù)時(通常發(fā)生在初始系統(tǒng)安裝過程,或者是在一個已
經(jīng)存在的系統(tǒng)中添加額外的硬盤),每個分區(qū)都會創(chuàng)建固定數(shù)量的inode。這個值表示這個分區(qū)能夠同時存儲各類文件的最大數(shù)量。我們通常用一個inode去映射2-8k的數(shù)據(jù)塊。當
一個新的文件生成后,它就會獲得一個空閑的inode。在這個inode里面存儲著以下信息:
文件屬主和組屬主
文件類型(常規(guī)文件,目錄文件......)
文件權(quán)限
創(chuàng)建、最近一次讀文件和修改文件的時間
inode里該信息被修改的時間
文件的鏈接數(shù)(詳見下一章)
文件大小
文件數(shù)據(jù)的實際地址
唯一不在inode的信息是文件名和目錄。它們存儲在特殊的目錄文件。通過比較文件名和inode的數(shù)目,系統(tǒng)能夠構(gòu)造出一個便于用戶理解的樹結(jié)構(gòu)。用戶可以通過ls -i查看inode
的數(shù)目。在硬盤上,inodes有他們獨立的空間。
*請認真填寫需求,我們會在24小時內(nèi)與您取得聯(lián)系。