posts - 134,comments - 22,trackbacks - 0
          發(fā)布時(shí)間:2007.03.16 03:28     來源:賽迪網(wǎng)技術(shù)社區(qū)    作者:skid

          一、前 言

          接觸Linux也有一段時(shí)間了,不過這幾天在編譯開源程序時(shí),才發(fā)現(xiàn)自己對(duì) linux文件系統(tǒng)的目錄結(jié)構(gòu)了解的不夠透徹,很多重要目錄都說不清楚是用來干嘛的,于是在網(wǎng)上百度了一下這方面的介紹,根據(jù)自己的使用習(xí)慣,整理出來一篇關(guān)于Linux文件系統(tǒng)的目錄結(jié)構(gòu)的文章,和大家一起分享。

          文章對(duì)Linux下所有目錄一一說明,對(duì)比較重要的目錄加以重點(diǎn)解說,以幫助初學(xué)者熟練掌握Linux的目錄結(jié)構(gòu)。同時(shí)文章最后附錄了一份Linux目錄結(jié)構(gòu)的簡(jiǎn)明手冊(cè),以便大家查閱。

          二、目 錄

          1、什么是文件系統(tǒng)

          2、文件系統(tǒng)的類型

          3、目錄結(jié)構(gòu)的詳細(xì)解讀

          4、一些重要子目錄的解讀

          5、附錄:目錄結(jié)構(gòu)的簡(jiǎn)明查閱手冊(cè)

          三、正 文

          我想,不光是我,對(duì)于每一個(gè)Linux學(xué)習(xí)者來說,了解Linux文件系統(tǒng)的目錄結(jié)構(gòu),是學(xué)好Linux的至關(guān)重要的一步。下面大家跟飄揚(yáng)一起來學(xué)習(xí)吧………….

          1、什么是文件系統(tǒng)

          當(dāng)您使用Linux的時(shí)候,如果您通過ls –l / 就會(huì)發(fā)現(xiàn),在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等目錄,而在這些目錄中,我們進(jìn)去看看,發(fā)現(xiàn)也有很多的目錄或文件。文件系統(tǒng)在Linux下看上去就象樹形結(jié)構(gòu),所以我們可以把文件系統(tǒng)的結(jié)構(gòu)形象的稱為樹形結(jié)構(gòu)。

          linux文件系統(tǒng)的最頂端是/,我們稱/為L(zhǎng)inux的root,也就是 Linux操作系統(tǒng)的文件系統(tǒng)。Linux的文件系統(tǒng)的入口就是/,所有的目錄、文件、設(shè)備都在/之下,/就是Linux文件系統(tǒng)的組織者,也是最上級(jí)的領(lǐng)導(dǎo)者。

          2、文件系統(tǒng)的類型

          LINUX有四種基本文件系統(tǒng)類型:普通文件、目錄文件、連接文件和特殊文件,可用file命令來識(shí)別。

          普通文件:如文本文件、C語言元代碼、SHELL腳本、二進(jìn)制的可執(zhí)行文件等,可用cat、less、more、vi、emacs來察看內(nèi)容,用mv來改名。

          目錄文件:包括文件名、子目錄名及其指針。它是LINUX儲(chǔ)存文件名的唯一地方,可用ls列出目錄文件。

          連接文件:是指向同一索引節(jié)點(diǎn)的那些目錄條目。用ls來查看是,連接文件的標(biāo)志用l開頭,而文件面后以"->"指向所連接的文件。

          特殊文件:LINUX的一些設(shè)備如磁盤、終端、打印機(jī)等都在文件系統(tǒng)中表示出來,則一類文件就是特殊文件,常放在/dev目錄內(nèi)。例如,軟驅(qū)A稱為/dev/fd0。LINUX無C:的概念,而是用/dev/had來自第一硬盤。

          3、目錄結(jié)構(gòu)的詳細(xì)解說

          文件系統(tǒng)的組織結(jié)構(gòu)分析,我們能分析什么呢?也就是當(dāng)我們列/目錄時(shí),所看到的 /usr、/etc ... ... /var 等目錄是做什么用的,這些目錄是不是有些特定的用途。無論哪個(gè)哪個(gè)版本的Linux系統(tǒng),都有這些目錄,這些目錄應(yīng)該是標(biāo)準(zhǔn)的。當(dāng)然各個(gè)Linux發(fā)行版本也會(huì)存在一些小小的差異,但總體來說,大體還是差不多。

          言歸正傳,下面飄揚(yáng)將講到本文最核心的部分:linux文件系統(tǒng)的目錄結(jié)構(gòu)。

          / bLinux文件系統(tǒng)的入口,也是處于最高一級(jí)的目錄;

          /bin 系統(tǒng)所需要的那些命令位于此目錄,比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個(gè)目錄中的文件都是可執(zhí)行的、普通用戶都可以使用的命令。作為基礎(chǔ)系統(tǒng)所需要的最基礎(chǔ)的命令就是放在這里。

          /boot Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個(gè)目錄中。在一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理器也位于這個(gè)目錄;

          /dev 設(shè)備文件存儲(chǔ)目錄,比如聲卡、磁盤... ...

          /etc 系統(tǒng)配置文件的所在地,一些服務(wù)器的配置文件也在這里;比如用戶帳號(hào)及密碼配置文件;

          /home 普通用戶家目錄默認(rèn)存放目錄;

          /lib 庫(kù)文件存放目錄

          /lost+found 在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。當(dāng)系統(tǒng)啟動(dòng)的過程中fsck工具會(huì)檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。 有時(shí)系統(tǒng)發(fā)生問題,有很多的文件被移到這個(gè)目錄中,可能會(huì)用手工的方式來修復(fù),或移到文件到原來的位置上。

          /mnt 這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的,比如有cdrom 等目錄。可以參看/etc/fstab的定義。有時(shí)我們可以把讓系統(tǒng)開機(jī)自動(dòng)掛載文件系統(tǒng),把掛載點(diǎn)放在這里也是可以的。主要看/etc/fstab中怎么定義了;比如光驅(qū)可以掛載到/mnt/cdrom 。

          /opt 表示的是可選擇的意思,有些軟件包也會(huì)被安裝在這里,也就是自定義軟件包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟件包,就可以安裝在這個(gè)目錄中;通過源碼包安裝的軟件,可以通過 ./configure --prefix=/opt/目錄 。

          /proc 操作系統(tǒng)運(yùn)行時(shí),進(jìn)程信息及內(nèi)核信息(比如cpu、硬盤分區(qū)、內(nèi)存信息等)存放在這里。/proc目錄偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng),它的定義可以參見 /etc/fstab 。

          /root Linux超級(jí)權(quán)限用戶root的家目錄;

          /sbin 大多是涉及系統(tǒng)管理的命令的存放,是超級(jí)權(quán)限用戶root的可執(zhí)行命令存放地,普通用戶無權(quán)限執(zhí)行這個(gè)目錄下的命令,這個(gè)目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的;我們記住就行了,凡是目錄sbin中包含的都是root權(quán)限才能執(zhí)行的。

          /tmp 臨時(shí)文件目錄,有時(shí)用戶運(yùn)行程序的時(shí)候,會(huì)產(chǎn)生臨時(shí)文件。/tmp就用來存放臨時(shí)文件的。/var/tmp目錄和這個(gè)目錄相似。

          /usr 這個(gè)是系統(tǒng)存放程序的目錄,比如命令、幫助文件等。這個(gè)目錄下有很多的文件和目錄。當(dāng)我們安裝一個(gè)Linux發(fā)行版官方提供的軟件包時(shí),大多安裝在這里。如果有涉及服務(wù)器配置文件的,會(huì)把配置文件安裝在/etc目錄中。/usr目錄下包括涉及字體目錄/usr/share/fonts ,幫助目錄 /usr/share/man或/usr/share/doc,普通用戶可執(zhí)行文件目錄/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超級(jí)權(quán)限用戶root的可執(zhí)行命令存放目錄,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;還有程序的頭文件存放目錄/usr/include。

          /var 這個(gè)目錄的內(nèi)容是經(jīng)常變動(dòng)的,看名字就知道,我們可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統(tǒng)日志的目錄。/var/www目錄是定義Apache服務(wù)器站點(diǎn)存放目錄;/var/lib 用來存放一些庫(kù)文件,比如MySQL的,以及MySQL數(shù)據(jù)庫(kù)的的存放地;

          4、一些重要子目錄的解說

          下面飄揚(yáng)再補(bǔ)充幾個(gè)比較常見且很重要的目錄。

          /etc/init.d 這個(gè)目錄是用來存放系統(tǒng)或服務(wù)器以System V模式啟動(dòng)的腳本,這在以System V模式啟動(dòng)或初始化的系統(tǒng)中常見。比如Fedora/RedHat;

          /etc/xinit.d 如果服務(wù)器是通過xinetd模式運(yùn)行的,它的腳本要放在這個(gè)目錄下。有些系統(tǒng)沒有這個(gè)目錄, 比如Slackware,有些老的版本也沒有。在Rehat/Fedora中比較新的版本中存在。

          /etc/rc.d 這是Slackware發(fā)行版有的一個(gè)目錄,是BSD方式啟動(dòng)腳本的存放地;比如定義網(wǎng)卡,服務(wù)器開啟腳本等。

          /etc/X11 這是X-Windows相關(guān)的配置文件存放地。

          /usr/bin 這個(gè)目錄是可執(zhí)行程序的目錄,普通用戶就有權(quán)限執(zhí)行;當(dāng)我們從系統(tǒng)自帶的軟件包安裝一個(gè)程序時(shí),他的可執(zhí)行文件大多會(huì)放在這個(gè)目錄。比如安裝gaim軟件包時(shí)。相似的目錄是/usr/local/bin;有時(shí)/usr/bin中的文件是/usr/local/bin的鏈接文件;

          /usr/sbin 這個(gè)目錄也是可執(zhí)行程序的目錄,但大多存放涉及系統(tǒng)管理的命令。只有root權(quán)限才能執(zhí)行;相似目錄是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等;

          /usr/local 這個(gè)目錄一般是用來存放用戶自編譯安裝軟件的存放目錄;一般是通過源碼包安裝的軟件,如果沒有特別指定安裝目錄的話,一般是安裝在這個(gè)目錄中。這個(gè)目錄下面有子目錄。自己看看吧。

          /usr/share 系統(tǒng)共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。

          /usr/src 是內(nèi)核源碼存放的目錄,比如下面有內(nèi)核源碼目錄,比如 linux 、linux-2.xxx.xx 目錄等。有的系統(tǒng)也會(huì)把源碼軟件包安裝在這里。比如Fedora/Redhat,當(dāng)我們安裝file.src.rpm的時(shí)候,這些軟件包會(huì)安裝在 /usr/src/redhat相應(yīng)的目錄中。

          /var/adm 比如軟件包安裝信息、日志、管理信息等,在Slackware操作系統(tǒng)中是有這個(gè)目錄的。在Fedora中好象沒有;自己看看吧。

          /var/log 系統(tǒng)日志存放,分析日志要看這個(gè)目錄的東西;

          /var/spool 打印機(jī)、郵件、代理服務(wù)器等假脫機(jī)目錄;

          5、附錄:目錄結(jié)構(gòu)的簡(jiǎn)明查閱手冊(cè)

          (1)“/”根目錄部分有以下子目錄:

          /usr 目錄包含所有的命令、程序庫(kù)、文檔和其它文件。這些文件在正常操作中不會(huì)被改變的。這個(gè)目錄也包含你的Linux發(fā)行版本的主要的應(yīng)用程序,譬如,Netscape。

          /var 目錄包含在正常操作中被改變的文件:假脫機(jī)文件、記錄文件、加鎖文件、臨時(shí)文件和頁(yè)格式化文件等

          /home 目錄包含用戶的文件:參數(shù)設(shè)置文件、個(gè)性化文件、文檔、數(shù)據(jù)、EMAIL、緩存數(shù)據(jù)等。這個(gè)目錄在系統(tǒng)省級(jí)時(shí)應(yīng)該保留。

          /proc 目錄整個(gè)包含虛幻的文件。它們實(shí)際上并不存在磁盤上,也不占用任何空間。(用ls –l 可以顯示它們的大小)當(dāng)查看這些文件時(shí),實(shí)際上是在訪問存在內(nèi)存中的信息,這些信息用于訪問系統(tǒng)

          /bin 系統(tǒng)啟動(dòng)時(shí)需要的執(zhí)行文件(二進(jìn)制),這些文件可以被普通用戶使用。

          /sbin 系統(tǒng)執(zhí)行文件(二進(jìn)制),這些文件不打算被普通用戶使用。(普通用戶仍然可以使用它們,但要指定目錄。)

          /etc 操作系統(tǒng)的配置文件目錄。

          /root 系統(tǒng)管理員(也叫超級(jí)用戶或根用戶)的Home目錄。

          /dev 設(shè)備文件目錄。LINUX下設(shè)備被當(dāng)成文件,這樣一來硬件被抽象化,便于讀寫、網(wǎng)絡(luò)共享以及需要臨時(shí)裝載到文件系統(tǒng)中。正常情況下,設(shè)備會(huì)有一個(gè)獨(dú)立的子目 錄。這些設(shè)備的內(nèi)容會(huì)出現(xiàn)在獨(dú)立的子目錄下。LINUX沒有所謂的驅(qū)動(dòng)符。

          /lib 根文件系統(tǒng)目錄下程序和核心模塊的共享庫(kù)。

          /boot 用于自舉加載程序(LILO或GRUB)的文件。當(dāng)計(jì)算機(jī)啟動(dòng)時(shí)(如果有多個(gè)操作系統(tǒng),有可能允許你選擇啟動(dòng)哪一個(gè)操作系統(tǒng)),這些文件首先被裝載。這個(gè)目錄也會(huì)包含LINUX核(壓縮文件vmlinuz),但LINUX核也可以存在別處,只要配置LILO并且LILO知道LINUX核在哪兒。

          /opt 可選的應(yīng)用程序,譬如,REDHAT 5.2下的KDE (REDHAT 6.0下,KDE放在其它的XWINDOWS應(yīng)用程序中,主執(zhí)行程序在/usr/bin目錄下)

          /tmp 臨時(shí)文件。該目錄會(huì)被自動(dòng)清理干凈。

          /lost+found 在文件系統(tǒng)修復(fù)時(shí)恢復(fù)的文件

          (2)“/usr”目錄下比較重要的部分有:

          /usr/X11R6 X-WINDOWS系統(tǒng)(version 11, release 6)

          /usr/X11 同/usr/X11R6 (/usr/X11R6的符號(hào)連接)

          /usr/X11R6/bin 大量的小X-WINDOWS應(yīng)用程序(也可能是一些在其它子目錄下大執(zhí)行文件的符號(hào)連接)。

          /usr/doc LINUX的文檔資料(在更新的系統(tǒng)中,這個(gè)目錄移到/usr/share/doc)。

          /usr/share 獨(dú)立與你計(jì)算機(jī)結(jié)構(gòu)的數(shù)據(jù),譬如,字典中的詞。

          /usr/bin和/usr/sbin 類似與“/”根目錄下對(duì)應(yīng)的目錄(/bin和/sbin),但不用于基本的啟動(dòng)(譬如,在緊急維護(hù)中)。大多數(shù)命令在這個(gè)目錄下。

          /usr/local 本地管理員安裝的應(yīng)用程序(也可能每個(gè)應(yīng)用程序有單獨(dú)的子目錄)。在“main”安裝后,這個(gè)目錄可能是空的。這個(gè)目錄下的內(nèi)容在重安裝或升級(jí)操作系統(tǒng)后應(yīng)該存在。

          /usr/local/bin 可能是用戶安裝的小的應(yīng)用程序,和一些在/usr/local目錄下大應(yīng)用程序的符號(hào)連接。

          (3)“/proc”目錄的內(nèi)容:

          /proc/cpuinfo 關(guān)于處理器的信息,如類型、廠家、型號(hào)和性能等。

          /proc/devices 當(dāng)前運(yùn)行內(nèi)核所配置的所有設(shè)備清單。

          /proc/dma 當(dāng)前正在使用的DMA通道。/proc/filesystems 當(dāng)前運(yùn)行內(nèi)核所配置的文件系統(tǒng)。

          /proc/interrupts 正在使用的中斷,和曾經(jīng)有多少個(gè)中斷。

          /proc/ioports 當(dāng)前正在使用的I/O端口。

          四、后 記

          本文是Linux文件系統(tǒng)的一個(gè)組成部分,對(duì)于一個(gè)系列文檔來說,還是必不可缺的。寫本文的目的如開頭已經(jīng)敘說的一樣,是為了給Linux學(xué)習(xí)者提供一個(gè)關(guān)于Linux文件系統(tǒng)的目錄結(jié)構(gòu)的參考手冊(cè)。如有不明之處,請(qǐng)聯(lián)系飄揚(yáng),你可以到我的留言本http://www.piaoyang.org/guestbook 給我留言,我會(huì)盡力解答你的問題。以此拙作,希望能給大家?guī)バ┪⒌膸椭?T002)

          posted on 2009-11-27 14:09 何克勤 閱讀(207) 評(píng)論(0)  編輯  收藏 所屬分類: GNU Linux/Unix
          主站蜘蛛池模板: 太仆寺旗| 大化| 南投县| 南陵县| 云安县| 福州市| 沧州市| 平度市| 陇西县| 姚安县| 临夏市| 谢通门县| 濮阳县| 民权县| 永靖县| 布尔津县| 广宁县| 高邑县| 上虞市| 沾化县| 红安县| 明溪县| 融水| 翁牛特旗| 阿克苏市| 朝阳县| 沙洋县| 长治市| 宁安市| 罗平县| 磐安县| 连山| 东宁县| 普兰店市| 富阳市| 河北省| 安丘市| 玉龙| 潮安县| 汾阳市| 闸北区|