歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 圖文詳解Linux文件系統的目錄結構

圖文詳解Linux文件系統的目錄結構

日期:2017/3/3 16:24:05   编辑:關於Linux

1. / 文件系統的入口,最高一級目錄;

2. /bin 基礎系統所需要的命令位於此目錄,是最小系統 所需要的命令,如:ls, cp, mkdir等。這個目錄中的文件都是可執行的,一般的用戶都可以使用。

3. /boot 包含Linux內核及系統引導程序所需要的文件,比如 vmlinuz initrd.img 文件都位於這個 目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄;

4. /dev 設備文件存儲目錄, 比如聲卡、磁盤... ... 這是一個非常有趣的目錄,是Linux文件系統的一個閃亮的特性 - 所有對象都是文件 或目錄。仔細觀察這個目錄你會發現hda1, hda2等, 它們代表系統主硬盤的不同分區。/dev/cdrom和/dev/fd0 代表你的CDROM驅動器和floppy驅動器。看上去可能有些奇怪,但比較文件和硬件的特性這卻是十分合理的。 它們都可以讀出和寫入。例如/dev/dsp,這個文件代表你的揚聲器。那麼寫入這個文件的數據都回傳送到喇叭 。試一試 'cat /etc/lilo.conf > /dev/dsp' 你會聽到一些聲音。這是你的 lilo.conf 文件的 聲音!同樣,向 /dev/ttyS0 ( COM 1 ) 讀出或寫入數據你可以和接到上面的設備進行通訊。

5. /etc 存放系統程序或者一般工具的配置文件。如安裝了apache2之後,配置文件在/etc/apache2/目錄 下。/etc/init.d 這個目錄是用來存放系統或服務器以System V模式啟動的腳本,這在以System V模式啟動或 初始化的系統中常見。如apache2的/etc/init.d apache2 start|stop|restart MySQL為/etc/init.d mysql start|stop|restart

6. /home 普通用戶默認存放目錄 Linux 是多用戶環境,所以每一個用戶都有一 個只有自己可以訪問的目錄(當然管理員也可以訪問)。它們以 /home/username 的方式存在。這個目錄也保 存一些應用對於這個用戶的配置,比如 IRC, X 等。

7. /lib 庫文件存放目錄這裡包含了系統程序所 需要的所有共享庫文件,類似於 Windows 的共享庫DLL 文件。

8. /lost+found 在ext2或ext3文件系 統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這裡。當系統啟動的過程中fsck工具會檢查 這裡,並修復已經損壞的文件系統。 有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的 方式來修復,或移到文件到原來的位置上。Linux 應該正確的關機。但有時你的系統也可能崩潰掉或突然斷電 使系統意外關機。那麼啟動的時候 fsck將會進行長時間的文件系統檢查。Fsck 會檢測並試圖恢復所發現的不 正確的文件。被恢復的文件會放置在這個目錄中。所恢復的文件也許並不完整或並不合理,但畢竟提供了一些 恢復數據的機會。

9. /media 即插即用型存儲設備的掛載點自動在這個目錄下創建,比如USB盤系統 自動掛載後,會在這個目錄下產生一個目錄 ;CDROM/DVD自動掛載後,也會在這個目錄中創建一個目錄,類似 cdrom 的目錄。這個只有在最新的發行套件上才有.

10. /mnt /mnt 這個目錄一般是用於存放掛載儲 存設備的掛載目錄的,比如有cdrom 等目錄。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這 裡也是可以的。比如光驅可以掛載到/mnt/cdrom 。這是一個普通的加載目錄,在這裡你可以加載你的文件系 統或設備。加載是使一個文件系統對於系統可用的過程。在加載後你的文件可以在加載目錄下訪問。這個目錄 通常包含加載目錄或用於加載軟驅和光驅的子目錄。如果需要,你也可以在這裡建立其它的加載目錄。對於加 載目錄的位置並沒有強制性的要求,你可以在系統的任意位置建立加載目錄。建立 /mnt 只是為了使系統更工 整的慣例。

