加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1.3  Linux文件及文件系統(tǒng)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Linux快速入門之:Linux文件及文件系統(tǒng)

2013/09/13
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

1.3??Linux文件及文件系統(tǒng)

在安裝完Linux之后,下面先對Linux中一些非常重要的概念做一些介紹,以便進一步學(xué)習(xí)使用Linux。

1.3.1??文件類型及文件屬性

1.文件類型

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

(1)普通文件。

普通文件同Windows中的文件一樣,是用戶日常使用最多的文件。它包括文本文件、shell腳本(shell的概念在第2章會進行講解)、二進制的可執(zhí)行程序和各種類型的數(shù)據(jù)。

(2)目錄文件。

在Linux中,目錄也是文件,它們包含文件名和子目錄名以及指向那些文件和子目錄的指針。目錄文件是Linux中存儲文件名的惟一地方,當(dāng)把文件和目錄相對應(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通過目錄鏈接來實現(xiàn)對整個文件系統(tǒng)的操作。比如,把文件從一個磁盤目錄移到另一實際磁盤的目錄時(實際上是通過讀取索引節(jié)點表來檢測這種動作的),這時,原先文件的磁盤索引號被刪除,在新磁盤上建立相應(yīng)的索引節(jié)點。它們之間的相應(yīng)關(guān)系如圖1.5所示。

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

(3)鏈接文件。

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

(4)設(shè)備文件。

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

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

n 字符設(shè)備主要是指串行端口的接口設(shè)備。

2.文件屬性

Linux中的文件屬性如圖1.6如示。

圖1.6??Linux文件屬性表示方法

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

第一個字符顯示文件的類型。

n “-”表示普通文件。

n “d”表示目錄文件。

n “l(fā)”表示鏈接文件。

n “c”表示字符設(shè)備。

n “b”表示塊設(shè)備。

n “p”表示命名管道,比如FIFO文件(First?In?First?Out,先進先出)。

n “f”表示堆棧文件,比如LIFO文件(Last?In?First?Out,后進先出)。

n “s”表示套接字。

第一個字符之后有三個三位字符組:

n 第一個三位字符組表示文件擁有者(u)對該文件的權(quán)限。

n 第二個三位字符組表示文件用戶組(g)對該文件的權(quán)限。

n 第三個三位字符組表示系統(tǒng)其他用戶(o)對該文件的權(quán)限。

n 若該用戶組對此沒有權(quán)限,一般顯示“-”字符。

?

小知識

目錄權(quán)限和文件權(quán)限有一定的區(qū)別。對于目錄而言,r代表允許列出該目錄下的文件和子目錄,w代表允許生成和刪除該目錄下的文件,x代表允許訪問該目錄。

1.3.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)具有很強的快速恢復(fù)能力,并且由于從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.ISO9660文件系統(tǒng)

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

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

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

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

目????錄

目?錄?內(nèi)?容

/bin

bin就是二進制(binary)的英文縮寫。在這里存放Linux常用操作命令的執(zhí)行文件,如mv、ls、mkdir等。有時,這個目錄的內(nèi)容和/usr/bin里面的內(nèi)容一樣,它們都是放置一般用戶使用的執(zhí)行文件

/boot

這個目錄下存放操作系統(tǒng)啟動時所要用到的程序。如啟動grub就會用到其下的/boot/grub子目錄

/dev

該目錄中包含了所有Linux系統(tǒng)中使用的外部設(shè)備。要注意的是,這里并不是存放外部設(shè)備的驅(qū)動程序,它實際上是一個訪問這些外部設(shè)備的端口。由于在Linux中,所有的設(shè)備被當(dāng)作文件進行操作,比如:/dev/cdrom代表光驅(qū),用戶可以非常方便地像訪問文件、目錄一樣對其進行訪問

/etc

該目錄下存放了系統(tǒng)管理時要用到的各種配置文件和子目錄。如網(wǎng)絡(luò)配置文件、文件系統(tǒng)、x系統(tǒng)配置文件、設(shè)備配置信息、設(shè)置用戶信息等都在這個目錄下。系統(tǒng)在啟動過程中需要讀取其參數(shù)并進行相應(yīng)的配置

/etc/rc.d

該目錄主要存放Linux啟動和關(guān)閉時要用到的腳本文件,在后面的啟動詳解中還會進一步地講解

/etc/rc.d/init

該目錄存放所有Linux服務(wù)默認的啟動腳本(在新版本的Linux中還用到/etc/xinetd.d目錄下的內(nèi)容)

/home

該目錄是Linux系統(tǒng)中默認的用戶工作根目錄。如前面在1.3.1節(jié)中所述,執(zhí)行adduser命令后系統(tǒng)會在/home目錄下為對應(yīng)賬號建立一個同名的主目錄

/lib

該目錄是用來存放系統(tǒng)動態(tài)鏈接共享庫的。幾乎所有的應(yīng)用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行操作

/lost+found

該目錄在大多數(shù)情況下都是空的。只有當(dāng)系統(tǒng)產(chǎn)生異常時,會將一些遺失的片段放在此目錄下

/media

該目錄下是光驅(qū)和軟驅(qū)的掛載點,F(xiàn)edora?Core?4已經(jīng)可以自動掛載光驅(qū)和軟驅(qū)

/misc

該目錄下存放從DOS下進行安裝的實用工具,一般為空

/mnt

該目錄是軟驅(qū)、光驅(qū)、硬盤的掛載點,也可以臨時將別的文件系統(tǒng)掛載到此目錄下

/proc

該目錄是用于放置系統(tǒng)核心與執(zhí)行程序所需的一些信息。而這些信息是在內(nèi)存中由系統(tǒng)產(chǎn)生的,故不占用硬盤空間

/root

該目錄是超級用戶登錄時的主目錄

/sbin

該目錄用來存放系統(tǒng)管理員的常用的系統(tǒng)管理程序

/tmp

該目錄用來存放不同程序執(zhí)行時產(chǎn)生的臨時文件。一般Linux安裝軟件的默認安裝路徑就是這里

/usr

這是一個非常重要的目錄,用戶的很多應(yīng)用程序和文件都存放在這個目錄下,類似于Windows下的Program?Files的目錄

/usr/bin

系統(tǒng)用戶使用的應(yīng)用程序

/usr/sbin

超級用戶使用的比較高級的管理程序和系統(tǒng)守護程序

/usr/src

內(nèi)核源代碼默認的放置目錄

/srv

該目錄存放一些服務(wù)啟動之后需要提取的數(shù)據(jù)

/sys

這是Linux?2.6內(nèi)核的一個很大的變化。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個文件系統(tǒng)sysfs。sysfs文件系統(tǒng)集成了下面3種文件系統(tǒng)的信息:針對進程信息的proc文件系統(tǒng)、針對設(shè)備的devfs文件系統(tǒng)以及針對偽終端的devpts文件系統(tǒng)。該文件系統(tǒng)是內(nèi)核設(shè)備樹的一個直觀反映。當(dāng)一個內(nèi)核對象被創(chuàng)建的時候,對應(yīng)的文件和目錄也在內(nèi)核對象子系統(tǒng)中被創(chuàng)建

/var

這也是一個非常重要的目錄,很多服務(wù)的日志信息都存放在這里

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內(nèi)領(lǐng)先嵌入師培訓(xùn)機構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關(guān)的長期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實驗平臺的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。