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