Linux標(biāo)準(zhǔn)目錄結(jié)構(gòu)

Linux 標(biāo)準(zhǔn)目錄結(jié)構(gòu) FHS

因為利用 Linux 來開發(fā)產(chǎn)品或 distribution的團隊實在太多了,如果每個人都用自己的想法來配置文件放置的目錄,那么將可能造成很多管理上的困擾。所以,后來就有了 Filesystem Hierarchy Standard(FHS)標(biāo)準(zhǔn)的出爐了。

根據(jù) FHS 的官方文件指出,其主要目的是希望讓用戶可以了解到數(shù)據(jù)通常放置于哪個目錄下。也就是說,F(xiàn)HS 的重點在于規(guī)范每個特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已。

(FHS(英文:Filesystem Hierarchy Standard 中文:文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)),多數(shù) Linux 版本采用這種文件組織形式,F(xiàn)HS 定義了系統(tǒng)中每個區(qū)域的用途、所需要的最小構(gòu)成的文件和目錄同時還給出了例外處理與矛盾處理。)

FHS 依據(jù)文件系統(tǒng)使用的頻繁與否與是否用戶隨意改動,而將目錄定義成四種交互作用的形態(tài):

可分享的:可以分享給其他系統(tǒng)掛載使用的目錄,所以包括執(zhí)行文件與用戶的郵件等數(shù)據(jù),是能夠分享給網(wǎng)絡(luò)上其他主機掛載用的目錄。

不可分享的:自己機器上面運行的設(shè)備文件或者是與程序有關(guān)的 socket 文件等,由于僅與自身機器有關(guān),所以不適合分享給其他主機。

不變的:有些數(shù)據(jù)是不會經(jīng)常變動的,只會隨著系統(tǒng)版本而變動。例如函數(shù)庫、說明文件、系統(tǒng)管理員所管理的主機服務(wù)配置文件等。

可變動的:經(jīng)常改變的數(shù)據(jù),例如登錄文件、用戶文件等。



所有的unxi和類unix操作系統(tǒng)的目錄結(jié)構(gòu)均是以根開始的倒掛樹形結(jié)構(gòu)。

1.路徑:

一個linux路徑由"/"和目錄(文件)名稱兩部分組成

2.路徑的分類:

絕對路徑:凡是從根開始的路徑? /etc/

相對路徑:凡是非根開始的路徑? etc/passwd

3.使用pwd命令查看當(dāng)前所在的絕對路徑pwd:即print? work directory

[root@smileboy ~]# pwd

/root



根目錄(/)

根目錄是整個系統(tǒng)最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的,同時根目錄也與開機、還原、系統(tǒng)修復(fù)等操作有關(guān)。

根目錄下所有一級目錄全部因安裝軟件"filesystem"而生。

因此 FHS 標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個分區(qū)內(nèi),保持根目錄越小越好。如此不但性能較好,根目錄所在的文件系統(tǒng)也比較不容易發(fā)生問題。

執(zhí)行文件目錄(/bin)

系統(tǒng)有很多放置執(zhí)行文件的目錄,但 /bin 比較特殊。因為 /bin 放置的是在單用戶維護(hù)模式下還能被操作的命令。在 /bin 下面的命令可以被 root 與一般賬號所使用,主要有 cat,chmod,chown,date,mv,mkdir,cp,bash 等常用的命令

開機文件目錄(/boot)

這個目錄主要放置開機會使用到的文件,包括Linux 內(nèi)核文件以及開機菜單與開機所需配置文件等,存儲啟動文件,比如grub和內(nèi)核文件。獨立的分區(qū),啟動分區(qū)掛載到boot,只是boot目錄存到了/下

驅(qū)動設(shè)備目錄(/dev)

在 Linux 系統(tǒng)上,任何設(shè)備與接口設(shè)備都是以文件的形式存在于這個目錄當(dāng)中的。你只要通過訪問這個目錄下面的某個文件,就等于訪問某個設(shè)備。比較重要的文件有 /dev/null,/dev/zero,/dev/tty 等。

常用設(shè)備文件:/dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/

pts/1, /dev/zero, /dev/null, /dev/random

配置文件目錄(/etc)

系統(tǒng)主要的配置文件幾乎都放置在這個目錄內(nèi),例如人員的賬號密碼文件、各種服務(wù)的起始文件等。一般來說,這個目錄下的各個文件屬性是可以讓一般用戶查閱的,但只有

root 有權(quán)利修改。比較重要的文件有 /etc/init.d,/etc/inittab,/etc/sysconfig 等。

用戶主文件夾(/home)

