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