文件系統層次標準(Filesystem Hierarchy Standard,FHS):規範了在根目錄下各個主要目錄應該放什麼樣的文件。
linux的目錄配置:根據FHS定義,每個目錄內應該放置的文件內容爲:
/:根目錄,在此目錄下只有目錄,不能直接有文件。是啓動時系統第一個載入的分區,所以,所有啓動過程會用到的文件應該都放在這個分區中。如:/bin /etc /lib /sbin /dev這五個目錄應該與根目錄在一起,不可獨立爲某個分區。
/bin /usr/bin /usr/local/bin:放置用戶可執行的二進制文件的目錄。如:ls命令等 。
/boot:主要放置linux啓動時用到的文件。啓動時會用到linux的核心文件,這個目錄下面的文件vmlinuz就是linux的核心。如果引導程序爲grub,那麼此目錄內還有/boot/grub目錄。
/dev:在linux系統上,任何設備都以文件類型存放在這個目錄中,訪問這個目錄下面的文件,就等於訪問某臺設備。
/etc:系統主要的配置文件幾乎都放在這個目錄下,如人員的賬號空碼文件,各種服務的起始文件等。只有root權限可更改,此目錄下幾乎是ASCLL的純文本文件。比較重要的文件有:/etc/inittab init.d modprobe.conf X11 fstab sysconfig 等,還有比較重要的目錄有:
- /etc/init.d:所有服務的默認啓動腳本都在這裏,例如要啓動或關閉iptables的話:/etc/init.d/iptables start
- /etc/xinetd.d:超級守護程序(super daemon)管理的各項服務的設置文件目錄。
/etc/X11:與X Window有關的各種配置文件都在這,尤其是xorg.conf 或 XF86Config這二個X-Server的設置文件。
/home:是系統默認的用戶家目錄(home directory),~表示當前用戶的家目錄,而~dmtsai則表示dmtsai的家目錄。
/lib /usr/lib /usr/local/lib :系統使用的函數庫的目錄。/lib/modules目錄中有核心的相關模塊。
/lost+found:系統出現異常,產生錯誤時,會將一些遺失的片段放於此目錄中,通常這個目錄會自動出現在某個分區最頂層的目錄下。全職在/disk中加裝硬盤,在這個目錄下就會自動產生一個這樣的目錄:/disk/lost+found
/mnt /media:這是軟盤和光盤的默認載入點;通常軟盤掛在/mnt/floppy下,光盤掛在/mnt/cdrom下;/media 和 /mnt有些類似。
/opt:給主機額外安裝軟件所放的目錄。不過,以前的linux系統中,我們還是習慣放在/usr/local目錄下。
/proc:這個目錄本身是一個“虛擬文件系統”。它放置的數據都在內存中,如系統核心,形成信息,外部設備的狀態及網絡狀態等。因爲這個目錄下的數據都在內存中,所以本身並不佔任何硬盤空間。比較重要的文件有:/proc/cpuinfo /proc/dma /proc/interrupts /proc/ioports /proc/net/*等。
/root 系統管理員的家目錄。
/sbin /usr/sbin /usr/local/sbin:放一些系統管理員纔會用到的執行命令,如:fdisk mke2fs fsck mkswap mount等。與bin不太一樣的是,這幾個目錄都是給root系統管理用的。但目錄下的執行文件可以讓一般用戶用來“查看”而不能設置。
/srv:一些服務啓動之後,這些服務所需要訪問的數據目錄。example:3w服務器需要的網頁數據就可能放在/srv/www中。
/tmp:臨時目錄。是任何人都可以訪問的。
/usr:包含系統的主要程序,圖形界面所需要的文件、額外的函數庫、本機自行安裝的軟件,及共享的目錄與文件。事實上,它有點像windows操作系統中的”program files”和”winNT”二個文件夾的結合。在此目錄的重要目錄有:
- /usr/bin /usr/sbin:一般用戶及管理員可執行的文件放置目錄;
- /usr/include:c/c++等程序語言的頭文件與包含文件放置處;
- /usr/lib:各應用程序的函數庫文件放置目錄。
- /usr/local:本機自行安裝的軟件的默認放置的目錄。當前也適用於:/opt目錄。
/usr/share:共享文件放置的目錄,如下面二個目錄:
- /usr/share/doc:放一些系統幫助文件的地方。
- /usr/share/man: manpage的文件目錄。
/usr/src:linux系統相關的程序代碼放置目錄。
/usr/X11R6:系統內的X Window system所需要的執行文件幾乎都放在這裏。
/var:主要放置系統執行過程中經常變化的文件。舉例來說,例如緩存(catch)或者是隨時更改的登錄文件(log file)。此外,某些軟件執行過程中會寫入的數據庫文件,如Mysql數據庫。
它下面的主要目錄有:- /var/cache:程序在運行過程中的一些暫存盤。
- /var/lib:程序執行過程中,使用的數據文件放置的目錄。如:locate數據庫與MySql及rpm等數據庫系統,都寫在這個目錄中。
- /var/log:登錄文件放置的目錄。/var/log/messages就是總管所有登錄文件的文件。
- /var/lock:某些設備有一次性寫入的特性,中tab(磁帶機),在寫時,會將此設備鎖起來。
- /var/run:某些程序或是服務啓動後,會將它們的PID放在這個目錄下
- /var/spool:是一些隊列數據存放的地方。舉例來說,主機收到電子郵件後,就會放到/var/spool/mail中,若信件暫時發不出去,就會收到/var/spool/mequeue目錄下,用戶工作任務分配(cron)則是放在/var/spool/cron中。
啓動數據一般放在/etc中,個人數據放在/home 系統通常是在/usr中。