系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux文件系統(tǒng)

Linux文件系統(tǒng)入門詳解

時間:2014-12-17 17:15:53 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141217/32826.html 手機(jī)查看 評論

  計算機(jī)系統(tǒng)中的文件千千萬萬,如果沒有進(jìn)行分類的話就會變得雜亂無章,使用起來也十分不方便,而文件系統(tǒng)就能很好的分類存放各類文件,下面小編就給大家詳細(xì)介紹下Linux文件系統(tǒng),一起來學(xué)習(xí)下吧。

  對于計算機(jī)來說,所謂的數(shù)據(jù)就是0和1的序列。這樣的一個序列可以存儲在內(nèi)存中,但內(nèi)存中的數(shù)據(jù)會隨著關(guān)機(jī)而消失。為了將數(shù)據(jù)長久保存,我們把數(shù)據(jù)存儲在光盤或者硬盤中。根據(jù)我們的需要,我們通常會將數(shù)據(jù)分開保存到文件這樣一個個的小單位中(所謂的小,是相對于所有的數(shù)據(jù)而言)。但如果數(shù)據(jù)只能組織為文件的話,而不能分類的話,文件還是會雜亂無章。每次我們搜索某一個文件,就要一個文件又一個文件地檢查,太過麻煩。文件系統(tǒng)(file system)是就是文件在邏輯上組織形式,它以一種更加清晰的方式來存放各個文件。

  路徑與文件簡介

  文件被組織到文件系統(tǒng)(file system)中,通常會成為一個樹狀(tree)結(jié)構(gòu)。Linux有一個根目錄/, 也就是樹狀結(jié)構(gòu)的最頂端。這個樹的分叉的最末端都代表一個文件,而這個樹的分叉處則是一個目錄(directory, 相當(dāng)于我們在windows界面中看到的文件夾)。在圖1中看到的是整個的一個文件樹。如果我們從該樹中截取一部分,比如說從目錄vamei開始往下,實際上也構(gòu)成一個文件系統(tǒng)。

  要找到一個文件,除了要知道該文件的文件名,還需要知道從樹根到該文件的所有目錄名。從根目錄開始的所有途徑的目錄名和文件名構(gòu)成一個路徑(path)。比如說,我們在Linux中尋找一個文件file.txt,不僅要知道文件名(file.txt),還要知道完整路徑,也就是絕對路徑(/home/vamei/doc/file.txt)。從根目錄錄/, 也就是樹狀結(jié)構(gòu)的最頂端出發(fā),經(jīng)過目錄home, vamei, doc,最終才看到文件file.txt。整個文件系統(tǒng)層層分級(hierarchy),vamei是home的子目錄,而home是vamei的父目錄。

  在Linux中,我們用ls命令來顯示目錄下的所有文件,比如 $ls /home/vamei/doc

 Linux文件系統(tǒng)入門詳解

  圖1 文件樹

  如該圖中所示的文件系統(tǒng),即綠色構(gòu)成的樹。最頂端的根目錄(/),沿紅色箭頭標(biāo)出的路徑,我們最終找到文件file.txt。

  目錄

  在Linux系統(tǒng)中,目錄也是一種文件。所以/home/vamei是指向目錄文件vamei的絕對路徑。

  這個文件中至少包含有以下條目:

  代碼如下:

  。 指向當(dāng)前目錄

  。。 指向父目錄

  除此之外,目錄文件中還包含有屬于該目錄的文件的文件名,比如vamei中就還要有如下條目,指向?qū)儆谠撃夸浀奈募?/p>

  代碼如下:

  doc

  movie

  photo

  Linux解釋一個絕對路徑的方式如下:先找到根目錄文件,從該目錄文件中讀取home目錄文件的位置,然后從home文件中讀取vamei的位置……直到找到目錄doc中的file.txt的位置。

  由于目錄文件中都有。和。。的條目,我們可以在路徑中加入。或者。。來表示當(dāng)前目錄或者父目錄,比如/home/vamei/doc/。。與/home/vamei等同。

  此外,Linux會在進(jìn)程中,維護(hù)一個工作目錄(present working directory)的變量。在shell中,你可以隨時查詢到到工作目錄(在命令行輸入$pwd)。這是為了省去每次都輸入很長的絕對路徑的麻煩。比如說我們將工作目錄更改為/home/vamei ($cd /home/vamei),那么此時我們再去找file.txt就可以省去/home/vamei/ ($ls doc/file.txt),這樣得到的路徑叫相對路徑(relative path),上面的doc/file.txt就是這樣一個相對路徑。

  當(dāng)文件出現(xiàn)在一個目錄文件中時,我們就把文件接入到文件系統(tǒng)中,我們稱建立一個到文件的硬鏈接(hard link)。一個文件允許出現(xiàn)在多個目錄中,這樣,它就有多個硬鏈接。當(dāng)硬鏈接的數(shù)目(link count)降為0時,文件會被Linux刪除。所以很多時候,unlink與remove在Linux操作系統(tǒng)中是一個意思。由于軟鏈接(soft link)的廣泛使用(soft link不會影響link count,而且可以跨越文件系統(tǒng)),現(xiàn)在較少手動建立硬連接。

  文件操作

  對于文件,我們可以讀。╮ead),寫入(write)和運(yùn)行(execute)。讀取是從已經(jīng)存在的文件中獲得數(shù)據(jù)。寫入是向新的文件或者舊的文件寫入數(shù)據(jù)。如果文件儲存的是可執(zhí)行的二進(jìn)制碼,那么它可以被載入內(nèi)存,作為一個程序運(yùn)行。在Linux的文件系統(tǒng)中,如果某個用戶想對某個文件執(zhí)行某一種操作,那么該用戶必須擁有對該文件進(jìn)行這一操作的權(quán)限。文件權(quán)限的信息保存在文件信息(metadata)中, 見下一節(jié)。

  文件附加信息 (metadata)

  文件自身包含的只有數(shù)據(jù)。文件名實際上儲存在目錄文件。除了這些之外,還有操作系統(tǒng)維護(hù)的文件附加信息,比如文件類型,文件尺寸,文件權(quán)限,文件修改時間,文件讀取時間等?梢杂胠s命令查詢文件信息($ls -l file.txt),得到如下結(jié)果:

  代碼如下:

  -rw-r--r-- 1 vamei vamei 8445 Sep 8 07:33 file1.txt

  各個部分的含義如下:

  1.我們先介紹最開始的-,它表示文件類型,說明file1.txt是常規(guī)文件(如果是目錄文件,則應(yīng)顯示d)。

  2.隨后有九個字符,為rw-r--r--,它們用于表示文件權(quán)限。這九個字符分為三組,rw-, r--, r--,分別對應(yīng)擁有者(owner),擁有組(owner group)和所有其他人(other);仡橪inux開機(jī)啟動 ,登錄后,我會有一個用戶身份和一個組身份, 相當(dāng)于我的名片。第一組表示,如果我的名片上的用戶身份證明我是該文件的擁有者,那么我就可以對該文件有讀取(r),寫入(w)該文件的權(quán)限,但不擁有執(zhí)行(-,如果擁有執(zhí)行權(quán)限,則為x)該文件的權(quán)限。第二組表示,如果我的名片上的組身份證明我所在的組是該文件的擁有組的一員,那么我有從該文件讀入的權(quán)限。第三組表示,如果我的名片顯示我既不是擁有者,也不是擁有組的一員,那么我只有讀入的權(quán)限。當(dāng)我想要進(jìn)行一個讀取操作時,Linux會先看我是否是擁有者下文會進(jìn)一步解釋擁有者和擁有組。

  3.后面的1是硬連接(hard link)數(shù)目(link count)。

  4.之后的vamei表示用戶vamei是文件的擁有者(owner),文件的擁有者有權(quán)更改文件權(quán)限(比如改為rwxrwxrwx)。而后面的vamei文件的擁有組是組vamei。文件的擁有者和擁有組在文件創(chuàng)建時就附加在文件上(相當(dāng)于給文件上鎖,只有有合適名片的用戶才能打開操作)。要注意,Linux有一個超級用戶root (也叫做根用戶),該用戶擁有所有的文件。

  5.隨后的8445表示文件大小,單位為字節(jié)(byte)。

  6.Sep 8 07:33表示文件的上一次寫入的時間(modification time)。實際上在文件附加信息中還包含有文件的上一次讀取時間(access time),沒有顯示出來。

  軟鏈接 (soft link, or symbolic link)

  如上討論硬鏈接時說到的,軟鏈接不會影響文件的link count。如果還記得windows系統(tǒng)的快捷方式的話,Linux的軟鏈接(soft link,也叫做symbolic link)就是linux的快捷方式。軟鏈接本質(zhì)上是一個文件,它的文件類型是symbolic link。在這個文件中,包含有鏈接指向的文件的絕對路徑。當(dāng)你從這個文件讀取數(shù)據(jù)時,linux會把你導(dǎo)向所指向的文件,然后從那個文件中讀。ň秃孟衲汶p擊快捷方式的效果一樣)。軟鏈接可以方便的在任何地方建立,并指向任何一個絕對路徑。

  軟鏈接本身也是一個文件,也可以執(zhí)行文件所可以進(jìn)行的操作。當(dāng)我們對軟鏈接操作時,要注意我們是對軟鏈接本身操作,還是對軟鏈接指向的目標(biāo)操作。如果是后者,我們就說該操作跟隨鏈接指引(follow the link)。

  umask

  當(dāng)我們創(chuàng)建文件的時候,比如使用touch,它會嘗試將新建文件創(chuàng)建為權(quán)限666,也就是rw-rw-rw-。但操作系統(tǒng)要參照權(quán)限mask來看是否真正將文件創(chuàng)建為666。權(quán)限mask表示操作系統(tǒng)不允許設(shè)置的權(quán)限位,比如說037(----wxrwx)的權(quán)限mask意味著不允許設(shè)置設(shè)置group的wx位和other的rwx位。如果是這個權(quán)限mask的話,最終的文件權(quán)限是rw-r----- (group的w位和other的rw位被mask)。

  我們可以通過

  代碼如下:

  $umask 022

  的方式改變權(quán)限mask。

  總結(jié)

  計算機(jī)本質(zhì)上是對數(shù)據(jù)進(jìn)行處理的工具,而文件是數(shù)據(jù)儲存的邏輯載體,所以了解Linux文件系統(tǒng)很重要。對于文件系統(tǒng)的了解要結(jié)合Linux的其他方面(比如用戶管理)進(jìn)行有機(jī)的學(xué)習(xí)。

  文件權(quán)限,擁有者,擁有組,超級用戶root

  硬鏈接,軟鏈接,follow the link

  上面就是Linux文件系統(tǒng)的詳細(xì)介紹了,如果沒有文件系統(tǒng),那么文件查找起來就會十分麻煩,增加工作的難度,現(xiàn)在你對Linux文件系統(tǒng)有更深入的了解了嗎?

標(biāo)簽 文件系統(tǒng)

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨(dú)特見解

立即評論

以上留言僅代表用戶個人觀點(diǎn),不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