FHS(Filesystem Hierarchy Standard 文件系统层次化标准)
文章目錄
- 一、根目錄 (/) 的意義與內(nèi)容
- 二、/usr/ 的意義與內(nèi)容
- 三、/var/ 的意義與內(nèi)容
- 四、目錄樹(shù)(directory tree)
- 五、絕對(duì)路徑與相對(duì)路徑
FHS 是 File System Hierarchy Standard(文件系統(tǒng)層次化標(biāo)準(zhǔn))的縮寫(xiě),多數(shù)Linux 版本采用這種文件組織形式,類(lèi)似于 Windows 操作系統(tǒng)中 c 盤(pán)的文件目錄,FHS 采用樹(shù)形結(jié)構(gòu)組織文件。FHS 定義了系統(tǒng)中每個(gè)區(qū)域的用途、所需要的最小構(gòu)成的文件和目錄,同時(shí)還給出了例外處理與矛盾處理。
根據(jù) FHS(Filesystem Hierarchy Standard) 的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于那個(gè)目錄下, 所以他們希望獨(dú)立的軟件開(kāi)發(fā)商、操作系統(tǒng)制作者、以及想要維護(hù)系統(tǒng)的用戶,都能夠遵循FHS的標(biāo)準(zhǔn)。 也就是說(shuō),FHS的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已。
FHS 針對(duì)目錄樹(shù)架構(gòu)僅規(guī)定了三個(gè)目錄下應(yīng)該放置什么數(shù)據(jù):
/ (根目錄):與開(kāi)機(jī)系統(tǒng)有關(guān);
/usr/ (unix software resource):與軟件安裝/執(zhí)行有關(guān);
/var/ (variable):與系統(tǒng)運(yùn)作過(guò)程有關(guān)。
由于 FHS 僅是定義出最上層(/)及次層(/usr/, /var/)的目錄內(nèi)容應(yīng)該要放置的文件或目錄數(shù)據(jù), 因此,在其他次目錄層級(jí)內(nèi),就可以隨開(kāi)發(fā)者自行來(lái)配置了。
一、根目錄 (/) 的意義與內(nèi)容
根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜?lái)的, 同時(shí)根目錄也與開(kāi)機(jī)/還原/系統(tǒng)修復(fù)等動(dòng)作有關(guān)。 由于系統(tǒng)開(kāi)機(jī)時(shí)需要特定的開(kāi)機(jī)軟件、核心文件、開(kāi)機(jī)所需程序、 函式庫(kù)等等文件數(shù)據(jù),若系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。 因?yàn)楦夸浭沁@么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區(qū), 因?yàn)樵酱蟮姆謪^(qū)內(nèi)你會(huì)放入越多的數(shù)據(jù),如此一來(lái)根目錄所在分區(qū)就可能會(huì)有較多發(fā)生錯(cuò)誤的機(jī)會(huì)。
因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好, 且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分區(qū)內(nèi),保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問(wèn)題。說(shuō)白了,就是根目錄和 Windows 的 C 盤(pán)一個(gè)樣。
要注意的是,因?yàn)楦夸浥c開(kāi)機(jī)有關(guān),開(kāi)機(jī)過(guò)程中僅有根目錄會(huì)被掛載, 其他分區(qū)則是在開(kāi)機(jī)完成之后才會(huì)持續(xù)的進(jìn)行掛載。因此根目錄下與開(kāi)機(jī)過(guò)程有關(guān)的目錄, 就不能夠與根目錄放到不同的分區(qū)去。
哪些目錄不可與根目錄分開(kāi)呢?如下這些:
/etc:配置文件
/bin:重要執(zhí)行檔
/dev:所需要的設(shè)備文件
/lib:執(zhí)行檔所需的函式庫(kù)與核心所需的模塊
/sbin:重要的系統(tǒng)執(zhí)行文件
這五個(gè)目錄不可與根目錄分開(kāi)在不同的分區(qū)。
二、/usr/ 的意義與內(nèi)容
依據(jù) FHS 的基本定義,/usr里面放置的數(shù)據(jù)屬于可分享的與不可變動(dòng)的(shareable, static), 如果你知道如何透過(guò)網(wǎng)絡(luò)進(jìn)行分區(qū)的掛載(例如在服務(wù)器篇會(huì)談到的NFS服務(wù)器),那么/usr確實(shí)可以分享給局域網(wǎng)絡(luò)內(nèi)的其他主機(jī)來(lái)使用喔。
/usr不是user的縮寫(xiě),其實(shí)usr是Unix Software Resource的縮寫(xiě), 也就是Unix操作系統(tǒng)軟件資源所放置的目錄,而不是用戶的數(shù)據(jù)啦。這點(diǎn)要注意。 FHS建議所有軟件開(kāi)發(fā)者,應(yīng)該將他們的數(shù)據(jù)合理的分別放置到這個(gè)目錄下的次目錄,而不要自行建立該軟件自己獨(dú)立的目錄。
因?yàn)槭撬邢到y(tǒng)默認(rèn)的軟件(distribution發(fā)布者提供的軟件)都會(huì)放置到/usr底下,因此這個(gè)目錄有點(diǎn)類(lèi)似Windows 系統(tǒng)的C:\Windows\ + C:\Program files\這兩個(gè)目錄的綜合體,系統(tǒng)剛安裝完畢時(shí),這個(gè)目錄會(huì)占用最多的硬盤(pán)容量。
三、/var/ 的意義與內(nèi)容
如果 /usr/ 是安裝時(shí)會(huì)占用較大硬盤(pán)容量的目錄,那么/var就是在系統(tǒng)運(yùn)作后才會(huì)漸漸占用硬盤(pán)容量的目錄。 因?yàn)?var目錄主要針對(duì)常態(tài)性變動(dòng)的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運(yùn)作所產(chǎn)生的文件, 包括程序文件(lock file, run file),或者例如MySQL數(shù)據(jù)庫(kù)的文件等等。
四、目錄樹(shù)(directory tree)
在Linux底下,所有的文件與目錄都是由根目錄開(kāi)始的。那是所有目錄與文件的源頭, 然后再一個(gè)一個(gè)的分支下來(lái),因此,我們也稱(chēng)這種目錄配置方式為:目錄樹(shù)(directory tree), 這個(gè)目錄樹(shù)的主要特性有:
五、絕對(duì)路徑與相對(duì)路徑
除了需要特別注意的 FHS 目錄配置外,在文件名部分我們也要特別注意。因?yàn)楦鶕?jù)檔名寫(xiě)法的不同,也可將所謂的路徑(path)定義為絕對(duì)路徑(absolute)與相對(duì)路徑(relative)。 這兩種文件名/路徑的寫(xiě)法依據(jù)是這樣的:
絕對(duì)路徑:由根目錄(/)開(kāi)始寫(xiě)起的文件名或目錄名稱(chēng), 例如 /home/dmtsai/.bashrc。
相對(duì)路徑:相對(duì)于目前路徑的文件名寫(xiě)法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正開(kāi)頭不是 /就屬于相對(duì)路徑的寫(xiě)法。
而你必須要了解,相對(duì)路徑是以你當(dāng)前所在路徑的相對(duì)位置來(lái)表示的。舉例來(lái)說(shuō),你目前在 /home 這個(gè)目錄下, 如果想要進(jìn)入 /var/log 這個(gè)目錄時(shí),可以怎么寫(xiě)呢?
cd /var/log # absolutecd ../var/log # relative因?yàn)槟阍?/home 底下,所以要回到上一層 (../) 之后,才能進(jìn)入到目錄 /var 下,特別注意這兩個(gè)特殊的目錄:
.:代表當(dāng)前的目錄,也可以使用 ./ 來(lái)表示。
..:代表上一層目錄,也可以 ../ 來(lái)代表。
這兩個(gè) . 與 .. 目錄概念是很重要的,你常常會(huì)看到 cd .. 或 ./command 之類(lèi)的指令下達(dá)方式, 一個(gè)表示返回到上級(jí)目錄,一個(gè)表示執(zhí)行當(dāng)前目錄下的一個(gè)指令。
**實(shí)例1:**如何先進(jìn)入 /var/spool/mail/ 目錄,再進(jìn)入到 /var/spool/cron/ 目錄內(nèi)?
命令語(yǔ)句如下所示:
說(shuō)明:
由于/var/spool/mail與/var/spool/cron是同樣在/var/spool/目錄中。如此就不需要在由根目錄開(kāi)始寫(xiě)起了。這個(gè)相對(duì)路徑是非常有幫助的,尤其對(duì)于某些軟件開(kāi)發(fā)商來(lái)說(shuō)。 一般來(lái)說(shuō),軟件開(kāi)發(fā)商會(huì)將數(shù)據(jù)放置到/usr/local/里面的各相對(duì)目錄。 但如果用戶想要安裝到不同目錄呢?就得要使用相對(duì)路徑。
**實(shí)例2:**網(wǎng)絡(luò)文件常常提到類(lèi)似 ./run.sh 之類(lèi)的數(shù)據(jù),這個(gè)指令的意義為何?
說(shuō)明:
由于指令的執(zhí)行需要變量的支持,若你的執(zhí)行文件放置在本目錄,并且本目錄并非正規(guī)的執(zhí)行文件目錄(/bin, /usr/bin等為正規(guī)),此時(shí)要執(zhí)行指令就得要嚴(yán)格指定該執(zhí)行檔。./ 代表本目錄的意思,所以 ./run.sh 代表執(zhí)行本目錄下名為 run.sh 的文件
官方文檔地址:
http://www.pathname.com/fhs/
總結(jié)
以上是生活随笔為你收集整理的FHS(Filesystem Hierarchy Standard 文件系统层次化标准)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 黑芝麻糊冲泡方法 如何冲泡黑芝麻糊
- 下一篇: 洗衣服的步骤 洗衣服正确步骤介绍