UNIX/目錄層級
文件系統層次結構標準(en:Filesystem Hierarchy Standard,w:FHS)定義了Linux操作系統中的主要目錄及目錄內容。在大多數情況下,它是一個傳統BSD文件系統層次結構的形式化與擴充。
FHS由Linux基金會維護,這是一個由主要軟件或硬件供應商組成的非營利組織,例如HP、Red Hat、IBM、和Dell。當前的版本是2.3,在2004年1月29日公布。
FHS 標準被不少流行的 UNIX 和類 UNIX 發行版所使用,使用這些系統時常常會用到這些知識。一些發行版可能不完全遵守這樣的條例,也有些使用符號鏈接之類的形式以便自定義系統。然而,這些方式得到的文件系統結構實際上與 FHS 差別不大。以下目錄結構是對 FHS UNIX 目錄樹的在一個現代發行版上的部署情況的敘述。
結構
[編輯]根目錄:/
第一層次結構的根、 整個文件系統層次結構的根目錄。
/bin
[編輯]需要在單用戶模式可用的必要命令(可執行文件);面向所有用戶,例如: cat、 ls、 cp。
/boot
[編輯]存引導程序文件,例如: 內核、initrd;時常是一個單獨的分區[1]
/dev
[編輯]必要設備, 例如:, /dev/null
.
/etc
[編輯]特定主機,系統範圍內的配置文件。
關於這個名稱目前有爭議。在貝爾實驗室關於UNIX實現文檔的早期版本中,/etc 被稱為etcetera,這是由於過去此目錄中存放所有不屬於別處的所有東西(然而,FHS限制/etc存放靜態配置文件,不能包含二進制文件)。自從早期文檔出版以來,目錄名稱已被以各種方式重新稱呼。最近的解釋包括反向縮略語如:"可編輯的文本配置"(英文 "Editable Text Configuration")或"擴展工具箱"(英文 "Extended Tool Chest")。/etc 的通常內容如下所列。
foo.d/
屬於 foo 程序的目錄——.d
指代 directory,即目錄。00-bar
,01-baz
,99-final
- 利用文件名排序的特點,實現按順序逐個讀取配置文件。常見於init
,fontconfig
等需要配置文件優先級關係的程序配置中。xxxrc
- run commands 的縮寫,指某個程序或系統啟動時執行的任務。opt/
:/opt/
的配置文件X11/
:X Window系統(版本11)的配置文件sgml/
:SGML的配置文件xml/
:XML的配置文件
/home/
[編輯]用戶的家目錄,包含保存的文件、個人設置等,一般為單獨的分區。[2]
/lib/
[編輯]/bin/ 和 /sbin/中二進制文件必要的庫文件。[3]
/media/
[編輯]可移除媒體(如CD-ROM)的掛載點 (在FHS-2.3中出現)。
/mnt/
[編輯]臨時掛載的文件系統。
/opt/
[編輯]可選應用軟件包。常常以 /opt/软件名
的目錄層級(前綴)出現。
/proc/
[編輯]虛擬文件系統,將內核與進程狀態歸檔為文本文件。例如:uptime、 network。在Linux中,對應procfs格式掛載。
/root/
[編輯]/sbin/
[編輯]必要的系統二進制文件,例如: init、 ip、 mount。在一些激進的發行版中軟鏈接到 /bin
。
/srv/
[編輯]站點的具體數據,由系統提供。
/tmp/
[編輯]臨時文件(參見 #/var/tmp),在系統重啟時目錄中文件不會被保留。
/usr/
[編輯]用於存儲只讀用戶數據的第二層次(前綴); 包含絕大多數的(多)用戶工具和應用程序。是 UNIX Software Repository 的簡寫。在一些激進的發行版中,/
下的不少目錄軟鏈接到此目錄下的相應目錄。
/usr/bin/
[編輯]/usr/include/
[編輯]標準包含文件。
/usr/lib/
[編輯]/usr/bin/和/usr/sbin/中二進制文件的庫。
/usr/sbin/
[編輯]非必要的系統二進制文件,例如:大量網絡服務的守護進程。在一些激進的發行版中軟鏈接到 /usr/bin
。
/usr/share/
[編輯]體系結構無關(共享)數據。常見子目錄/子目錄名:
./软件(-版本)
:這個程序的共享數據。以下是示例:
./locale
:多語言本地化數據。./doc
:HTML、TXT 或其他格式的文檔,由某一些程序安裝。./zoneinfo
:時區數據庫。
/usr/src/
[編輯]源代碼,例如:內核源代碼及其頭文件。
/usr/X11R6/
[編輯]X Window系統 版本 11, Release 6。不常使用。
/usr/local/
[編輯]| 本地數據的第三層次(也是前綴), 具體到本台主機。通常而言有進一步的子目錄, 例如:bin/、lib/、share/。布局與 /usr
類似,只不過 share/
常被鏈接到 /usr/share
。
[4]
/var/
[編輯]變量文件——在正常運行的系統中其內容不斷變化的文件,如日誌,脫機文件和臨時電子郵件文件。有時是一個單獨的分區。
/var/cache/
[編輯]應用程序緩存數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程序必須能夠再生或恢復數據。緩存的文件可以被刪除而不導致數據丟失。
/var/lib/
[編輯]狀態信息。 由程序在運行時維護的持久性數據。 例如:數據庫、包裝的系統元數據等。
/var/lock/
[編輯]鎖文件,一類跟蹤當前使用中資源的文件。
/var/log/
[編輯]日誌文件,包含大量日誌文件。
/var/mail/
[編輯]用戶的電子郵箱。
/var/run/
[編輯]/var/spool/
[編輯]等待處理的任務的脫機文件,例如打印隊列和未讀的郵件。
/var/spool/mail/
[編輯]用戶的郵箱(不鼓勵的存儲位置)
/var/tmp/
[編輯]在系統重啟過程中可以保留的臨時文件。
/run
[編輯]自最後一次啟動以來運行中的系統的信息,例如當前登錄的用戶和運行中的守護進程。常見的子目錄:
- 由某個用戶的桌面環境創建:
<用户名>
:
media/
:類似/media
,但是基本上是這個用戶獨占的。
/sys
[編輯]在 Linux 中作為 sysfs 出現。這個文件系統不僅可以把設備(devices)和驅動程序(drivers) 的信息從內核輸出到 用戶空間,也可以用來對設備和驅動程序做設置。(w:sysfs)
參
[編輯]- ↑ A separate partition is generally only used when bootloaders are incapable of reading the main filesystem (e.g. SILO does not recognize XFS) or other problems not easily resolvable by users.
- ↑ 在較老的 UNIX 中作為 /Users 存在。
- ↑ 在較老的 UNIX 中作為 /Library 存在。
- ↑ Historically and strictly according to the standard, /usr/local/ is for data that must be stored on the local host (as opposed to /usr/, which may be mounted across a network). Most of the time /usr/local/ is used for installing software/data that are not part of the standard operating system distribution (in such case, /usr/ would only contain software/data that are part of the standard operating system distribution). It is possible that the FHS standard may in the future be changed to reflect this de-facto convention).
- ↑ Introducing /run-What's this /run directory doing on my system and where does it come from?March 30, 2011 by corbe