這是系統(tǒng)默認(rèn)的用戶主文件夾(home directory)。在你創(chuàng)建一個一般用戶賬號時,默認(rèn)的用戶主文件夾都會規(guī)范到這里來,所有普通賬戶的家目錄 。~ 代表當(dāng)前用戶的主文件夾。

系統(tǒng)函數(shù)庫(/lib)

系統(tǒng)的函數(shù)庫非常多,而 /lib 放置的則是在開機時會用到的函數(shù)庫,以及在 /bin 或 /sbin 下面的命令會調(diào)用的函數(shù)庫而已。

* 你可以把函數(shù)庫想象成是“外掛”,某些命令必須要有這些“外掛”才能夠順利完成程序的執(zhí)行之意。

/lib64 library存儲庫文件

媒體設(shè)備暫掛區(qū)(/media)

media 是“媒體”的英文,顧名思義,這個 /media 下面放置的就是可刪除的設(shè)備。包括軟盤、光盤、DVD等設(shè)備都暫時掛載于此。常見的文件名有 /media/floppy,/media/cdrom 等。

額外設(shè)備暫掛區(qū)(/mnt)

如果你想要暫時掛載某些額外的設(shè)備,一般建議你可以放置到這個目錄中。在比較早的時候,這個目錄的用途與 /media 相同。只是有了 /media 之后,這個目錄就被用來暫時掛載用了。

第三方軟件安裝目錄(/opt)

這個目錄是用于安裝第三方應(yīng)用程序的,某些軟件也會把它作為默認(rèn)安裝目錄,可以由用戶自己指定安裝位置。當(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 下面的為開機過程中所需的,里面包括了開機、修復(fù)、還原系統(tǒng)所需要的命令。

服務(wù)數(shù)據(jù)存放目錄(/srv)

srv 可以視為“service”的縮寫,是一些網(wǎng)絡(luò)服務(wù)啟動之后,這些服務(wù)所需要取用的數(shù)據(jù)目錄。常見的服務(wù)例如 WWW、FTP 等。舉例來說,WWW 服務(wù)需要的網(wǎng)頁數(shù)據(jù)就可以放置在 /srv/www/ 里。

臨時文件存放目錄(/tmp)

這是讓一般用戶或者是正在執(zhí)行的程序暫時放置文件的地方。這個目錄是任何人都能夠訪問,所以你需要定期清理一下。當(dāng)然,重要數(shù)據(jù)不可放置在此目錄,因為系統(tǒng)會不定期將 /tmp 目錄下的數(shù)據(jù)全部刪除。

丟失內(nèi)容修復(fù)目錄(/lost+found)

這個目錄是使用標(biāo)準(zhǔn)的 ext2/ext3 文件系統(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)中的,所以本身并不占任何硬盤空間。

cpuinfo cpu信息

meminfo? 內(nèi)存信息

虛擬文件系統(tǒng)目錄(/sys)

這個目錄其實跟 /proc 非常類似,也是一個虛擬的文件系統(tǒng),主要也是記錄與內(nèi)核相關(guān)的信息,和proc不同的是如果硬件設(shè)備沒有插拔操作,其子目錄結(jié)構(gòu)不會發(fā)生變化。包括目前已加載的內(nèi)核模塊與內(nèi)核檢測到的硬件設(shè)備信息等。這個目錄同樣不占硬盤容量。

系統(tǒng)軟件資源目錄(/usr)

很多小白都會誤以為 /usr 是 user 的縮寫,其實 usr 是 Unix Software Resource 的縮寫,也就是 “UNIX 操作系統(tǒng)軟件資源” 所放置的目錄,而不是用戶的數(shù)據(jù),這點需要注意。類似于windows系統(tǒng)內(nèi)的programs目錄,系統(tǒng)內(nèi)所安裝軟件的文件會分散存儲到其各個子目錄下

/usr/local/src? 通常存儲下載的源安裝文件

/usr/src? ? ? ? ? ? 通常存儲下載的源安裝文件


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)管理員在本機自行安裝下載的軟件建議安裝到此目錄

/usr/sbin/:非系統(tǒng)正常運行所需的系統(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ù)

/var variable 存儲一些經(jīng)常變化的文件(ftp發(fā)布文件的目錄,web發(fā)布

網(wǎng)站的目錄,日志,郵件,計劃任務(wù))

/run? ? ? ? rhel7新增加目錄,是/var/run的硬鏈接,之前的光驅(qū)和u盤自

動掛載目錄從/media換到了/run/media

/cgroup? 資源控制

/net /srv /selinux /lost+found這幾個目錄平時用的很少



本文基于https://www.cnblogs.com/woider/p/6618295.html博文整理補充,待完善。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容