Linux操作系統文件系統基礎知識詳解
一 、Linux文件結構
本文引用地址:http://dyxdggzs.com/article/201610/305601.htm文件結構是文件存放在磁盤(pán)等存貯設備上的組織方法。主要體現在對文件和目錄的組織上。
目錄提供了管理文件的一個(gè)方便而有效的途徑。
Linux使用標準的目錄結構,在安裝的時(shí)候,安裝程序就已經(jīng)為用戶(hù)創(chuàng )建了文件系統和完整而固定的目錄組成形式,并指定了每個(gè)目錄的作用和其中的文件類(lèi)型。
/根目錄
┃
┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃ ┃
┏━┻━┓ ┏━━┳━━┳━━┳━┻━┳━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
rc.d cron.d X11R6 src lib local man bin
┃
┏━━━┳━━┳━┻━┳━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d …… linux bin lib src
Linux采用的是樹(shù)型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。微軟的DOS和windows也是采用樹(shù)型結構,但是在DOS和 windows中這樣的樹(shù)型結構的根是磁盤(pán)分區的盤(pán)符,有幾個(gè)分區就有幾個(gè)樹(shù)型結構,他們之間的關(guān)系是并列的。但是在linux中,無(wú)論操作系統管理幾個(gè)磁盤(pán)分區,這樣的目錄樹(shù)只有一個(gè)。從結構上講,各個(gè)磁盤(pán)分區上的樹(shù)型目錄不一定是并列的。
如果這樣講不好理解的話(huà),我來(lái)舉個(gè)例子:
有一塊硬盤(pán),分成了4個(gè)分區,分別是/;/boot;/usr和windows下的fat
對于/和/boot或者/和/usr,它們是從屬關(guān)系;對于/boot和/usr,它們是并列關(guān)系。
如果我把windows下的fat分區掛載到/mnt/winc下,(掛載??哦,別急,呵呵,一會(huì )就講,一會(huì )就講。)那么對于/mnt/winc和/usr或/mnt/winc和/boot來(lái)說(shuō),它們是從屬于目錄樹(shù)上沒(méi)有任何關(guān)系的兩個(gè)分支。
因為linux是一個(gè)多用戶(hù)系統,制定一個(gè)固定的目錄規劃有助于對系統文件和不同的用戶(hù)文件進(jìn)行統一管理。但就是這一點(diǎn)讓很多從windows轉到linux的初學(xué)者感到頭疼。下面列出了linux下一些主要目錄的功用。
/bin 二進(jìn)制可執行命令
/dev 設備特殊文件
/etc 系統管理和配置文件
/etc/rc.d 啟動(dòng)的配置文件和腳本
/home 用戶(hù)主目錄的基點(diǎn),比如用戶(hù)user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動(dòng)態(tài)鏈接共享庫,作用類(lèi)似windows里的.dll文件
/sbin 系統管理命令,這里存放的是系統管理員使用的管理程序
/tmp 公用的臨時(shí)文件存儲點(diǎn)
/root 系統管理員的主目錄(呵呵,特權階級)
/mnt 系統提供這個(gè)目錄是讓用戶(hù)臨時(shí)掛載其他的文件系統。
/lost+found 這個(gè)目錄平時(shí)是空的,系統非正常關(guān)機而留下“無(wú)家可歸”的文件(windows下叫什么.chk)就在這里
/proc 虛擬的目錄,是系統內存的映射??芍苯釉L(fǎng)問(wèn)這個(gè)目錄來(lái)獲取系統信 息。
/var 某些大文件的溢出區,比方說(shuō)各種服務(wù)的日志文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個(gè)目錄。其中包 含:
/usr/X11R6 存放X window的目錄
/usr/bin 眾多的應用程序
/usr/sbin 超級用戶(hù)的一些管理程序
/usr/doc linux文檔
/usr/include linux下開(kāi)發(fā)和編譯應用程序所需要的頭文件
/usr/lib 常用的動(dòng)態(tài)鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫
二 、linux文件系統
文件系統指文件存在的物理空間,linux系統中每個(gè)分區都是一個(gè)文件系統,都有自己的目錄層次結構。linux會(huì )將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個(gè)系統的總的目錄層次結構。一個(gè)操作系統的運行離不開(kāi)對文件的操作,因此必然要擁有并維護自己的文件系統。
Llinux文件系統使用索引節點(diǎn)來(lái)記錄文件信息,作用像windows的文件分配表。
索引節點(diǎn)是一個(gè)結構,它包含了一個(gè)文件的長(cháng)度、創(chuàng )建及修改時(shí)間、權限、所屬關(guān)系、磁盤(pán)中的位置等信息。一個(gè)文件系統維護了一個(gè)索引節點(diǎn)的數組,每個(gè)文件或目錄都與索引節點(diǎn)數組中的唯一一個(gè)元素對應。系統給每個(gè)索引節點(diǎn)分配了一個(gè)號碼,也就是該節點(diǎn)在數組中的索引號,稱(chēng)為索引節點(diǎn)號。
linux文件系統將文件索引節點(diǎn)號和文件名同時(shí)保存在目錄中。所以,目錄只是將文件的名稱(chēng)和它的索引節點(diǎn)號結合在一起的一張表,目錄中每一對文件名稱(chēng)和索引節點(diǎn)號稱(chēng)為一個(gè)連接。
對于一個(gè)文件來(lái)說(shuō)有唯一的索引節點(diǎn)號與之對應,對于一個(gè)索引節點(diǎn)號,卻可以有多個(gè)文件名與之對應。因此,在磁盤(pán)上的同一個(gè)文件可以通過(guò)不同的路徑去訪(fǎng)問(wèn)它。
可以用ln命令對一個(gè)已經(jīng)存在的文件再建立一個(gè)新的連接,而不復制文件的內容。連接有軟連接和硬連接之分,軟連接又叫符號連接。它們各自的特點(diǎn)是:
硬連接:原文件名和連接文件名都指向相同的物理地址。
目錄不能有硬連接;硬連接不能跨越文件系統(不能跨越不同的分區)
文件在磁盤(pán)中只有一個(gè)拷貝,節省硬盤(pán)空間;
由于刪除文件要在同一個(gè)索引節點(diǎn)屬于唯一的連接時(shí)才能成功,因此可以防止不必要的誤刪除。
符號連接:用ln -s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個(gè)文件,它的數據是它所連接的文件的路徑名。類(lèi)似windows下的快捷方式。
可以刪除原有的文件而保存連接文件,沒(méi)有防止誤刪除功能。
這一段的的內容過(guò)于抽象,又是節點(diǎn)又是數組的,我已經(jīng)盡量通俗再通俗了,又不好加例子作演示。大家如果還是云里霧里的話(huà),我也沒(méi)有什么辦法了,只有先記住,日后在實(shí)際應用中慢慢體會(huì )、理解了。這也是我學(xué)習的一個(gè)方法吧。
三 、掛載文件系統
由上一節知道,linux系統中每個(gè)分區都是一個(gè)文件系統,都有自己的目錄層次結構。linux會(huì )將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個(gè)系統的總的目錄層次結構。這里所說(shuō)的“按一定方式”就是指的掛載。
評論