文件系統層次結構標準

文件系統層次結構標準（Filesystem Hierarchy Standard，FHS）定義了Linux作業系統中的主要目錄及目錄內容。FHS由Linux基金會維護。

目前版本為3.0版，於2015年發布。

## 概述

多數Linux發行版遵從FHS標準並且聲明其自身政策以維護FHS的要求。

但截至2009年，包括由自由標準小組成員參與開發的版本在內的絕大多數發行版，並不完全執行建議的標準。

當FHS建立之時，其他的UNIX和類Unix作業系統已經有了自己的標準，尤其是hier(7)文件系統布局描述。

自從第七版Unix(於1979年發布)以來已經存在，或是SunOS filesystem(7)。

和之後的Solaris filesystem(5)。

例如，macOS使用如 `/Library`、 `/Applications`和`/Users` 等長名與傳統UNIX目錄層次保持一致。

現在的Linux發行版包含一個`/sys`目錄作為虛擬文件系統(sysfs，類似於 `/proc`，一個procfs)，它存儲且允許修改連接到系統的設備，然而許多傳統UNIX和類Unix作業系統使用`/sys`作為內核代碼樹的符號連結。

一些Linux系統如GoboLinux和Syllable Server使用了和FHS完全不同的文件系統層次組織方法。

## 歷史

開發一套文件系統層次結構標準的進程始於1993年8月，標準努力重整Linux的文件和目錄結構。FSSTND（英文Filesystem Standard），一個針對Linux作業系統的文件系統層次結構標準在1994年2月14日發布。後續的修正版本分別在1994年10月9日和1995年3月28日發布。

在1996年初，開發一個更加全面的、不僅解決Linux，而且解決其他類Unix系統目錄層次結構問題的FSSTND的計劃在BSD開發社區成員的協助下正式被採納。因此，計劃重點解決在類Unix系統上普遍存在的問題。為了適應標準範圍的擴充，標準的名稱修改為文件系統層次結構標準。

## 目錄結構

在FHS中，所有的文件和目錄都出現在根目錄"/"下，即使他們存儲在不同的物理設備中。但是請注意，這些目錄中的一些可能或可能不會在Unix系統上出現，這取決於系統是否含有某些子系統，例如X Window系統的安裝與否。

這些目錄中的絕大多數都在所有的UNIX作業系統中存在，並且一般都以大致類似的方法使用；然而，這裡的描述是針對於FHS的，並未考慮除了Linux平台以外的權威性。

目錄｜描述

/｜第一層次結構 的根、整個文件系統層次結構的根目錄。

/bin/｜需要在單使用者模式可用的必要命令（可執行文件）；面向所有使用者，例如： cat、 ls、 cp。

/boot/｜引導程序文件，例如： kernel、initrd；時常是一個單獨的分區

/dev/｜必要設備, 例如：:/dev/null.

/etc/｜特定主機，系統範圍內的配置文件。關於這個名稱目前有爭議。在貝爾實驗室關於UNIX實現文檔的早期版本中，/etc 被稱為etcetera，這是由於過去此目錄中存放所有不屬於別處的所有東西（然而，FHS限制/etc只能存放靜態配置文件，不能包含二進位文件）。自從早期文檔出版以來，目錄名稱已被以各種方式重新稱呼。最近的解釋包括逆向首字母縮略詞如："可編輯的文本配置"（英文 "Editable Text Configuration"）或"擴展工具箱"（英文 "Extended Tool Chest"）。

/etc/opt/｜/opt/的配置文件

/etc/X11/｜X Window系統(版本11)的配置文件

/etc/sgml/｜SGML的配置文件

/etc/xml/｜XML的配置文件

/home/｜使用者的家目錄，包含保存的文件、個人設置等，一般為單獨的分區。

/lib/｜/bin/ 和 /sbin/中二進位文件必要的庫文件。

/media/｜可移除媒體(如CD-ROM)的掛載點 (在FHS-2.3中出現)。

/mnt/｜臨時掛載的文件系統。

/opt/｜可選應用軟體 包。

/proc/｜虛擬文件系統，將內核與進程狀態歸檔為文本文件。例如：uptime、 network。在Linux中，對應Procfs格式掛載。

/root/｜超級用戶的家目錄

/sbin/｜必要的系統二進位文件，例如： init、 ip、 mount。

/srv/｜站點的具體數據，由系統提供。

/tmp/｜臨時文件(參見 /var/tmp)，在系統重啟時目錄中文件不會被保留。

/usr/｜用於存儲只讀使用者數據的第二層次；包含絕大多數的(多)使用者工具和應用程式。

/usr/bin/｜非必要可執行文件 (在單使用者模式中不需要)；面向所有使用者。

/usr/include/｜標準包含文件。

/usr/lib/｜/usr/bin/和/usr/sbin/中二進位文件的庫。

/usr/sbin/｜非必要的系統二進位文件，例如：大量網路服務的守護進程。

/usr/share/｜體系結構無關（共享）數據。

/usr/src/｜原始碼,例如:內核原始碼及其頭文件。

/usr/X11R6/｜X Window系統 版本 11, Release 6.

/usr/local/｜本地數據的第三層次，具體到本台主機。通常而言有進一步的子目錄，例如：bin/、lib/、share/.

/var/｜變量文件——在正常運行的系統中其內容不斷變化的文件，如日誌，脫機文件和臨時電子郵件文件。有時是一個單獨的分區。

/var/cache/｜應用程式緩存數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程式必須能夠再生或恢復數據。緩存的文件可以被刪除而不導致數據丟失。

/var/lib/｜狀態資訊。由程序在運行時維護的持久性數據。例如：資料庫、包裝的系統元數據等。

/var/lock/｜鎖文件，一類跟蹤當前使用中資源的文件。

/var/log/｜日誌文件，包含大量日誌文件，為了防止日誌占滿根分區，生產環境中一般是單獨分區。

/var/mail/｜使用者的電子郵箱。

/var/run/｜自最後一次啟動以來運行中的系統的資訊，例如：當前登錄的使用者和運行中的守護進程、一些守護進程的pid文件、socket文件。現已經被/run代替。

/var/spool/｜等待處理的任務的脫機文件，例如：列印隊列和未讀的郵件。

/var/spool/mail/｜使用者的郵箱(不鼓勵的存儲位置)

/var/tmp/｜在系統重啟過程中可以保留的臨時文件。

/run/｜代替/var/run目錄。

## 外部連結

- Home of the Filesystem Hierarchy Standard
- Fortune Cookies through the /proc Filesystem
- The Dotted Standard Filename Hierarchy, yet another very different hierarchy (used in cLIeNUX)
- Filesystem Hierarchy Standard 2.3 (29 January 2004)

## 基本資料

- 所有者：Linux基金會
- 發行日期：1994年2月14日
- 最新版本：3.0
- 最新版本：2015年6月3日
- 網站：https://wiki.linuxfoundation.org/lsb/fhs、http://www.pathname.com/fhs/