11. /opt 表示的是可選擇的意思,有些軟件包也會被安裝在這裡,也就是自定義 軟件包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這裡。有些我們自己編譯的軟件包,就可以安裝 在這個目錄中;通過源碼包安裝的軟件,可以通過 ./configure --prefix=/opt/,將軟件安裝到opt目錄。這 個目錄包含所有默認系統安裝之外的軟件和添加的包。

12. /proc 操作系統運行時,進程(正在運行 中的程序)信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這裡。/proc目錄是偽裝的文件系統 proc的掛載目錄,proc並不是真正的文件系統。這是系統中極為特殊的一個目錄,實際上任何分區上都不存在 這個目錄。它實際是個實時的、駐留在內存中的文件系統。

13. /root Linux超級權限用戶root的家 目錄;

14. /sbin 大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普 通用戶無權限執行這個目錄下的命令;這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin 目錄是相 似的; 我們記住就行了,凡是目錄sbin中包含的都是root權限才能執行的。

15. /tmp 臨時文件目錄 ,有時用戶運行程序的時候,會產生臨時文件。 /tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似 。許多程序在這裡建立lock文件和存儲臨時數據。有些系統會在啟動或關機時清空此目錄。

16. /usr 這個是系統存放程序的目錄,比如命令、幫助文件等。這個目錄下有很多的文件和目錄。當我們安裝一個 Linux發行版官方提供的軟件包時,大多安裝在這裡。如果有涉及服務器配置文件的,會把配置文件安裝 在/etc目錄中。/usr目錄下包括:涉及字體目錄/usr/share/fonts ,幫助目錄 /usr/share/man 或/usr/share/doc,普通用戶可執行文件目錄/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超級權限用 戶root的可執行命令存放目錄,比如 /usr/sbin 或/usr/X11R6/sbin或/usr/local/sbin 等;還有程序的頭文 件存放目錄/usr/include。/usr/bin 這個目錄是可執行程序的目錄,普通用戶就有權限執行; 當我們從系統 自帶的軟件包安裝一個程序時,他的可執行文件大多會放在這個目錄。/usr/sbin 這個目錄也是可執行程序的 目錄,但大多存放涉及系統管理的命令。只有root權限才能執行;相似目錄是/sbin 或/usr/local/sbin 或/usr/X11R6/sbin等; /usr/local 這個目錄一般是用來存放用戶自編譯安裝軟件的存放目錄;一般是通過 源碼包安裝的軟件,如果沒有特別指定安裝目錄的話,一般是安裝在這個目錄中。這個目錄下面有子目 錄。/usr/lib 和/lib 目錄相似,是庫文件的存儲目錄;/usr/share 系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,是用戶都共用的吧。/usr/share/doc和/usr/share/man幫助文件,也是共用 的吧; /usr/src 是內核源碼存放的目錄,比如下面有內核源碼目錄,比如 linux 、linux-2.xxx.xx 目錄等 。有的系統也會把源碼軟件包安裝在這裡。比如Fedora/Redhat,當我們安裝file.src.rpm的時候,這些軟件 包會安裝在 /usr/src/redhat相應的目錄中。

17. /var 這個目錄的內容是經常變動的,看名字就知道 ,我們可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/www目錄是定義 Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放 地;/var/log 系統日志存放,分析日志要看這個目錄的東西;/var/spool 打印機、郵件、代理服務器等假脫 機目錄;Windows和Linux文件系統的區別 Linux文件系統與Windows文件系統有很大的差別。Linux文件系統作 為開端,只有一個單獨的頂級目錄結構。所有一切都從 '根' 開始,用 '/' 代表, 並且延 伸到子目錄。DOS/Windows有不同的分區,同時目錄都存於分區上。linux則通過 '加載' 的方式把所 有分區都放置在 '根' 下制定的目錄裡。一句話總結:Windows下,目錄結構屬於分區;Linux下,分 區 '加載' 於目錄結構。在Windows下, 啟動時檢測不同的分區並被賦予一個分區字母。在Linux下除 非你加載一個分區或設備,否則系統不會知道那個分區的存在。這看上去也許不是訪問分區或設備的最方便的 方式,但是這種方式提供了偉大的機動性。這種構建的方式被稱為統一的文件系統,超越了Windows所使用的 方式。舉個使用 /usr 的例子。這個目錄包含了大多數的系統可執行文件。在Linux文件系統下,你可以選擇 把它加載為其他分區甚至網絡上的其他計算機。系統不會感知其中的不同,因為它表現出的只是本地目錄結構 下眾多的目錄中的一個而已。

