Linux系統目錄結構
1、目錄介紹
當在使用Linux系統時,可通過ls–l/就會發現,在/下包涵很多的目錄,而在這些目錄中,依舊存在很多目錄或文件。文件系統在Linux下看上去就象樹形結構,所以我們可以把文件系統的結構形象的稱爲樹形結構。
文件系統是用來組織和排列文件存取的,在Linux中,我們可通過ls等工具來查看其結構,在Linux系統中,我們見到的全部都是樹形結構。比如操作系統安裝在一個文件系統中,它表現爲由/起始的樹形結構。linux文件系統的最頂端是/,我們稱/爲Linux的root,也就是Linux操作系統的文件系統。Linux的文件系統的入口就是/,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者。Linux系統一切皆文件。
File system Hierarchy Standard(文件系統目錄標準)的縮寫,多數Linux版本採用這種文件組織形式,類似於Windows操作系統中c盤的文件目錄,FHS採用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。
FHS針對目錄樹架構僅定義出三層目錄底下應該放置什麼數據而已,分別是:
(1)/(root,根目錄):與開機系統有關;
(2)/usr(unix softwar eresource):與軟件安裝/執行有關;
(3)/var(variable):與系統運作過程有關。
2、目錄特點
(1)/(根)是所有目錄的頂點。
(2)目錄結構像一顆倒掛的樹。
(3)目錄和磁盤分區,默認是沒有關聯的。
(4)/(根)下不同的目錄可能會對應不同的分區或磁盤。
(5)所有的目錄都是按照一定的類別和規律組成的。
3、目錄說明
3.1/目錄
根目錄是整個系統最重要的一個目錄,因爲不但所有的目錄都是由根目錄衍生出來的,同時根目錄也與開機/還原/系統修復等動作有關。由於系統開機時需要特定的開機軟件、核心文件、開機所需程序、函式庫等等文件數據,若系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序纔行。因爲根目錄是這麼的重要,所以在FHS的要求方面,它希望根目錄不要放在非常大的分區,因爲越大的分區內會放入越多的數據,如此一來根目錄所在分區就可能會有較多發生錯誤的機會。
每一個文件和目錄都從根開始。
3.2/bin目錄
/bin存放二進制可執行命令的目錄,在/bin下的指令可以被root與一般帳號所使用,主要有:cat,chmod(修改權限),chown,date,mv,mkdir,cp,bash等常用的指令。
3.3/sbin目錄
用來存放二進制可執行文件,只是這裏面的命令只供系統管理員,管理系統使用(root用戶)。例如:iptables(防護牆)、ifconfig(查看網卡信息)、init(設置啓動級別)等。
3.4/boot目錄
主要放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需設定檔等等。Linux kernel常用的檔名爲:vmlinuz,如果使用的是grub該開機管理程式,則還會存在/boot/grub/該目錄。
3.5/dev目錄
在Linux系統上,把所有的硬件用文件的形式存儲。比較重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等。
3.6/etc目錄
yum/rpm安裝的軟件配置文件所在的目錄,系統主要的配置文檔幾乎都放置在該目錄內,例如人員的帳號密碼、各種服務的啓動文件等。該目錄下的各文件屬性是可以讓一般使用者查閱的,但是隻有root有權力修改。
3.7/home目錄
普通用戶家目錄(homedirectory),用來存放普通用戶的文件
3.8/lib目錄
存放二進制庫文件,庫文件一般以.so|lib*|ld*。
3.9/media目錄
media是媒體的英文,顧名思義,該/media底下放置的就是可移除的設備。包括軟碟、光碟、DVD等裝置都暫時掛載於此。常見的檔名有:/media/floppy,/media/cdrom等。
3.10/mn目錄
一般用來臨時掛載臨時存儲設備的目錄。
3.11/opt目錄
一般是給第三方廠家開發的程序的安裝目錄。現在一般不用。
3.12/root目錄
系統管理員(root)的家目錄。如果進入單人維護模式而僅掛載根目錄時,該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分區中。
3.13/srv目錄
srv可以視爲service的縮寫,是一些網路服務啓動之後,這些服務所需要取用的資料目錄。常見的服務例如WWW,FTP等。
3.14/tmp目錄
臨時文件存放的地方,由於該目錄的權限爲1777,所有用戶對該目錄都有可讀可寫可執行的權限,所以其他人也可以刪除你的文件。
3.15/lost+found目錄
該目錄使用標準的ext2/ext3文件系統格式纔會產生的一個目錄,目的在於當文件系統發生錯誤時,將一些遺失的片段放置到該目錄下。該目錄通常會在分割槽的最頂層存在,例如你加裝一個硬盤於/disk中,那在該系統下就會自動產生一個這樣的目錄/disk/lost+found。
3.16/proc目錄
該目錄本身是一個虛擬文件系統(virtual file system)。它只存在內存當中,而不佔用外部空間。它以文件系統的方式爲訪問系統內核數據的操作提供接口。
3.17/sys目錄
該目錄與/proc類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的信息。包括目前已載入的核心模組與核心偵測到的硬件信息等,該目錄同樣不佔硬盤容量。
3.18/usr目錄
該目錄是集成到主文件系統中的單獨文件系統的掛載點,用來存放系統數據,包含大量標準子目錄。/usr目的是用來存放靜態數據(不隨時間改變的數據),沒有系統管理員的干涉不會改變的數據。
3.19/usr/bin目錄
絕大部分的用戶可使用指令都放在這裏。
3.20/usr/include目錄
c/c++等程序語言的頭文件(header)與包含文件(include)放置處。
3.21/usr/lib目錄
包含各應用軟件的函式庫、目標文件(objectfile),以及不被一般使用者慣用的執行文件或腳本(script)。
3.22/usr/local目錄
統管理員在本機自行安裝自己下載的軟件,建議安裝到此目錄。
3.23/usr/sbin目錄
由超級用戶運行的非基本系統管理程序。
3.24/usr/share目錄
放置共享文件的目錄。/usr/share/doc:軟件雜項的文件說明;/usr/share/zoneinfo:與時區有關的時區文件。
3.25/usr/src目錄
一般原始碼建議放置到這裏,src有source的意思。至於核心原始碼則建議放置到/usr/src/linux/目錄下。
3.26/var
目錄如果/usr是安裝時會佔用較大硬盤容量的目錄,那麼/var就是在系統運作後纔會漸漸佔用硬盤容量的目錄。因爲/var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(logfile)以及某些軟件運作所產生的文件,包括程序文件(lockfile,runfile),或者例如MySQL數據庫的文件等。
3.27/var/cache目錄
應用程序本身運作過程中會產生的一些緩存文件。
3.28/var/lib目錄
程序本身執行的過程中,需要用到的數據文件存放目錄。比如,MySQL的數據庫放置到/var/lib/mysql/。
3.29/var/lock目錄
某些配置或文件資源一次只能被一個應用程序所使用,如果同時有兩個程序使用該裝置時,就可能產生一些錯誤,因此就要將該資源上鎖(lock),以確保該資源只會給單一程序所使用。
3.30/var/log目錄
這是登錄文件放置的目錄。主要存放日誌等信息。
3.31/var/mail目錄
放置個人電子郵件信箱的目錄,不過該目錄也被放置到/var/spool/mail/目錄中,通常這兩個目錄是互爲鏈接文件。
3.32/var/run目錄
某些程序或者是服務啓動後,會將它們的PID放置在該目錄下。
3.33/var/spool目錄
該目錄通常放置一些隊列數據,所謂的“隊列”就是排隊等待其它程序使用的數據。這些數據被使用後通常都會被刪除。舉例來說,系統收到郵件信息會放置到/var/spool/mail/中,但使用者收下該信件後該封信原則上就會被刪除。信件如果暫時寄不出去會被放到/var/spool/mqueue/中,等到被送出後就被刪除。如果是工作排程數據(crontab),就會被放置到/var/spool/cron/目錄中。
個人公衆號: