為了避免在linux也產生同樣的問題,在linux面世不久,就開始了對linux檔案系統進行標準化的活動,於2023年推出了名為 fss***(filesystem standard)的linux檔案系統層次結構標準。之後,fss***標準吸引了unix社團的開發人員,他們把fss***擴大到unix系統,fss***就變為fhs (filesystem hierarchy standard)。2023年3月,fhs 2.2版本發布,2023年1月29日發行了最新版本2.3。
fhs標準使得眾多的linux發布包有了可以遵循的標準,使得軟體和使用者可以**已經安裝了的檔案和目錄的位置。它定義了如下的內容。
定義了檔案系統中每個區域的用途
定義了所需要的最小構成的檔案和目錄
給出了例外處理和矛盾的特殊例子
fhs實際上僅是規範在根目錄(/)下面各個主要目錄應該放什麼樣的檔案。fhs定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼檔案資料,例如 /etc應該要放置設定檔案,/bin與 /sbin則應該要放置可執行檔案等等。第二層則是針對 /usr及 /var這兩個目錄的子目錄來定義。例如 /var/log放置系統登入檔案、/usr/share放置共享資料等等。
由於fhs僅是定義出最上層(/)及子層(/usr, /var)的目錄內容應該要放置的檔案資料,因此,在其他子目錄層級內,就可以隨開發人員自行配置了。舉例來說,fc4的網路設定資料放在 /etc/sysconfig/network-script/ 目錄下,但suse server 9則是將網路放在 /etc/sysconfig/network/ 目錄下,目錄名稱是不同的。
另外,在linux中,所有的檔案與目錄都由根目錄 / 開始。那是所有目錄與檔案的源頭。然後再乙個乙個分支下來,有點像樹狀。因此,我們也稱這種目錄配置方式為:「目錄樹(directory tree)」。這個目錄樹主要特性有:
目錄樹的起始點為根目錄(/, root)。
每乙個目錄不僅能使用本地端分割槽的檔案系統,也可以使用網路上的檔案系統。舉例來說,可以利用網路檔案系統(network file system,nfs)伺服器載入某特定目錄等。
每乙個檔案在此目錄樹中的檔名(包含完整路徑)都是獨一無二的。
此外,根據檔名寫法的不同,也可將路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。絕對路徑為:由根目錄(/)開始寫起的檔名或目錄名稱,例如 /home/dmtsai/.bashrc;相對路徑為相對於當前路徑的檔名寫法。例如 ./home/dmtsai或 ../../home/dmtsai/ 等等。反正開頭不是 / 就屬於相對路徑的寫法。必須要了解,相對路徑是以「當前所在路徑的相對位置」來表示的。舉例來說,當前在 /home目錄下,如果想要進入 /var/log目錄時,怎麼寫呢?
cd /var/log(absolute)cd ../var/log(relative)
目錄內容和用途:
/根目錄
/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發展。
Linux檔案系統層次結構
linux系統中所有檔案儲存在檔案系統中,檔案被組織到一棵目錄樹中,樹根在該層次結構的頂部,樹根的下方衍生出子目錄分支,稱為檔案系統層次結構 目錄 是根目錄,位於檔案系統層次結構的頂部,字元還用作檔名中目錄分隔符。例如,如果etc是 目錄的子目錄,就把它稱為 etc目錄 的子目錄用於標準化的用途,以...
Linux檔案系統層次結構
1 檔案系統的層次結構 linux系統中所有的檔案儲存在檔案系統中,它們被組織到乙個顛倒的目錄樹中,成為檔案系統結構。這顆樹是顛倒的,因為樹根在該層次的頂部,樹根的下方延伸出目錄和子目錄的分支。2 目錄是根目錄,位於檔案系統層次結構的頂部。字元還用作檔名中的目錄分隔符。例如,如果etc是 目錄中的子...
linux檔案系統層次結構
fhs 定義linux系統中主要的目錄以及目錄儲存的內容,多數linux發行版遵從fhs標準。linux或unix作業系統中,所有的檔案和目錄都是被組織成以根目錄為起點的乙個倒置的樹狀結構,根目錄之下可以是檔案也可以是目錄,每乙個目錄又可以包含許多子目錄檔案。etc 系統的配置檔案 mnt 臨時掛在...