Linux檔案系統概述,linux檔案概述
Unix檔案是以位元組序列組成的資訊載體(container),核心不解釋檔案的內容。
Linux檔案系統中的檔案是資料的集合,檔案系統不僅包含著檔案中的資料而且還有系統的結構,所有Linux使用者和程式看到的檔案、目錄、軟連結及檔案保護資訊等都儲存在其中。
Linux最早的檔案系統是Minux,但是專門為Linux設計的檔案系統---擴充檔案系統第二版(EXT2)被設計 出來並添加到Linux中,這對Linux產生了重大影響。
Linux常用的檔案系統
ext2:ext2的升級版本ext3是Linux預設的檔案系統
swap:作為交換分區來使用,在安裝Linux系統時必須要建立
vfat:相容Windows作業系統,主要是FAT16、FAT32
NFS:網路檔案系統,是Linux的獨到之處,方便在區域網路中實現檔案的共用,可以實現多台主機共用一台主機的檔案系統
永久連結和軟連結
命令格式:
$ ln P1 P2
用來建立一個新的永久連結,即為由路徑P1標識的檔案建立一個路徑名為P2的永久連結。
永久連結有兩方面的限制
軟連結(soft link)[也稱符號連結(symbolic link)]
符號連結是短檔案,這些檔案包含有另一個檔案的任意一個路徑名。路徑名可以指向位於任意一個檔案系統的任意檔案或目錄,甚至可以指向一個不存在的檔案。
命令格式:
$ ln -s P1 P2
建立一個路徑名為P2的新軟連結,P2指向路徑名P1。
Linux目錄結構
Linux的檔案系統採用階層式的樹狀目錄結構,在該結構中的最上層是根目錄“/”,然後再根目錄下再建立其它的目錄。
檔案或目錄名由除“/”和Null 字元“\0”之外的任意ASCII字元序列組成(一些作業系統允許以多種自負表示檔案名稱,例如:Unicode)。大多數檔案系統對檔案名稱的長度都有限制,通常不能超過255個字元。
Linux中無論作業系統管理幾個磁碟分割,這樣的分類樹只有一個。從結構上講,個磁碟分割上的樹型目錄不一定是並列的。
常用目錄的作用
根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來儲存系統命令的。
proc和sys目錄不能直接操作,這兩個目錄儲存的是記憶體的過載點。
Linux檔案類型
普通檔案:通常是流式檔案。
[root@AmorLei tmp]# ls -lh yan.test-rw-r--r-- 1 root root 13 Sep 22 15:05 yan.test
目錄檔案:用於表示和管理系統中的全部檔案
[root@AmorLei tmp]# ls -lhdrwxr-xr-x 2 root root 4.0K Sep 26 12:20 yanlei
連結檔案:用於不同目錄下的檔案的共用
[root@AmorLei tmp]# ls -lh yan.softlinklrwxrwxrwx 1 root root 8 Sep 26 12:26 yan.softlink -> yan.test
裝置檔案:包括塊裝置檔案和字元裝置檔案
b代表區塊(block)裝置,c代表字元(character)裝置
[root@AmorLei /]# ls -la /dev/ttycrw-rw-rw- 1 root tty 5, 0 Sep 15 20:35 /dev/tty
管道(pipe,FIFO)檔案:提供處理序間通訊的一種方式
通訊端(socket)檔案:該檔案類型與網路通訊有關
[root@AmorLei /]# ls -lh /var/lib/mysql/mysql.socksrwxrwxrwx 1 mysql mysql 0 Sep 26 12:20 /var/lib/mysql/mysql.sock
檔案描述符與索引節點
Unix對檔案的內容和描述檔案的資訊給出了清楚的區分。除了裝置檔案和特殊檔案系統檔案外,每個檔案都由字元序列組成。
檔案系統處理檔案需要的所有資訊包含在一個名為索引節點(inode)的資料結構中。每個檔案都有自己的索引節點,檔案系統用索引節點來標識檔案。
檔案系統至少提供POSIX標準中指定的如下屬性:
存取權限和檔案模式
檔案的潛在使用者分為三種類型
作為檔案所有者的使用者
同組使用者,不包括所有者
所有剩下的使用者(其他)
有三種類型的存取權限---讀、寫、執行,每組使用者都有這三種許可權。
分區
在Windows作業系統中,是先將物理地址分開,再在分區上建立目錄。在Windows作業系統中,所有路徑都是從盤符開始,如C:\Program file。
Linux正好相反,是先有目錄,再將物理地址映射到目錄中。在Linux作業系統中,所有路徑都是從根目錄開始。Linux預設分為3個分區,分別是boot分區、swap分區和根分區。
掛載
Linux下的分區需要掛載到目錄後才能使用,掛載的意義就是把磁碟分割的內容放在某個目錄下。這個把目錄和分區對應的過程叫做掛載(Mount)而這個掛載在檔案樹中的位置就是掛載點。
當要使用某個裝置時,例如要讀取硬碟中的一個格式化好的分區、光碟片或軟體等裝置時,必須先把這些裝置對應到某個目錄上,而這個目錄就稱為“掛載點(mount point)”,這樣才可以讀取這些裝置,將物理分區細節屏蔽掉,使用者只有統一的邏輯概念,所有的東西都是檔案。
參考資料:
深入理解Linux核心 Daniel P.Bovet & Marco Cesati