存儲設備進行格式化(即建立文件系統)

1。關於文件系統

對存儲設備分區還是不夠的,我們還要對新增分區進行格式化;一個分區只有建立了某種 文件系統後 ,這個分區才能使用;建立文件系統過程,就是用相應格式化工具格式化分區的過程,這個過程和我們在 Windows中格式化某個分區為NTFS分 區類似;沒有什麼高深的內容,只是所用的工具不一樣罷了;

Linux操作系統中,幾乎支持目前主流的文件系統,比如NTFS(只讀)、FAT(可讀可寫)、ext2、 ext3、reiserfs、hfs (MAC 操作系統的文件系統)、swap 交換分區... ... 還有一些咱們不熟悉的操作系統 的文件系統等;

在Linux中,我們常用的文件系統無非是上面例出的這些;如果您新增了一個硬盤,可 能想格 式化成 Linux的文件系統,最佳選擇是 reiserfs 或ext3;目前ext2已被 ext3取代;我們不推薦用 ext2文件系統,ext2的使用風險比較大;速度最快的文件系統,當屬reiserfs;reiserfs 還有很多優點,比 如更安全;ext3是Redhat認為最好的文件系統。

相對來說reiserfs還是比ext3要優秀。

文件系 統概念

1。*nix系統中:一切皆文件;

2。文件

a. )文件的成分: 無論文件是一個程序 、一個文檔、一個數據庫,或者是一個目錄,操作系統都會賦予它如下所示的同樣的結構:
◆索引節點 又稱I節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件權限、文件主、文 件大小、存放位置、建立日期等。
◆數據 文件的實際內容,它可以是空的,也可以非常大,並且有自 己的結構。

b.) Linux系統區分文件名的大小寫

以圓點“.”開頭的文件名是隱含文件(dot files),默認方式下使用ls命令並不能把它們在屏幕上顯示出來。同樣,在默認情況下,Shell通配符並不匹 配這類文件名。

c.) 文件名通配符

星號(*): 與0個或多個任意的字符相匹配

問號(? ): 問號只與一個任意的字符匹配,可以使用多個問號

方括號([ ]) : 與問號相似,只與一個字符匹 配。它們的區別在於,問號與任意一個字符匹配,而方括號只與括號中列出的字符之一匹配。例如letter [123]只與文件letter1、letter2或letter3匹配,但不與文件 letter12匹配。可以用短橫線代表一個范圍內 的字符,而不用將它們一一列出。例如,letter[1-3]是letter[123]的簡寫形式。但 是,要注意范圍內的字 符都按升序排列,即[A-Z]是有效的,而[Z-A]是無效的。方括號中可以列出多個范圍,如[A-Za-z]可以和任意 大寫或小寫 的字符相匹配。方括號中如果以驚歎號“!”開始,表示不與驚歎號後的字符匹配。

文件 類型

Linux操作系統支持普通文件、目錄文件、特別文件及符號鏈接文件等文件類型。

1. 普通 文件

普通文件也稱作常規文件,包含各種長度的字節串。核心對這些數據沒有進行結構化,只是作為 有序的字節序列把它提交給應用程序。應用程序自己組織和解釋這些數據,通常把它們歸並為下述類型之一:

◆文本文件,由ASCII字符構成。例如,信件、報告和稱作腳本(Script)的命令文本文件,後者由shell 解釋執行。

◆數據文件,由來自應用程序的數字型和文本型數據構成。例如,電子表格、數據庫,以及字處理文檔。

◆可執行的二進制程序,由機器指令和數據構成。例如,上面所說的系統提供的命令。

使用file命令可以確定指定文件的類型。該命令可以將任意多個文件名當做參數,其一般使用格式是: file 文件名 [文件名...]

2. 目錄

