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)
因為在 /home中,所以要回到上一層(……/)之後,才能繼續向 /var移動。
特別注意這兩個特殊的目錄:
。:表示當前目錄,也可以使用 ./ 來表示。
……:表示上一層目錄,也可以 ……/ 來表示。
與 …… 的目錄概念很重要,你常常會看到cd …… 或 ./command之類的命令方式,就是表示上一層與當前所在目錄的工作狀態。此外,針對“文件名”與“完整文件名(由 / 開始寫起的文件名)”的字符限制大小為:
單一文件或目錄的最大容許文件名為255個字符。包含完整路徑名稱及目錄(/)的完整文件名為4096個字符。
我們知道,/var/log/ 下面有個文件名為message,這個message文件的最大文件名可達255個字符。var與log這兩個上層目錄最長也分別可達255個字符。但總的來說, /var/log/messages這樣完整的文件名最長則可達4096個字符。
提示:root在Linux裡面的意義很多。如果從“賬號”的角度來看,root指“系統管理員”身份,如果以“目錄”的角度來看,root指的是根目錄,就是 / .要特別注意。