Linux 标准目录结构 FHS
因?yàn)?Linux 的開(kāi)發(fā)人員實(shí)在太多了,如果每個(gè)人都使用自己的目錄配置方法,那么將可能會(huì)帶來(lái)很多管理問(wèn)題。所以,后來(lái)就有了 Filesystem Hierarchy Standard(FHS,文件系統(tǒng)層次化標(biāo)準(zhǔn))標(biāo)準(zhǔn)的出爐了,多數(shù)Linux版本采用這種文件組織形式,類似于Windows操作系統(tǒng)中c盤的文件目錄,FHS采用樹(shù)形結(jié)構(gòu)組織文件。
根據(jù) FHS 的官方文件指出,其主要目的是希望讓用戶可以了解到數(shù)據(jù)通常放置于哪個(gè)目錄下。也就是說(shuō),FHS 的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)。
FHS 依據(jù)文件系統(tǒng)使用的頻繁與否與是否用戶隨意改動(dòng),而將目錄定義成四種交互作用的形態(tài):
可分享的:可以分享給其他系統(tǒng)掛載使用的目錄,所以包括執(zhí)行文件與用戶的郵件等數(shù)據(jù),是能夠分享給網(wǎng)絡(luò)上其他主機(jī)掛載用的目錄。
不可分享的:自己機(jī)器上面運(yùn)行的設(shè)備文件或者是與程序有關(guān)的 socket 文件等,由于僅與自身機(jī)器有關(guān),所以不適合分享給其他主機(jī)。
不變的:有些數(shù)據(jù)是不會(huì)經(jīng)常變動(dòng)的,只會(huì)隨著系統(tǒng)版本而變動(dòng)。例如函數(shù)庫(kù)、說(shuō)明文件、系統(tǒng)管理員所管理的主機(jī)服務(wù)配置文件等。
可變動(dòng)的:經(jīng)常改變的數(shù)據(jù),例如登錄文件、用戶文件等。
?
根目錄(/)
根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜?lái)的,同時(shí)根目錄也與開(kāi)機(jī)、還原、系統(tǒng)修復(fù)等操作有關(guān)。
因此 FHS 標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分區(qū)內(nèi),保持根目錄越小越好。如此不但性能較好,根目錄所在的文件系統(tǒng)也比較不容易發(fā)生問(wèn)題。
?
執(zhí)行文件目錄(/bin)
系統(tǒng)有很多放置執(zhí)行文件的目錄,但 /bin 比較特殊。因?yàn)?strong>?/bin 放置的是在單用戶維護(hù)模式下還能被操作的命令。在 /bin 下面的命令可以被 root 與一般賬號(hào)所使用,主要有 cat,chmod,chown,date,mv,mkdir,cp,bash 等常用的命令。
?
開(kāi)機(jī)文件目錄(/boot)
這個(gè)目錄主要放置開(kāi)機(jī)會(huì)使用到的文件,包括?Linux 內(nèi)核文件以及開(kāi)機(jī)菜單與開(kāi)機(jī)所需配置文件等。
?
驅(qū)動(dòng)設(shè)備目錄(/dev)
在 Linux 系統(tǒng)上,任何設(shè)備與接口設(shè)備都是以文件的形式存在于這個(gè)目錄當(dāng)中的。你只要通過(guò)訪問(wèn)這個(gè)目錄下面的某個(gè)文件,就等于訪問(wèn)某個(gè)設(shè)備。比較重要的文件有 /dev/null,/dev/zero,/dev/tty 等。
?
配置文件目錄(/etc)
系統(tǒng)主要的配置文件幾乎都放置在這個(gè)目錄內(nèi),例如人員的賬號(hào)密碼文件、各種服務(wù)的起始文件等。一般來(lái)說(shuō),這個(gè)目錄下的各個(gè)文件屬性是可以讓一般用戶查閱的,但只有 root 有權(quán)利修改。比較重要的文件有 /etc/init.d,/etc/inittab,/etc/sysconfig 等。
?
用戶主文件夾(/home)
這是系統(tǒng)默認(rèn)的用戶主文件夾(home directory)。在你創(chuàng)建一個(gè)一般用戶賬號(hào)時(shí),默認(rèn)的用戶主文件夾都會(huì)規(guī)范到這里來(lái)。~ 代表當(dāng)前用戶的主文件夾。
?
系統(tǒng)函數(shù)庫(kù)(/lib)
系統(tǒng)的函數(shù)庫(kù)非常多,而 /lib 放置的則是在開(kāi)機(jī)時(shí)會(huì)用到的函數(shù)庫(kù),以及在 /bin 或 /sbin 下面的命令會(huì)調(diào)用的函數(shù)庫(kù)而已。
* 你可以把函數(shù)庫(kù)想象成是“外掛”,某些命令必須要有這些“外掛”才能夠順利完成程序的執(zhí)行之意。
?
媒體設(shè)備暫掛區(qū)(/media)
media 是“媒體”的英文,顧名思義,這個(gè) /media 下面放置的就是可刪除的設(shè)備。包括軟盤、光盤、DVD等設(shè)備都暫時(shí)掛載于此。常見(jiàn)的文件名有 /media/floppy,/media/cdrom 等。
?
額外設(shè)備暫掛區(qū)(/mnt)
如果你想要暫時(shí)掛載某些額外的設(shè)備,一般建議你可以放置到這個(gè)目錄中。在比較早的時(shí)候,這個(gè)目錄的用途與 /media 相同。只是有了 /media 之后,這個(gè)目錄就被用來(lái)暫時(shí)掛載用了。
?
第三方軟件安裝目錄(/opt)
這個(gè)目錄是用于安裝第三方應(yīng)用程序的,可以由用戶自己指定安裝位置。當(dāng)需要卸載第三方應(yīng)用程序時(shí),可以直接刪除安裝目錄,而不影響系統(tǒng)其它任何設(shè)置。
?
管理員主文件夾(/root)
系統(tǒng)管理員(root)的主文件夾。之所以放在這里,是因?yàn)槿绻M(jìn)入單用戶維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的主文件夾,所以我們會(huì)希望root的主文件夾與根目錄放置在同一個(gè)分區(qū)中。
?
重要系統(tǒng)執(zhí)行文件(/sbin)
Linux 有非常多的命令是來(lái)設(shè)置系統(tǒng)環(huán)境的,這些命令只有 root 才能夠利用來(lái)“設(shè)置”系統(tǒng),其他用戶最多只能用來(lái)“查詢”而已。放在 /sbin 下面的為開(kāi)機(jī)過(guò)程中所需的,里面包括了開(kāi)機(jī)、修復(fù)、還原系統(tǒng)所需要的命令。
?
服務(wù)數(shù)據(jù)存放目錄(/srv)
srv 可以視為“service”的縮寫,是一些網(wǎng)絡(luò)服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的數(shù)據(jù)目錄。常見(jiàn)的服務(wù)例如 WWW、FTP 等。舉例來(lái)說(shuō),WWW 服務(wù)需要的網(wǎng)頁(yè)數(shù)據(jù)就可以放置在 /srv/www/ 里。
?
臨時(shí)文件存放目錄(/tmp)
這是讓一般用戶或者是正在執(zhí)行的程序暫時(shí)放置文件的地方。這個(gè)目錄是任何人都能夠訪問(wèn),所以你需要定期清理一下。當(dāng)然,重要數(shù)據(jù)不可放置在此目錄,因?yàn)橄到y(tǒng)會(huì)不定期將 /tmp 目錄下的數(shù)據(jù)全部刪除。
?
丟失內(nèi)容修復(fù)目錄(/lost+found)
這個(gè)目錄是使用標(biāo)準(zhǔn)的 ext2/ext3 文件系統(tǒng)格式才會(huì)產(chǎn)生的一個(gè)目錄,目的相當(dāng)于文件系統(tǒng)發(fā)生錯(cuò)誤時(shí),將一些丟失的片段放置到這個(gè)目錄下。這個(gè)目錄通常會(huì)在分區(qū)的最頂層存在。
?
虛擬文件系統(tǒng)目錄(/proc)
這個(gè)目錄本身是一個(gè)虛擬文件系統(tǒng)(virtual filesystem)。它放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中,例如系統(tǒng)內(nèi)核、進(jìn)程、外部設(shè)備以及網(wǎng)絡(luò)狀態(tài)等。因?yàn)檫@個(gè)目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中的,所以本身并不占任何硬盤空間。
?
虛擬文件系統(tǒng)目錄(/sys)
這個(gè)目錄其實(shí)跟 /proc 非常類似,也是一個(gè)虛擬的文件系統(tǒng),主要也是記錄與內(nèi)核相關(guān)的信息。包括目前已加載的內(nèi)核模塊與內(nèi)核檢測(cè)到的硬件設(shè)備信息等。這個(gè)目錄同樣不占硬盤容量。
?
系統(tǒng)軟件資源目錄(/usr)
很多小白都會(huì)誤以為 /usr 是 user 的縮寫,其實(shí) usr 是 Unix Software Resource 的縮寫,也就是 “UNIX 操作系統(tǒng)軟件資源” 所放置的目錄,而不是用戶的數(shù)據(jù),這點(diǎn)需要注意。
FHS 建議所有軟件開(kāi)發(fā)者應(yīng)該將他們的數(shù)據(jù)合理地分別放置到這個(gè)目錄下的子目錄,而不要自行新建該軟件的獨(dú)立目錄。
?
/usr/bin/:絕大部分的用戶可使用命令都放在這里
/usr/include/:C/C++等程序語(yǔ)言的頭文件(header)與包含文件(include)放置處
/usr/lib/:包含各應(yīng)用軟件的函數(shù)庫(kù)、目標(biāo)文件以及一些不被一般用戶慣用的執(zhí)行文件或腳本
/usr/local/:系統(tǒng)管理員在本機(jī)自行安裝下載的軟件建議安裝到此目錄
/usr/sbin/:非系統(tǒng)正常運(yùn)行所需的系統(tǒng)命令
/usr/share/:放置共享文件的地方
/usr/src/:一般源碼建議放置到這里
?
常態(tài)可變動(dòng)文件目錄(/var)
該目錄主要針對(duì)常態(tài)性可變動(dòng)文件,包括緩存(cache)、登錄文件(log file)以及某些軟件運(yùn)行所產(chǎn)生的文件,包括程序文件(lock file、run file),或者例如MySQL數(shù)據(jù)庫(kù)的文件等。
如果 /usr 是安裝時(shí)會(huì)占用較大硬盤容量的目錄,那么 /var 就是在系統(tǒng)運(yùn)行后才會(huì)漸漸占用硬盤容量的目錄。
?
/var/cache/:應(yīng)用程序本身運(yùn)行過(guò)程中會(huì)產(chǎn)生的一些暫存文件
/var/lib/:程序本身執(zhí)行的過(guò)程中,需要使用到的數(shù)據(jù)文件放置的目錄
/var/lock/:目錄下的文件資源一次只能被一個(gè)應(yīng)用程序所使用
/var/log/:放置登錄文件的目錄
/var/mail/:放置個(gè)人電子郵件信箱的目錄
/var/run/:某些程序或服務(wù)啟動(dòng)后的PID目錄
/var/spool/:放置排隊(duì)等待其他應(yīng)用程程序使用的數(shù)據(jù)
?
參考自其他博客:https://www.cnblogs.com/woider/p/6618295.html
轉(zhuǎn)載于:https://www.cnblogs.com/opsprobe/p/11521059.html
總結(jié)
以上是生活随笔為你收集整理的Linux 标准目录结构 FHS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python pip安装命令
- 下一篇: 绝对Linux服务器管理利器webmin