目錄是一類特殊的文件,利用它可以構成文件系統的分層樹型結構。如同普通文件那樣, 目錄文件也包含數據;但目錄文件與普通文件的差別是,核心對這些數據加以結構化,它是由成對的“I節點 號/文件名”構成的列表。

◆I節點號是檢索I節點表的下標,I節點中存放有文件的狀態信息。

◆文件名是給一個文件分配的文本形式的字符串,用來標識該文件。在一個指定的目錄中,任何兩項都不 能有同樣的名字。

每個目錄的第一項都表示目錄本身,並以“.”作為它的文件名。每個目錄的第二項的名字是“..”,表示 該目錄的父目錄。

應注意:以“.”開頭的文件名表示隱含文件,使用帶-a選項的ls命令可以列出它們。

當把文件添加到一個目錄中的時候,該目錄的大小會增長,以便容納新文件名。當刪除文件時,目錄的尺 寸並不減少,而是核心對該目錄項做上特殊標記,以便下次添加一個文件時重新使用它。ls命令不會列出這些 未被使用的項。

Linux系統的目錄結構

Linux文件系統采用帶鏈接的樹形目錄結構,即只有一個根目錄(通常用“/ ”表示),其中含有下級子目錄或文件的信息;子目錄中又可含有更下級的子目錄或者文件的信息。這樣一層 一層地延伸下去,構成一棵倒置的樹,如圖1所示。

圖1 Linux樹型目錄結構

在目錄樹中,根節點和中間節點(用圓圈表示)都必須是目錄,而普通文件和特別文件只能作為“葉 子”出現。當然,目錄也可以作為葉子。

(1)用戶主目錄

當注冊進入系統時,主目錄就是當前工作目錄。主目錄往往位於/home目錄之下,並且與注冊名相同,例 如,/home/mengqc。通常主目錄包含子目錄、數據文件,以及用於注冊環境的配置文件。

絕對路徑和相對路徑

什麼情況下使用絕對路徑名,什 麼情況下使用相對路徑名,取決於哪種方式涉及到的目錄更少。路徑短, 不僅鍵盤輸入少,而且節省系統搜索路徑的時間,提高執行效率。例如,當前的工作目錄是 /etc/conf/cf.d ,如果需要訪問系統口令文件/etc/passwd,那麼使用絕對路徑名是/etc/passwd,使用相對路徑名是.. /../passwd。絕對路徑名/etc/passwd涉及的目錄有2個,而相對路徑名../../passwd涉及的目錄卻是3個。此 時,使用絕對路 徑名更有效。

但是,如果當前工作目錄是/home/mengqc/lib,要訪問在 func目錄之 下的file1文件,那麼使用絕對路徑名是/home/mengqc/lib/func/file1,使用相對路徑名是 func/file1。絕 對路徑名/home/mengqc/lib/func/file1涉及的目錄有5個,而相對路徑名涉及的目錄只有2個。此時,使 用相 對路徑名更有效。

如果不清楚當前工作目錄與其它目錄之間的關系,那麼最好使用絕對路徑名。

3. 設備文件

在Linux系統中,所有設備都作為一類特別文件對待,用戶像使用普通文件那樣對設備進行操作,從而實現 設備無關性。但是,設備文件除了存放在文件I節點中的信息外,它們不包含任何數據。系統利用它們來標識 各個設備驅動器,核心使用它們與硬件設備通信。

有兩類特別設備文件,它們對應不同類型的設備驅動器:

◆字符設備 最常用的設備類型,允許I/O傳送任意大小的數據,取決於設備本身的容量。使用這種接口的 設備包括終端、打印機及鼠標。

◆塊設備 這類設備利用核心緩沖區的自動緩存機制,緩沖區進行I/O傳送總是以1KB為單位。使用這種接口 的設備包括硬盤、軟盤和RAM盤。

Linux系統的文件系統路徑

1。路徑分為絕對路徑和相對路徑。

絕對路徑是從/(也被稱為根 目錄)開始的,比如/usr、/etc/X11。如果一個路徑是從/開始的,它一定是絕對路徑。

相對路徑是以 . 或 .. 開始的,.表示用戶當前操作所處的位置,而.. 表示上級目錄;在路徑中,.表示用戶當前所處的目 錄,而..上級目錄,要把.和..當做目錄來看。

