1. FHS
Filesystem Hierarchy Standard 的主要目的在于,讓使用者可以了解到已安裝軟件通常放置的目錄夕春,F(xiàn)HS 的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(yīng)該要放置什么數(shù)據(jù)湃崩。根據(jù) FHS 對(duì)目錄的定義荧降,可將目錄大致進(jìn)行如下劃分:
可共享的(shareable) | 不可共享的(unshareable) | |
---|---|---|
不可變的(static) | /usr、/opt | /etc攒读、/boot |
可變動(dòng)的(variable) | /var/mail朵诫、/var/spool/news | /var/run、/var/lock |
對(duì)這四種類型進(jìn)行簡(jiǎn)單解釋:
可共享的:即可以分享給其他系統(tǒng)掛載使用的目錄整陌,是能夠分享給網(wǎng)絡(luò)中其他主機(jī)掛載的目錄
不可共享的:自己機(jī)器上運(yùn)行的配置文件或者與程序有關(guān)的 socket 文件拗窃,由于僅與自身機(jī)器相關(guān),因此屬于不可共享
不變的:有些數(shù)據(jù)跟隨 distribution 而不會(huì)改變
可變動(dòng)的:相對(duì)不變的數(shù)據(jù)泌辫,有些數(shù)據(jù)會(huì)經(jīng)常發(fā)生改變
在實(shí)際應(yīng)用中随夸,F(xiàn)HS 定義了三層目錄結(jié)構(gòu):
/ :根目錄,與系統(tǒng)開機(jī)啟動(dòng)相關(guān)
/usr:unix software resource, 與軟件安裝/執(zhí)行相關(guān)
/var:variable, 與系統(tǒng)運(yùn)行過(guò)程相關(guān)
2. ' / ' 根目錄的意義和內(nèi)容
根目錄是 Linux 系統(tǒng)中最重要的一個(gè)目錄震放,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜?lái)的宾毒,而且根目錄也與開機(jī)/還原/系統(tǒng)修復(fù)等操作相關(guān)。系統(tǒng)開機(jī)時(shí)需要的開機(jī)軟件殿遂、核心文件诈铛、開機(jī)所需程序、函數(shù)庫(kù)和系統(tǒng)修復(fù)程序等都存放在根目錄下墨礁。
FHS 標(biāo)準(zhǔn)建議:根目錄所在的分區(qū)應(yīng)該越小越好幢竹,且應(yīng)用程序所安裝的軟件最好不要和根目錄放在同一分區(qū)內(nèi),保持根目錄越小越好恩静。
因?yàn)槿绻謪^(qū)越大就有可能放入越多的數(shù)據(jù)焕毫,其他數(shù)據(jù)的增多會(huì)導(dǎo)致根目錄所在分區(qū)出錯(cuò)的概率增大蹲坷。保持根目錄的精簡(jiǎn),可以使得系統(tǒng)效能最佳邑飒,根目錄所在的文件系統(tǒng)也比較不容易出現(xiàn)錯(cuò)誤循签。
FHS 定義的根目錄下的次級(jí)目錄:
目錄 | 存放的文件內(nèi)容 |
---|---|
/bin | 存放常用的命令,這些命令可以在單人維護(hù)模式中執(zhí)行 |
/boot | 存放開機(jī)使用的文件疙咸,包括 Linux 核心文件及開機(jī)所需的配置文件等县匠。 |
/dev | 存放硬件與接口設(shè)備文件,存取目錄中的某個(gè)文件就相當(dāng)于調(diào)用了某個(gè)設(shè)備 |
/etc | 存放系統(tǒng)中幾乎所有的配置文件撒轮。FHS 建議不要放置可執(zhí)行文件在該目錄中 |
/home | 系統(tǒng)默認(rèn)的用戶家目錄乞旦。每個(gè)普通用戶的家目錄都保存在該目錄下 |
/lib | 系統(tǒng)開機(jī)時(shí)會(huì)用到的函數(shù)庫(kù),以及 /bin 和 /sbin 下命令調(diào)用的函數(shù) |
/media | 存放可移除的媒體設(shè)備题山,包括軟盤杆查、光盤、DVD 等 |
/mnt | 存放需要掛載的額外設(shè)備 |
/opt | 存放安裝第三方軟件 |
/root | root 的家目錄 |
/sbin | 開機(jī)過(guò)程中所需要的命令臀蛛,包括開機(jī)亲桦、修復(fù)、還原等 |
/srv | service浊仆,在一些網(wǎng)絡(luò)服務(wù)啟動(dòng)后客峭,服務(wù)所需要取用的數(shù)據(jù)目錄 |
/tmp | 存放普通用戶或正在執(zhí)行程序的臨時(shí)文件 |
lost+found | 存放當(dāng)文件系統(tǒng)發(fā)生錯(cuò)誤時(shí)將遺失的部分?jǐn)?shù)據(jù) |
/proc | 虛擬文件系統(tǒng),該目錄下的數(shù)據(jù)都存儲(chǔ)在內(nèi)存中抡柿,主要記錄系統(tǒng)運(yùn)行狀態(tài)等 |
/sys | 與 /proc 類似舔琅,虛擬文件系統(tǒng),記錄與核心相關(guān)的信息洲劣,存儲(chǔ)在內(nèi)存中 |
其中:/etc /bin /dev /lib /sbin 這五個(gè)目錄必須與根目錄在同一硬盤分區(qū)备蚓。
3. '/usr' 意義與內(nèi)容
/usr 存放的數(shù)據(jù)屬于可分享但不可變動(dòng),主要用于存放系統(tǒng)軟件資源囱稽。
/usr 的次級(jí)目錄主要包括:
目錄 | 存放的文件內(nèi)容 |
---|---|
/usr/bin | 存放絕大部分用戶可使用的命令 |
/usr/include | 存放 C/C++ 等語(yǔ)言的 header 和 include |
/usr/lib | 存放軟件的函數(shù)庫(kù)等 |
/usr/local | root 在本機(jī)自行安裝的軟件 |
/usr/sbin | 非系統(tǒng)正常運(yùn)行所需要的系統(tǒng)命令 |
/usr/share | 存放共享文件 |
/usr/src | 存放軟件源代碼 |
4. /var 意義與內(nèi)容
/var 主要存放常態(tài)性變動(dòng)的文件郊尝,主要包括:緩存、日志文件战惊、數(shù)據(jù)庫(kù)文件流昏、軟件運(yùn)行產(chǎn)生的文件等。
/var 的次級(jí)目錄主要包括:
目錄 | 存放的文件內(nèi)容 |
---|---|
/var/cache | 軟件運(yùn)行時(shí)產(chǎn)生的一些文件 |
/var/lib | 軟件運(yùn)行時(shí)使用的數(shù)據(jù)庫(kù)文件 |
/var/lock | 確保非共享資源的獨(dú)占性 |
/var/log | 存放日志文件 |
/var/mail | /var/spool/mail 都用于存放電子郵件 |
/var/run | 在程序或服務(wù)啟動(dòng)后吞获,存放 PID |
/var/spool | 等待其他程序正在使用的數(shù)據(jù) |
5. 目錄樹
在 Linux 中所有的文件和目錄都是由根目錄開始况凉,由此產(chǎn)生的目錄結(jié)構(gòu)成為目錄樹。目錄樹的主要特征包括:
目錄樹的起始點(diǎn)為根目錄 /
目錄包括本地目錄和掛載的非本地目錄
每一個(gè)文件在目錄樹中的路徑時(shí)獨(dú)一無(wú)二的
Linux 的目錄樹架構(gòu):
6. 絕對(duì)路徑和相對(duì)路徑
絕對(duì)路徑:由根目錄開始到目錄名或文件名的路徑
相對(duì)路徑:相對(duì)于當(dāng)前路徑的文件名寫法各拷。也可以認(rèn)為不以根目錄開頭的寫法
相對(duì)路徑中使用的兩個(gè)特殊的目錄:
.
: 代表當(dāng)前目錄刁绒,也可以用./
表示..
:當(dāng)前目錄的上層目錄,也可以用../
表示