官术网_书友最值得收藏!

1.6 Linux文件及文件系統(tǒng)

在安裝完Linux之后,首先對Linux中一些非常重要的概念進行簡要介紹,以便進一步學習使用Linux。

1.6.1 文件類型及文件屬性

1.文件類型

Linux中的文件類型與Windows有顯著的區(qū)別,其中最顯著的區(qū)別在于Linux對目錄和設(shè)備都當做文件進行處理,這樣就簡化了對各種不同類型設(shè)備的處理,提高了效率。Linux中主要的文件類型分為4種:普通文件、目錄文件、鏈接文件和設(shè)備文件。

1)普通文件

普通文件如同Windows中的文件一樣,是用戶日常使用最多的文件,包括文本文件、Shell腳本、二進制的可執(zhí)行程序和各種類型的數(shù)據(jù)。

2)目錄文件

在Linux中,目錄也是文件,它們包含文件名和子目錄名及指向那些文件和子目錄的指針。目錄文件是Linux中存儲文件名的唯一地方,當把文件和目錄相對應(yīng)起來時,也就是用指針將其鏈接起來之后,就構(gòu)成了目錄文件。因此,在對目錄文件進行操作時,一般不涉及對文件內(nèi)容的操作,而只是對目錄名和文件名的對應(yīng)關(guān)系進行了操作。

另外,在Linux系統(tǒng)中的每個文件都被賦予一個唯一的數(shù)值,而這個數(shù)值被稱作索引節(jié)點。索引節(jié)點存儲在一個稱作索引節(jié)點表(Inode Table)中,該表在磁盤格式化時被分配。每個實際的磁盤或分區(qū)都有其自己的索引節(jié)點表。一個索引節(jié)點包含文件的所有信息,包括磁盤上數(shù)據(jù)的地址和文件類型。

Linux文件系統(tǒng)把索引節(jié)點號1賦給根目錄,這就是Linux的根目錄文件在磁盤上的地址。根目錄文件包括文件名、目錄名及它們各自的索引節(jié)點號的列表,Linux可以通過查找從根目錄開始的一個目錄鏈來找到系統(tǒng)中的任何文件。

Linux通過上下鏈接目錄文件系統(tǒng)來實現(xiàn)對整個文件系統(tǒng)的操作。例如,把文件從一個磁盤目錄移到另一個磁盤的目錄時(實際上是通過讀取索引節(jié)點表來檢測這種行動),這時,原先文件的磁盤索引號刪除,而在新磁盤上建立相應(yīng)的索引節(jié)點。它們之間的相應(yīng)關(guān)系如圖1.22所示。

圖1.22 目錄文件與索引節(jié)點的關(guān)系

3)鏈接文件

鏈接文件類似于Windows中的“快捷方式”,但是它的功能更為強大。它可以實現(xiàn)對不同的目錄、文件系統(tǒng)甚至是不同的機器上的文件直接訪問,并且不必重新占用磁盤空間。

4)設(shè)備文件

Linux把設(shè)備都當做文件一樣來進行操作,這樣就大大方便了用戶的使用(在后面的Linux編程中可以更為明顯地看出)。在Linux下,與設(shè)備相關(guān)的文件一般都在/dev目錄下,它包括兩種,一種是塊設(shè)備文件,另一種是字符設(shè)備文件。

  • 塊設(shè)備文件是指數(shù)據(jù)的讀/寫設(shè)備,它們是以塊(如由柱面和扇區(qū)編址的塊)為單位的設(shè)備,最簡單的如硬盤(/dev/hda1)等。
  • 字符設(shè)備主要是指串行端口的接口設(shè)備。

2.文件屬性

Linux中的文件屬性如圖1.23所示。

圖1.23 Linux文件屬性表示方法

首先,Linux中文件的擁有者可以把文件的訪問屬性設(shè)成3種不同的訪問權(quán)限:可讀(r)、可寫(w)和可執(zhí)行(x)。文件又有3個不同的用戶級別:文件擁有者(u)、所屬的用戶組(g)和系統(tǒng)中的其他用戶(o)。