2。[root@localhost ~]# pwd 注:判斷用戶當前所處 的位置,也就是說他到底位於哪?

use when you are lost.

3。

[root@localhost ~]# cd . 注:我們進入。

[root@localhost ~]# cd .. 注:我們切入/root的上級目錄。

注意,cd 之後有個空格。

4。~ 表示當前用戶自己的家目錄;

~USER 表示用戶名為USER的家目錄

如:

cd ~ 回到當前用戶的家目錄;

cd ~USERNAME 回到USERNAME用戶的家目錄;

文件系 統及其安裝

一個硬盤上可以同時存在多個文件系統,每個文件系統占據硬盤的一個獨立分 區。Linux文件系統可以根 據需要隨時裝卸,從而實現文件存儲空間的動態擴充和信息安全。在系統初啟時,往往只有一個文件系統被安 裝上,即根文件系統, 其上的文件主要是保證系統正常運行的操作系統的代碼文件,以及若干語言編譯程序 、命令解釋程序和相應的命令處理程序等構成的文件,此外,還有大量的用戶文 件空間。根文件系統一旦安 裝上,則在整個系統運行過程中是不能卸下的,它是系統的基本部分。

其它的文件系統(例如,由軟盤構成的文件系統)可以根據需要(如從硬盤向軟盤復制文件),作為子系 統動態地安裝到主系統中,如圖5所示。其中,mnt是為安裝子文件系統而特設的安裝節點。

圖5 文件系統安裝

經過安裝之後,主文件系統與子文件系統就構成一個有完整目錄層次結構 的、容量更大的文件系統。這種安裝可以高達幾級。就是說,若干子文件系統可以並列安裝到主文件系統上, 也可以一個接一個地串連安裝到主文件系統上。

已安裝的子文件系統也可從整個文件系統上卸下來,恢復安裝前的獨立狀態。

1.建立文件系統

當硬盤完成分區後,應該在該分區上建立文件系統。這一步工作是通過mkfs工具來完成的。例如,如果需 要在分區/dev/hda1上建立ext2文件系統,並檢查壞塊,應該使用以下命令:

# mkfs -c /dev/hda1

注意,只有root用戶才能建立或安裝/卸下文件系統。

2.安裝文件系統

創建文件系統後,需要使用命令mount將該文件系統安裝到主文件系統中。命令mount有三個主要參數:

◆需要安裝的文件系統類型,用“-t fstype”選項來指定,這與mkfs中的-t選項是一樣的。

◆所需訪問的文件系統所在分區名,通常是位於目錄/dev中的特別設備文件;如果需要安裝網絡文件系統 時,就使用該服務器上輸出的目錄名。

◆ 安裝新文件系統的路徑名,也就是放置新文件系統的安裝點(Mount Point)。通常這是一個空目錄名 ,並且是專門為安裝新文件系統而准備的。在Linux系統下,目錄/mnt是常用的文件系統安裝目錄,缺省情況 下, CDROM和軟盤驅動器都分別安裝在其子目錄下。當然,文件系統也可以被安裝到其它空目錄中。例如,需 要將MSDOS文件系統分區/dev/hda1安裝 到系統的空目錄/dos中,應該使用以下命令:

# mount -t msdos /dev/hda1 /dos

3.卸載文件系統

在關閉系統之前,為了保證文件系統的完整 性,所有安裝的文件系統都必須被卸載。通常在/etc/fstab文 件中定義的文件系統都能夠自動卸載。但是,對於手工mount的文件系統,在關閉系統 之前必須手工卸載。有 時候也需要在系統工作過程中手工卸載某個文件系統。手工卸載文件系統必須使用umount命令,umount命令將 分區名或分區的安 裝點作為參數,格式如下:

umount <</font>分區名或分區的安裝點>

例如,需要將已經安裝到/mnt/floppy目錄下的軟盤卸載,可以使用以下命令:

# umount /mnt/floppy

要注意,對於正在使用的文件系統,不能使用umount命令卸載。

Copyright © Linux教程網 All Rights Reserved