FHS(Filesystem Hierarchy Standard)即硼,文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)。
根據(jù) FHS 的官方文件指出挖帘,其主要目的是希望讓用戶可以了解到數(shù)據(jù)通常放置于哪個目錄下。也就是說,F(xiàn)HS的重點在于規(guī)范每個特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已道逗。
FHS定義了兩層規(guī)范
第一層是, / 根目錄下面的各個目錄應(yīng)該要放什么文件數(shù)據(jù)献烦;
第二層滓窍,針對 /usr 和 /var 這兩個目錄的子目錄來定義;
FHS 依據(jù) 文件系統(tǒng)使用的頻繁與否 與 是否用戶可以隨意改動巩那,將目錄定義成四種交互作用的形態(tài):
可分享的(shareable):可以分享給其他系統(tǒng)(網(wǎng)絡(luò)主機(jī))掛載使用的目錄吏夯;
不可分享的(unshareable):僅與自身機(jī)器有關(guān),不適合分享給其他主機(jī)即横;
可變動的(variable):經(jīng)常會改變的噪生;
不變的(static):有些數(shù)據(jù)是不會經(jīng)常變化的,只會隨著系統(tǒng)版本而變動东囚,如函數(shù)庫等跺嗽;
根目錄(/)
根目錄是系統(tǒng)最重要的一個目錄,不但所有的目錄都是根目錄衍生出來的页藻,同時根目錄也與開機(jī)桨嫁、還原、系統(tǒng)修復(fù)等操作有關(guān)份帐。
FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好璃吧,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個分區(qū)。如此不但性能較好废境,根目錄所在的文件系統(tǒng)也比較不容易發(fā)生問題畜挨。
執(zhí)行文件目錄(/bin)
系統(tǒng)有許多放置執(zhí)行文件的目錄,但 /bin 比較特殊噩凹。因為 /bin 放置的是在單用戶模式下還能被操作的命令巴元。在 /bin 下面的命令可以被root與一般賬戶所使用,主要有 cat栓始,chmod务冕,chown,date幻赚,mv禀忆,mkdir臊旭,cp,bash等常用命令箩退。
開機(jī)文件目錄(/boot)
這個目錄主要放置開機(jī)會使用到的文件离熏,包括 Linux內(nèi)核文件以及開機(jī)菜單與開機(jī)所需配置文件等。
驅(qū)動設(shè)備目錄(/dev)
在Linux系統(tǒng)上戴涝,任何設(shè)備與接口設(shè)備都是以文件的形式存在于這個目錄當(dāng)中的滋戳。你只要通過訪問這個目錄下面的某個文件,就等于訪問了某個設(shè)備啥刻。比較重要的文件有 /dev/null奸鸯,/dev/zero,/dev/tty等可帽。
配置文件目錄(/etc)
系統(tǒng)主要的配置文件幾乎都放置在這個目錄內(nèi)娄涩,如賬戶密碼文件、各種服務(wù)的配置文件等映跟。一般來說蓄拣,這個目錄下各文件屬性可以讓一般用戶查閱,但只有root有權(quán)修改努隙。
用戶主目錄(/home)
系統(tǒng)默認(rèn)的用戶主文件夾(home directory)球恤,在創(chuàng)建一個一般用戶時,默認(rèn)的用戶文件夾會規(guī)范到這里來荸镊。 ~ 代表當(dāng)前用戶的主文件夾咽斧。
系統(tǒng)函數(shù)庫(/lib)
系統(tǒng)的函數(shù)庫非常多,而 /lib 放置的則是在開機(jī)時會用到的函數(shù)庫贷洲,以及在 /bin 或 /sbin 下面的命令會調(diào)用的函數(shù)庫而已收厨。
可以把函數(shù)庫想象成 “外掛”晋柱,某些命令必須要有這些“外掛”才能夠順利完成程序的執(zhí)行优构。
媒體設(shè)備暫掛區(qū)(/media)
這個 /media 下面放置的就是可刪除的設(shè)備,包括軟盤雁竞、光盤钦椭、DVD等設(shè)備都暫時掛載于此。常見的文件名有 /media/floppy碑诉,/media/cdrom等彪腔。
額外設(shè)備暫掛區(qū)(/mnt)
如果想要暫時掛載某些額外的設(shè)備,一般建議可以放置到這個目錄中进栽。在較早的時候德挣,這個目錄的用途與 /media 相同,只是有了 /media 之后快毛,這個目錄就被用來暫時掛載用了格嗅。
第三方軟件安裝目錄(/opt)
這個目錄用于安裝第三方應(yīng)用程序番挺,可以由用戶自己指定安裝位置。當(dāng)需要卸載第三方應(yīng)用程序時屯掖,可以直接刪除安裝目錄玄柏,而不影響系統(tǒng)其他任何設(shè)置。
管理員文件夾(/root)
系統(tǒng)管理員(root)的主文件夾贴铜。之所以放在這里粪摘,是因為如果進(jìn)入單用戶維護(hù)模式而僅掛載根目錄時,該目錄就能夠擁有 root 的主文件夾绍坝,所以我們會希望 root 的主文件夾與根目錄放置在同一個分區(qū)中徘意。
重要系統(tǒng)執(zhí)行文件(/sbin)
Linux有非常多的命令是來設(shè)置系統(tǒng)環(huán)境的,這些命令只有 root 才能夠利用來“設(shè)置”系統(tǒng)轩褐,其他用戶最多只能查詢映砖。放在 /sbin 下面的為開機(jī)過程中所需的,里面包括了開機(jī)灾挨、修復(fù)邑退、還原系統(tǒng)所需的命令。
服務(wù)數(shù)據(jù)存放目錄(/srv)
srv 可看做 “service” 的縮寫劳澄,是一些網(wǎng)絡(luò)服務(wù)啟動之后地技,這些服務(wù)所需要取用的數(shù)據(jù)目錄。
臨時文件存放目錄(/tmp)
這是讓一般用戶或者是正在執(zhí)行的程序暫時放置文件的地方秒拔。這個目錄任何人都可以訪問莫矗,所以需要定期清理。當(dāng)然砂缩,重要數(shù)據(jù)不可放置在此目錄作谚,因為系統(tǒng)會不定期將 /tmp 目錄下的數(shù)據(jù)全部刪除。
丟失內(nèi)容修復(fù)目錄(/lost+found)
這個目錄是使用標(biāo)準(zhǔn)的 ext2/ext3/ext4 文件系統(tǒng)格式才會產(chǎn)生的一個目錄庵芭,目的相當(dāng)于文件系統(tǒng)發(fā)生錯誤時妹懒,將一些丟失的片段放置到這個目錄下。這個目錄通常存在于分區(qū)的最頂層双吆。
虛擬文件系統(tǒng)目錄(/proc)
這個目錄本身是一個虛擬文件系統(tǒng)(virtual filesystem)眨唬,它放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中,例如系統(tǒng)內(nèi)核好乐,進(jìn)程匾竿,外部設(shè)備以及網(wǎng)絡(luò)狀態(tài)等。因為這個目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中的蔚万,所以本身并不占用任何硬盤空間岭妖。
虛擬文件系統(tǒng)目錄(/sys)
這個目錄也是一個虛擬的文件系統(tǒng),主要是記錄與內(nèi)核有關(guān)的信息。包括目前已加載的內(nèi)核模塊與內(nèi)核檢測到的硬件設(shè)備信息等昵慌,這個目錄同樣不占用硬盤容量苔巨。
系統(tǒng)軟件資源目錄(/usr)
usr 是 Unix Software Resource 的縮寫,也就是 Unix系統(tǒng)軟件資源 所放置的目錄废离,而不是 user侄泽,這要注意。
FHS 建議所有軟件開發(fā)者應(yīng)該將他們的數(shù)據(jù)合理地分別放置到這個目錄下的子目錄蜻韭,而不要自行新建該軟件的獨立目錄悼尾。
/usr/bin/ :絕大部分用戶可使用的命令都放在這里;
/usr/include/ :C/C++等程序語言的頭文件(header)與包含文件(include)放置處肖方;
/usr/lib :包含各應(yīng)用軟件的函數(shù)庫闺魏、目標(biāo)文件以及一些不被一般用戶慣用的執(zhí)行文件或腳本;
/usr/local/ 俯画;系統(tǒng)管理員在本機(jī)自行安裝下載的軟件建議安裝到此目錄析桥;
/usr/sbin/ ;非系統(tǒng)正常運行所需的命令艰垂;
/usr/share/ 泡仗;放置共享文件的地方;
/usr/src/ 猜憎;一般源碼建議放置到這里娩怎;
常態(tài)可變動文件目錄(/var)
該目錄主要針對常態(tài)性可變動文件,包括緩存(cache)胰柑、登錄文件(log file)以及某些軟件運行所產(chǎn)生的文件截亦,包括程序文件(lock file、run file)柬讨,或者如 MySQL數(shù)據(jù)庫的文件等崩瓤。
如果 /usr 是安裝時會占用較大硬盤容量的目錄,那么 /var 就是在系統(tǒng)運行后才會漸漸占用磁盤容量的目錄踩官。
/var/cache/ :應(yīng)用程序本身運行過程中會產(chǎn)生一些暫存文件却桶;
/var/lib/ :程序本身執(zhí)行的過程中,需要用到的數(shù)據(jù)文件放置的目錄卖鲤;
/var/lock/ :目錄下的文件資源一次只能被一個應(yīng)用程序所使用肾扰;
/var/log/ :放置日志文件的目錄畴嘶;
/var/mail/ :放置電子郵件的目錄蛋逾;
/var/run/ :某些程序或服務(wù)啟動后的PID目錄;
/var/spool/ :放置排隊等待其他應(yīng)用程序使用的數(shù)據(jù)窗悯;