第一個字符顯示文件的類型如下:

  • “-”表示普通文件。
  • “d”表示目錄文件。
  • “l(fā)”表示鏈接文件。
  • “c”表示字符設(shè)備。
  • “b”表示塊設(shè)備。
  • “p”表示命名管道,如FIFO(First In First Out,先進先出)文件。
  • “f”表示堆棧文件,如LIFO(Last In First Out,后進先出)文件。第一個字符之后有3個三位字符組:
  • 第一個三位字符組表示文件擁有者(u)對該文件的權(quán)限。
  • 第二個三位字符組表示文件用戶組(g)對該文件的權(quán)限。
  • 第三個三位字符組表示系統(tǒng)其他用戶(o)對該文件的權(quán)限。
  • 若該用戶組對此沒有權(quán)限,一般顯示“-”字符。

1.6.2 文件系統(tǒng)類型介紹

1.Ext2和Ext3

Ext3是現(xiàn)在Linux(包括Red Hat,Mandrake下)常見的默認文件系統(tǒng),它是Ext2的升級版本。正如Red Hat公司的首席核心開發(fā)人員Michael K.Johnson所說,從Ext2轉(zhuǎn)換到Ext3主要有以下4個理由:可用性、數(shù)據(jù)完整性、速度及易于轉(zhuǎn)化。Ext3中采用了日志式的管理機制,它使文件系統(tǒng)具有很強的快速恢復能力,并且由于從Ext2轉(zhuǎn)換到Ext3無須進行格式化,因此,更加推進了Ext3文件系統(tǒng)的推廣。

2.SWAP文件系統(tǒng)

該文件系統(tǒng)是Linux中作為交換分區(qū)使用的。在安裝Linux時,交換分區(qū)是必須建立的,并且它所采用的文件系統(tǒng)類型必須是SWAP而沒有其他選擇。

3.VFAT文件系統(tǒng)

Linux中,把DOS中采用的FAT文件系統(tǒng)(包括FAT12、FAT16和FAT32)都稱為VFAT文件系統(tǒng)。

4.NFS文件系統(tǒng)

NFS文件系統(tǒng)是指網(wǎng)絡(luò)文件系統(tǒng),這種文件系統(tǒng)也是Linux的獨到之處。它可以很方便地在局域網(wǎng)內(nèi)實現(xiàn)文件共享,并且使多臺主機共享同一主機上的文件系統(tǒng)。而且NFS文件系統(tǒng)訪問速度快、穩(wěn)定性高,已經(jīng)得到了廣泛的應(yīng)用,尤其是在嵌入式領(lǐng)域,使用NFS文件系統(tǒng)可以很方便地實現(xiàn)文件本地修改,從而免去了一次次讀/寫Flash的憂慮。

5.ISO 9660文件系統(tǒng)

這是光盤所使用的文件系統(tǒng),在Linux中對光盤已有了很好的支持,它不僅可以提供對光盤的讀/寫,還可以實現(xiàn)對光盤的刻錄。

1.6.3 Linux目錄結(jié)構(gòu)

Linux的目錄結(jié)構(gòu)如圖1.24所示。下面以Red Hat Enterprise 4 AS為例,詳細列出了Linux文件系統(tǒng)中各主要目錄的存放內(nèi)容,如表1.1所示。

表1.1 Linux文件系統(tǒng)目錄結(jié)構(gòu)

圖1.24 Linux目錄結(jié)構(gòu)

主站蜘蛛池模板: 克什克腾旗| 大洼县| 阿瓦提县| 桑日县| 准格尔旗| 安徽省| 夏河县| 故城县| 东光县| 余姚市| 五莲县| 淮滨县| 黑龙江省| 当阳市| 边坝县| 广州市| 六安市| 固始县| 双鸭山市| 夏邑县| 任丘市| 二手房| 丹阳市| 苏尼特左旗| 清涧县| 西安市| 宾阳县| 静安区| 齐河县| 邢台县| 柏乡县| 延安市| 监利县| 恩施市| 赞皇县| 白水县| 壶关县| 阿巴嘎旗| 嫩江县| 东源县| 理塘县|