FHS Linux目录详解
《一》FHS與Linux目錄一般配置
FHS簡述
Filesystem Hierarchy Standard(文件系統(tǒng)層次化標準),是為了規(guī)范Linux distributions開發(fā)團隊或個人對于文件、目錄的配置而制定的標準。根據(jù)FHS(http://www.pathname.com/fhs)的官方文件指出,其主要目的是希望讓用戶可以了解到已安裝軟件通常放置于那個目錄下,所以其希望獨立的軟件開發(fā)商、操作系統(tǒng)制作者以及想要維護系統(tǒng)的用戶,都能夠遵循FHS的標準。也就是說,FHS僅僅規(guī)范了每個特定的目錄下應(yīng)該要放置什么樣子的數(shù)據(jù)而已。這樣做的好處非常多,因為Linux操作系統(tǒng)就能夠在既有的面貌下(目錄架構(gòu)不變)發(fā)展出開發(fā)者想要的風(fēng)格。
FHS依據(jù)文件系統(tǒng)使用的頻繁與否與是否允許用戶隨意改動,而將目錄定義稱為四種交互作用的形態(tài)。
·可分享的:可以分享給其他系統(tǒng)掛載使用的目錄,所以包括執(zhí)行文件與用戶的郵件等數(shù)據(jù),是能夠分享給網(wǎng)絡(luò)上其他主機掛載用的目錄。
·不可分享的:自己機器上面運行的設(shè)備文件或者是與程序有關(guān)的socket文件等,由于僅于自身機器有關(guān),自然不適合分享給其他主機;
·不變的:有些數(shù)據(jù)是不會經(jīng)常變動的,跟隨這Linux distribution而不變動,例如函數(shù)庫、文件說明文件、系統(tǒng)管理員所管理的主機服務(wù)配置文件等。
·可變動的:經(jīng)常改變的數(shù)據(jù),例如登錄文件、新聞組等。
上表中的目錄是一些代表性的目錄。
事實上,FHS針對目錄樹架構(gòu)僅定義了兩層規(guī)范,三個目錄。第一層是根目錄:/,第二層是根目錄下的兩個一級子目錄:/usr和/var。
目錄樹還有以下特性:
·目錄樹的起始點是根目錄,所有的目錄都是由根目錄衍生出來的,同時根目錄也與開機、還原、系統(tǒng)修復(fù)等操作有關(guān);
·每一個目錄不僅能使用本地分區(qū)的文件系統(tǒng),還能使用網(wǎng)絡(luò)上的文件系統(tǒng);
·每一個文件在目錄樹中的路徑(絕對路徑)是獨一無二的;
·文件名限制:單一文件或目錄的最大容許文件名為255個字符,包含完整路徑名稱及目錄(/)的完整文件名為4096個字符。
根目錄是整個系統(tǒng)最重要的一個目錄,因此FHS標準建議:根目錄所在分區(qū)應(yīng)該越小越好,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個分區(qū)內(nèi),保持根目錄越小越好。如此不但性能較好,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問題。
Linux目錄的一般配置
FHS針對根目錄定義了下面這些目錄。
因為根目錄與開機有關(guān),開機過程中僅有根目錄會被掛載,其他分區(qū)則是在開機完成之后才會持續(xù)進行掛載的行為。就是因為如此,根目錄下與開機過程有關(guān)的目錄就不能夠與根目錄放到不同的分區(qū)去。有五個目錄不能與根目錄分開放在不同的分區(qū):/etc、/bin、/dev、/lib、/sbin。
Linux的目錄樹大致構(gòu)造如下:
《二》Linux文件系統(tǒng)層次結(jié)構(gòu)標準FHS詳解
Linux和UNIX的文件系統(tǒng)是一個以“/ “為根的階層式的樹狀文件結(jié)構(gòu),/ 因此被稱為根目錄。所有的文件和目錄都置于根目錄/ 之下。根目錄/下面有/bin,/home,/usr等子目錄。在早期的UNIX系統(tǒng)中,各個廠家各自定義了自己的UNIX系統(tǒng)的文件系統(tǒng)構(gòu)成,比較混亂。
為了避免在Linux也產(chǎn)生同樣的問題,在Linux面世不久,就開始了對Linux文件系統(tǒng)進行標準化的活動,于1994年推出了名為 FSSTND(Filesystem Standard)的Linux文件系統(tǒng)層次結(jié)構(gòu)標準。之后,FSSTND標準吸引了UNIX社團的開發(fā)人員,他們把FSSTND擴大到UNIX系統(tǒng),FSSTND就變?yōu)镕HS (Filesystem Hierarchy Standard)。2001年3月,FHS 2.2版本發(fā)布,2004年1月29日發(fā)行了最新版本2.3。FHS標準使得眾多的Linux發(fā)布包有了可以遵循的標準,使得軟件和用戶可以預(yù)測已經(jīng)安裝了的文件和目錄的位置。它定義了如下的內(nèi)容。定義了文件系統(tǒng)中每個區(qū)域的用途
定義了所需要的最小構(gòu)成的文件和目錄
給出了例外處理和矛盾的特殊例子
cd /var/log(absolute)
cd …/var/log(relative)
因為在 /home中,所以要回到上一層(…/)之后,才能繼續(xù)向 /var移動。
特別注意這兩個特殊的目錄:
.:表示當前目錄,也可以使用 ./ 來表示。
…:表示上一層目錄,也可以 …/ 來表示。
… 的目錄概念很重要,你常常會看到cd … 或 ./command之類的命令方式,就是表示上一層與當前所在目錄的工作狀態(tài)。此外,針對“文件名”與“完整文件名(由 / 開始寫起的文件名)”的字符限制大小為:
單一文件或目錄的最大容許文件名為255個字符。包含完整路徑名稱及目錄(/)的完整文件名為4096個字符。我們知道,/var/log/ 下面有個文件名為message,這個message文件的最大文件名可達255個字符。var與log這兩個上層目錄最長也分別可達255個字符。但總的來說, /var/log/messages這樣完整的文件名最長則可達4096個字符。提示:root在Linux里面的意義很多。如果從“賬號”的角度來看,root指“系統(tǒng)管理員”身份,如果以“目錄”的角度來看,root指的是根目錄,就是 / 。要特別注意。目錄內(nèi)容和用途:
/ 根目錄
/bin 一般用戶使用的命令
/boot 放置內(nèi)核及LILO、GRUB等導(dǎo)引程序(bootloader)的文件,用于啟動。
/dev 硬盤,分區(qū),鍵盤,鼠標,USB,tty等所有的設(shè)備文件都放在這個目錄。
/etc 系統(tǒng)的所有配置文件都存放在此目錄中。
/home 用戶空間,所有的用戶都是用此空間。
/lib 共享連接庫,如C庫和C編譯器等等。
/media 掛接CD-ROM等設(shè)備的目錄
/mnt 移動設(shè)備文件系統(tǒng)的掛點
/opt 存放后來追加的用戶應(yīng)用程序
/root 管理員之家
/sbin 存放系統(tǒng)管理所需要的命令
/tmp 臨時文件目錄,重新啟動時被清除
/usr 存放只能讀的命令和其他文件。
/usr/X11R6 X Window系統(tǒng)
/usr/bin 用戶和管理員的標準命令
/usr/include c/c++等各種開發(fā)語言環(huán)境的標準include文件
/usr/lib 應(yīng)用程序及程序包的連接庫
/usr/local/ 系統(tǒng)管理員安裝的應(yīng)用程序目錄
/usr/local/share 系統(tǒng)管理員安裝的共享文件
/usr/sbin 用戶和管理員的標準命令
/usr/share 存放使用手冊等共享文件的目錄
/usr/share/dict 存放詞表的目錄(選項)
/usr/share/man 系統(tǒng)使用手冊
/usr/share/misc 一般數(shù)據(jù)
/usr/share/sgml SGML數(shù)據(jù)(選項)
/usr/share/xml XML數(shù)據(jù)(選項)
/var 存放應(yīng)用程序數(shù)據(jù)和日志記錄的目錄,例如,Apache Web服務(wù)器的文檔一般就放在/var/www/html下。
/var/cache 應(yīng)用程序緩存目錄
/var/account 處理賬號日志(選項)
/var/crash 系統(tǒng)錯誤信息(選項)
/var/games 游戲數(shù)據(jù)
/var/lib 各種狀態(tài)數(shù)據(jù)
/var/lock 文件鎖定紀錄
/var/log 日志記錄
/var/mail 電子郵件
/var/opt /opt目錄的變量數(shù)據(jù)
/var/run 進程的標示數(shù)據(jù)
/var/spool 存放電子郵件,打印任務(wù)等的隊列目錄。
/var/spool/rwho
/var/tmp 臨時文件目錄
/var/yp NIS等黃頁數(shù)據(jù)(選項)
這個標準被設(shè)計的目的是給Unix發(fā)行版開發(fā)者,應(yīng)用程序開發(fā)者,和系統(tǒng)實現(xiàn)者使用的,它的初終是作為一個參考,并不是來教用戶怎么管理unix文件系統(tǒng)或目錄結(jié)構(gòu)的。
當前l(fā)inux用戶也面臨一些問題, 由于FHS僅定義了最上層(/)及子層(/usr, /var)的目錄內(nèi)容應(yīng)該要放置的文件數(shù)據(jù),所有現(xiàn)有Linux不同發(fā)行版中,其他二層下面的內(nèi)容各部相同,有時會給用戶遷移到不同Linux發(fā)行版上帶 來麻煩,比如/etc下面的對統(tǒng)一功能的不同配置文件放置的位置不同,導(dǎo)致用戶花費大量時間去熟悉新的系統(tǒng)。其實有些比較穩(wěn)定的共同的功能應(yīng)用程序的配置 文件也應(yīng)該在FHS中給出定義,來指導(dǎo)發(fā)行版供應(yīng)商和程序開發(fā)者進行開發(fā)。因此FHS也許應(yīng)該更進一步的定義某些目錄文件,進一層的細化文件層次結(jié)構(gòu),促 進linux發(fā)展。
總結(jié)
以上是生活随笔為你收集整理的FHS Linux目录详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保证service存活
- 下一篇: 2023美国大学生数学建模思路 - 案例