FHS文件系統各目錄功能
前言
FHS (Files system Hiserarchy Standard) 文件系統目錄標準。目前多數linux版本采用這種文件組織形式,類似于windows操作系統中的C盤的文件目錄,FHS采用樹形結構組織文件。定了系統中每個區域的用途、所需的最小構成的文件和目錄,同時給出了例外處理與矛盾處理。
目錄
一、FHS標準內容
二、目錄樹directory tree
三、FHS目錄結構
參考資料
一、FHS標準內容
FHS標準定義了兩層規范第一層是/ 下面的各個目錄應該放什么文件數據。第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log 放置系統登錄文件、/usr/share放置共享數據等等。這種定義使得軟件可以預測已安裝文件和文件夾的位置,用戶可以預測已安裝文件和文件夾的位置。
二、目錄樹directory tree
另外,在linux中,所有的文件與目錄都有根/目錄開始。所有/是所有目錄及文件的源頭然后層層分下來,有點像樹狀,因此我們把這種目錄配置方式稱為“目錄樹directory tree” 這個目錄樹的主要特性有:
1、目錄樹的起始為根目錄/ (見圖1-1)
2、每個目錄不僅能使用本地端分區,也可以使用網絡上的文件系統。例如: 可以利用網絡文件系統 network file system NFS 服務器載入某個特定的目錄等。
3、同時每一個文件在此目錄樹種的文件名都是獨一無二的。
特別注意的是以下兩個特殊目錄:
.:表示當前目錄,也可以用./來表示
..:表示上一層目錄,也可以用../來表示。
(圖1-1)
三、FHS目錄結構
(圖1-2)
如圖1-2所示在FHS所有的文件和目錄都出現在根目錄”/”下,即使他們存儲在不同的網絡設備中。但是請注意的是,這些目錄中的一部分可能不會在您linux系統上出現,這取決與系統是否包含某些子系統,例如 Xwindows 系統的安裝與否。
這些目錄中的絕大多數都在所有的linux操作系統中存在,并且一般都以大致類似的方法使用;然而,這里的描述是針對與FHS的并未考慮除linux平臺以外的權威性。
目 錄 |
描 述 |
/ |
第一層結構的根、整個文件系統層次結構的根目錄 |
/bin |
需要在單用戶模式可用的必要命令(可執行文件)面向所有的用戶。例如 ls、cat、pwd、cp等. |
/sbin |
類似于/bin 存放系統二進制文件。因為其中大部分文件多是系統管理員使用的基本系統程序,雖然普通用戶必要且允許時可以使用,但一般不會面向普通用戶使用。例如命令:例如: init、 ip、 mount。等 |
/boot |
存放引導程序文件;時常是一個單獨的分區。Boot目錄內存放都是系統啟動的重要文件及目錄例如vmlinuz(實際是系統所使用的kernel即內核文件)、System.map (系統kernel中的變量對應表)、initrd(系統啟動時的模塊供應主要來源)、grub(啟動管理程序目錄,多存放grub啟動時所需畫面、配置及各階段文件)。 |
/dev |
必要的設備文件并包含linux系統所使用的所有外部設備。例如:/dev/null、/dev/zero 、/dev/cdrom等。 |
/usr |
包含絕大多數的(多)用戶工具和應用程序,存放用戶使用的系統命令和應用程序等信息像命令幫助文件等。例如:/usr/bin、/usr/local、/usr/lib等。值得注意的是/usr目錄是曾近還是用戶的家目錄后來被/home 目錄取代。 |
/etc |
系統程序的配置文件;包含很多文件許多網絡配置文件也在/etc 中。例如/etc/rc、/etc/passwd 、/etc/sysconfig、/etc/fstab等 |
/srv |
存放一些服務器之后啟動之后需要提取的數據。包含由此系統提供的站點特定數據。指定這個的主要目的是讓用戶可以找到.特定服務的數據文件的位置,并由此提供服務。 |
/home |
用戶目錄也是根目錄下的一個子文件,是存放每個系統用戶的文件的地方。普通用戶的家目錄集中位置,用戶名同名子目錄 |
/opt |
表示的是可選擇的意思,有些軟件包也會被安裝在這里,也就是自定義軟件包。 |
/mnt |
錄是系統管理員臨時安裝(mount)文件系統的安裝點。程序并不自動支持安裝到/mnt 。/mnt 下面可以分為許多子目錄,例如/mnt/dosa 可能是使用MSDOS文件系統的軟驅,而/mnt/exta 可能是使用ext2文件系統的軟驅,/mnt/cdrom 光驅等等。 |
/lib |
目錄包含引導系統和在根文件系統中運行命令所需的內核模塊和共享庫映像(C編程代碼庫)。通過/ bin和/ sbin中的二進制。庫可以通過其* .so的文件名擴展名容易地識別。等同于共享庫的Windows將是一個DLL(動態鏈接庫)文件。它們對于基本系統功能至關重要。內核模塊(驅動程序)位于子目錄/ lib / modules /'kernel-version'中。為了確保正確的模塊編譯,你應該確保/ lib / modules /'kernel-version'/ kernel / build指向/ usr / src /'kernel-version',或者確保Makefile知道內核源代碼本身的位置。 |
/lib64 |
等同于/lib. 64 位版本通常存放在文件系統的/lib64 目錄樹中,而 32 位版本則位于 /lib 目錄樹中。 您可能會在 64 位 Linux系統中同時發現/lib/libc-2.11.1.so以及 /lib64/libc-2.11.1.so . 這兩個庫允許 32 位及 64 位 C 程序在 64 位 Linux 系統當中運行。 |
/tmp |
此目錄主要包含臨時需要的文件。 許多程序使用它來創建鎖定文件和臨時存儲數據。 不要從這個目錄中刪除文件,除非你知道你在做什么!這些文件對許多當前運行的程序很重要,刪除它們可能會導致系統崩潰。 通常它不會包含超過幾KB。 在大多數系統上,此目錄在引導或由本地系統關閉時清除。 這一點的基礎是歷史先例和普遍做法。 但是,它不是要求,因為系統管理不在FSSTND(后來的FHS)的范圍內。 因此,人和程序不能假定/ tmp中的任何文件或目錄在程序的調用之間保留。 |
參考資料:
以上內容多取材于互聯網各大博客論壇以及以下網站。
Linux文檔項目http://www.tldp.org
Linux 目錄系統層次介紹:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
文件系統層次結構標準FHS維基百科介紹:https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E6%A0%87%E5%87%86
原創文章,作者:秋季,如若轉載,請注明出處:http://www.www58058.com/51929