Linux 標(biāo)準(zhǔn)目錄結(jié)構(gòu) FHS
因?yàn)槔?Linux 來開發(fā)產(chǎn)品或 distribution的團(tuán)隊(duì)實(shí)在太多了意狠,如果每個(gè)人都用自己的想法來配置文件放置的目錄粟关,那么將可能造成很多管理上的困擾。所以环戈,后來就有了 Filesystem Hierarchy Standard(FHS)標(biāo)準(zhǔn)的出爐了闷板。
根據(jù) FHS 的官方文件指出,其主要目的是希望讓用戶可以了解到數(shù)據(jù)通常放置于哪個(gè)目錄下院塞。也就是說遮晚,F(xiàn)HS 的重點(diǎn)在于規(guī)范每個(gè)特定的目錄下應(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)中每個(gè)區(qū)域的用途、所需要的最小構(gòu)成的文件和目錄同時(shí)還給出了例外處理與矛盾處理汹族。)
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ù)庫耗帕、說明文件、系統(tǒng)管理員所管理的主機(jī)服務(wù)配置文件等袱贮。
可變動(dòng)的:經(jīng)常改變的數(shù)據(jù)脖隶,例如登錄文件哺窄、用戶文件等枢里。
所有的unxi和類unix操作系統(tǒng)的目錄結(jié)構(gòu)均是以根開始的倒掛樹形結(jié)構(gòu)。
1.路徑:
一個(gè)linux路徑由"/"和目錄(文件)名稱兩部分組成
2.路徑的分類:
絕對(duì)路徑:凡是從根開始的路徑? /etc/
相對(duì)路徑:凡是非根開始的路徑? etc/passwd
3.使用pwd命令查看當(dāng)前所在的絕對(duì)路徑pwd:即print? work directory
[root@smileboy ~]# pwd
/root
根目錄(/)
根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄狡赐,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜淼模瑫r(shí)根目錄也與開機(jī)钦幔、還原枕屉、系統(tǒng)修復(fù)等操作有關(guān)。
根目錄下所有一級(jí)目錄全部因安裝軟件"filesystem"而生鲤氢。
因此 FHS 標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好搀擂,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分區(qū)內(nèi),保持根目錄越小越好卷玉。如此不但性能較好哨颂,根目錄所在的文件系統(tǒng)也比較不容易發(fā)生問題。
執(zhí)行文件目錄(/bin)
系統(tǒng)有很多放置執(zhí)行文件的目錄相种,但 /bin 比較特殊威恼。因?yàn)?b> /bin 放置的是在單用戶維護(hù)模式下還能被操作的命令。在 /bin 下面的命令可以被 root 與一般賬號(hào)所使用寝并,主要有 cat箫措,chmod,chown衬潦,date斤蔓,mv,mkdir镀岛,cp弦牡,bash 等常用的命令
開機(jī)文件目錄(/boot)
這個(gè)目錄主要放置開機(jī)會(huì)使用到的文件,包括Linux 內(nèi)核文件以及開機(jī)菜單與開機(jī)所需配置文件等漂羊,存儲(chǔ)啟動(dòng)文件驾锰,比如grub和內(nèi)核文件。獨(dú)立的分區(qū)拨与,啟動(dòng)分區(qū)掛載到boot稻据,只是boot目錄存到了/下
驅(qū)動(dòng)設(shè)備目錄(/dev)
在 Linux 系統(tǒng)上艾猜,任何設(shè)備與接口設(shè)備都是以文件的形式存在于這個(gè)目錄當(dāng)中的买喧。你只要通過訪問這個(gè)目錄下面的某個(gè)文件,就等于訪問某個(gè)設(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)主要的配置文件幾乎都放置在這個(gè)目錄內(nèi)低淡,例如人員的賬號(hào)密碼文件、各種服務(wù)的起始文件等。一般來說蔗蹋,這個(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ī)范到這里來,所有普通賬戶的家目錄 蜂筹。~ 代表當(dāng)前用戶的主文件夾需纳。
系統(tǒng)函數(shù)庫(/lib)
系統(tǒng)的函數(shù)庫非常多,而 /lib 放置的則是在開機(jī)時(shí)會(huì)用到的函數(shù)庫艺挪,以及在 /bin 或 /sbin 下面的命令會(huì)調(diào)用的函數(shù)庫而已不翩。
* 你可以把函數(shù)庫想象成是“外掛”,某些命令必須要有這些“外掛”才能夠順利完成程序的執(zhí)行之意麻裳。
/lib64 library存儲(chǔ)庫文件
媒體設(shè)備暫掛區(qū)(/media)
media 是“媒體”的英文慌盯,顧名思義,這個(gè) /media 下面放置的就是可刪除的設(shè)備掂器。包括軟盤亚皂、光盤、DVD等設(shè)備都暫時(shí)掛載于此国瓮。常見的文件名有 /media/floppy灭必,/media/cdrom 等。
額外設(shè)備暫掛區(qū)(/mnt)
如果你想要暫時(shí)掛載某些額外的設(shè)備乃摹,一般建議你可以放置到這個(gè)目錄中禁漓。在比較早的時(shí)候,這個(gè)目錄的用途與 /media 相同孵睬。只是有了 /media 之后播歼,這個(gè)目錄就被用來暫時(shí)掛載用了。
第三方軟件安裝目錄(/opt)
這個(gè)目錄是用于安裝第三方應(yīng)用程序的掰读,某些軟件也會(huì)把它作為默認(rèn)安裝目錄秘狞,可以由用戶自己指定安裝位置。當(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 有非常多的命令是來設(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ù)啟動(dòng)之后颖医,這些服務(wù)所需要取用的數(shù)據(jù)目錄位衩。常見的服務(wù)例如 WWW、FTP 等熔萧。舉例來說糖驴,WWW 服務(wù)需要的網(wǎng)頁數(shù)據(jù)就可以放置在 /srv/www/ 里。
臨時(shí)文件存放目錄(/tmp)
這是讓一般用戶或者是正在執(zhí)行的程序暫時(shí)放置文件的地方佛致。這個(gè)目錄是任何人都能夠訪問贮缕,所以你需要定期清理一下。當(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)中的藕施,所以本身并不占任何硬盤空間寇损。
cpuinfo cpu信息
meminfo? 內(nèi)存信息
虛擬文件系統(tǒng)目錄(/sys)
這個(gè)目錄其實(shí)跟 /proc 非常類似,也是一個(gè)虛擬的文件系統(tǒng)铅碍,主要也是記錄與內(nèi)核相關(guān)的信息润绵,和proc不同的是如果硬件設(shè)備沒有插拔操作,其子目錄結(jié)構(gòu)不會(huì)發(fā)生變化胞谈。包括目前已加載的內(nèi)核模塊與內(nèi)核檢測到的硬件設(shè)備信息等。這個(gè)目錄同樣不占硬盤容量。
系統(tǒng)軟件資源目錄(/usr)
很多小白都會(huì)誤以為 /usr 是 user 的縮寫烦绳,其實(shí) usr 是 Unix Software Resource 的縮寫卿捎,也就是 “UNIX 操作系統(tǒng)軟件資源” 所放置的目錄,而不是用戶的數(shù)據(jù)径密,這點(diǎn)需要注意午阵。類似于windows系統(tǒng)內(nèi)的programs目錄,系統(tǒng)內(nèi)所安裝軟件的文件會(huì)分散存儲(chǔ)到其各個(gè)子目錄下
/usr/local/src? 通常存儲(chǔ)下載的源安裝文件
/usr/src? ? ? ? ? ? 通常存儲(chǔ)下載的源安裝文件
FHS 建議所有軟件開發(fā)者應(yīng)該將他們的數(shù)據(jù)合理地分別放置到這個(gè)目錄下的子目錄享扔,而不要自行新建該軟件的獨(dú)立目錄底桂。
/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)正常運(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ù)庫的文件等。
如果 /usr 是安裝時(shí)會(huì)占用較大硬盤容量的目錄秀存,那么 /var 就是在系統(tǒng)運(yùn)行后才會(huì)漸漸占用硬盤容量的目錄捶码。
/var/cache/:應(yīng)用程序本身運(yùn)行過程中會(huì)產(chǎn)生的一些暫存文件
/var/lib/:程序本身執(zhí)行的過程中,需要使用到的數(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ù)
/var variable 存儲(chǔ)一些經(jīng)常變化的文件(ftp發(fā)布文件的目錄或链,web發(fā)布
網(wǎng)站的目錄惫恼,日志,郵件澳盐,計(jì)劃任務(wù))
/run? ? ? ? rhel7新增加目錄尤筐,是/var/run的硬鏈接,之前的光驅(qū)和u盤自
動(dòng)掛載目錄從/media換到了/run/media
/cgroup? 資源控制
/net /srv /selinux /lost+found這幾個(gè)目錄平時(shí)用的很少
本文基于https://www.cnblogs.com/woider/p/6618295.html博文整理補(bǔ)充洞就,待完善盆繁。