Linux下的文件系統爲樹形結構,入口爲/ 樹形結構下的文件目錄: 不管哪一個版本的Linux系統,都有這些目錄,這些目錄應該是標準的。各個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相應的目錄中。請參考: 《file.src.rpm 使用方法的簡單介紹》 。另外Fedhat 4.0 5.0,他的內核源碼包的目錄位於/usr/src/kernels目錄下的某個目錄中(只有安裝後纔會生成相應目錄); 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文件系統下,你能夠選擇把它加載爲其餘分區甚至網絡上的其餘計算機。系統不會感知其中的不一樣,由於它表現出的只是本地目錄結構下衆多的目錄中的一個而已。你是否有妄圖在Windows下移動可執行文件和數據,而獲得的是不得不去修改註冊表或乾脆藍屏?你可曾奢望過移動 C:到其餘分區上?
1。關於文件系統 linux
對存儲設備分區仍是不夠的,咱們還要對新增分區進行格式化;一個分區只有創建了某種 文件系統後,這個分區才能使用;創建文件系統過程,就是用相應格式化工具格式化分區的過程,這個過程和咱們在Windows中格式化某個分區爲NTFS分 區相似;沒有什麼高深的內容,只是所用的工具不同罷了; sql
Linux操做系統中,幾乎支持目前主流的文件系統,好比NTFS(只讀)、FAT(可讀可寫)、ext二、ext三、reiserfs、hfs (MAC 操做系統的文件系統)、swap 交換分區... ... 還有一些我們不熟悉的操做系統的文件系統等; shell
在Linux中,咱們經常使用的文件系統無非是上面例出的這些;若是您新增了一個硬盤,可能想格 式化成 Linux的文件系統,最佳選擇是 reiserfs 或ext3;目前ext2已被 ext3取代;咱們不推薦用ext2文件系統,ext2的使用風險比較大;速度最快的文件系統,當屬reiserfs;reiserfs 還有不少優勢,好比更安全;ext3是Redhat認爲最好的文件系統。 數據庫
相對來講reiserfs仍是比ext3要優秀。 apache
文件系統概念 緩存
1。*nix系統中:一切皆文件; 安全
2。文件 服務器
a. )文件的成分: 不管文件是一個程序、一個文檔、一個數據庫,或者是一個目錄,操做系統都會賦予它以下所示的一樣的結構:
◆索引節點 又稱I節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件權限、文件主、文件大小、存放位置、創建日期等。
◆數據 文件的實際內容,它能夠是空的,也能夠很是大,而且有本身的結構。 網絡
以圓點「.」開頭的文件名是隱含文件(dot files),默認方式下使用ls命令並不能把它們在屏幕上顯示出來。一樣,在默認狀況下,Shell通配符並不匹配這類文件名。
方括號([ ]) : 與問號類似,只與一個字符匹配。它們的區別在於,問號與任意一個字符匹配,而方括號只與括號中列出的字符之一匹配。例如letter [123]只與文件letter一、letter2或letter3匹配,但不與文件 letter12匹配。能夠用短橫線表明一個範圍內的字符,而不用將它們一一列出。例如,letter[1-3]是letter[123]的簡寫形式。但 是,要注意範圍內的字符都按升序排列,即[A-Z]是有效的,而[Z-A]是無效的。方括號中能夠列出多個範圍,如[A-Za-z]能夠和任意大寫或小寫 的字符相匹配。方括號中若是以驚歎號「!」開始,表示不與驚歎號後的字符匹配。
Linux操做系統支持普通文件、目錄文件、特別文件及符號連接文件等文件類型。
普通文件也稱做常規文件,包含各類長度的字節串。核心對這些數據沒有進行結構化,只是做爲有序的字節序列把它提交給應用程序。應用程序本身組織和解釋這些數據,一般把它們歸併爲下述類型之一:
◆文本文件,由ASCII字符構成。例如,信件、報告和稱做腳本(Script)的命令文本文件,後者由shell解釋執行。
◆數據文件,由來自應用程序的數字型和文本型數據構成。例如,電子表格、數據庫,以及字處理文檔。
◆可執行的二進制程序,由機器指令和數據構成。例如,上面所說的系統提供的命令。
使用file命令能夠肯定指定文件的類型。該命令能夠將任意多個文件名當作參數,其通常使用格式是:file 文件名 [文件名...]
2. 目錄
目錄是一類特殊的文件,利用它能夠構成文件系統的分層樹型結構。如同普通文件那樣,目錄文件也包含數據;但目錄文件與普通文件的差異是,核心對這些數據加以結構化,它是由成對的「I節點號/文件名」構成的列表。
◆I節點號是檢索I節點表的下標,I節點中存放有文件的狀態信息。
◆文件名是給一個文件分配的文本形式的字符串,用來標識該文件。在一個指定的目錄中,任何兩項都不能有一樣的名字。
每一個目錄的第一項都表示目錄自己,並以「.」做爲它的文件名。每一個目錄的第二項的名字是「..」,表示該目錄的父目錄。
應注意:以「.」開頭的文件名錶示隱含文件,使用帶-a選項的ls命令能夠列出它們。
當把文件添加到一個目錄中的時候,該目錄的大小會增加,以便容納新文件名。當刪除文件時,目錄的尺寸並不減小,而是核心對該目錄項作上特殊標記,以便下次添加一個文件時從新使用它。ls命令不會列出這些未被使用的項。
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盤。
絕對路徑是從/(也被稱爲根目錄)開始的,好比/usr、/etc/X11。若是一個路徑是從/開始的,它必定是絕對路徑。
相對路徑是以 . 或 .. 開始的,.表示用戶當前操做所處的位置,而.. 表示上級目錄;在路徑中,.表示用戶當前所處的目錄,而..上級目錄,要把.和..當作目錄來看。
2。[root@localhost ~]# pwd 注:判斷用戶當前所處的位置,也就是說他到底位於哪?
use when you are lost.
3。
[root@localhost ~]# cd . 注:咱們進入。
[root@localhost ~]# cd .. 注:咱們切入/root的上級目錄。
注意,cd以後有個空格。
~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命令卸載。
本講咱們介紹了有關Linux系統中經常使用命令格式、文件和目錄的概念、文件類型、目錄結構、文件的存取權限、文件系統的概念及其安裝命令等。有關文件操做的命令不少,讀者能夠經過上機學習各類命令的使用方法,掌握其基本功能。(T111)