linux目錄結構介紹

目錄樹

在Linux底下,全部的文件與目錄都是由根目錄開始的。那是全部目錄與文件的源頭, 而後再一個一個的分支下來,所以,咱們也稱這種目錄配置方式爲:目錄樹(directory tree)。目錄樹的啓始點爲根目錄「/」java

 

 

文件系統層次化標準(FHS,Filesystem Hierarchy Standard )

Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本採用這種文件組織形式,相似於Windows操做系統中c盤的文件目錄,FHS採用樹形結構組織文件。FHS定義了系統中每一個區域的用途、所須要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。c++

FHS定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼文件數據,例如/etc應該要放置設置文件,/bin與/sbin則應該要放置可執行文件等等。由於Linux的開發人員實在太多了,若是每一個人都使用本身的目錄配置方法,那麼將可能會帶來不少管理問題。你能想象,你進入一個企業以後,所接觸到的Linux目錄配置方法居然跟你之前學的徹底不一樣嗎?很難想象。因此,後來就有所謂的文件系統層次標準(Filesystem Hierarchy Standard,FHS)出臺。數據庫

第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統登陸文件、/usr/share放置共享數據等等。緩存

FHS官方文件:http://www.pathname.com/fhs/bash

 

根目錄(/)

根目錄是整個系統最重要的一個目錄,由於不但全部的目錄都是由根目錄衍生出來的, 同時根目錄也與開機/還原/系統修復等動做有關。 因爲系統開機時須要特定的開機軟件、核心文件、開機所需程序、 函式庫等等文件數據,若系統出現錯誤時,根目錄也必需要包含有可以修復文件系統的程序才行。 由於根目錄是這麼的重要,因此在FHS的要求方面,他但願根目錄不要放在很是大的分區, 由於越大的分區內你會放入越多的數據,如此一來根目錄所在分區就可能會有較多發生錯誤的機會。服務器

所以FHS標準建議:根目錄(/)所在分區應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統也較不容易發生問題。說白了,就是根目錄和Windows的C盤一個樣。網絡

根據以上緣由,FHS認爲根目錄(/)下應該包含以下子目錄:jvm

目錄函數

應放置檔案內容spa

/bin

基礎命令的二進制文件。

主要有:cat,chmod, chown, date, mv, mkdir, cp, bash等等經常使用的指令。

/boot

開機引導加載的靜態文件。

包括Linux核心檔案以及開機選單與開機所需設定檔等等。Linux kernel經常使用的檔名爲:vmlinuz 。

/dev

設備驅動文件。 

只要經過存取這個目錄下的某個檔案,就等於存取某個裝置。比要重要的檔案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等

/etc

系統主要的配置文件。

例如人員的賬號密碼檔、各類服務的啓始檔等等。 

/home

這是系統預設的使用者家目錄(home directory)。 

在你新增一個通常使用者賬號時,預設的使用者家目錄都會規範到這裏來。比較重要的是,家目錄有兩種代號: ~ :表明當前使用者的家目錄,而 ~guest:則表明用戶名爲guest的家目錄。

/lib

基本共享函數庫和內核模塊。

系統和軟件所使用的函數庫將保存在這裏,好比java的jdk、jvm等。

/lib/modules/很重要存放了內核所需的模塊。

/media

可移動多媒體設備掛載點。

包括軟碟、光碟、DVD等等裝置都暫時掛載於此。

/mnt

臨時外設掛載點。

/opt

附加應用程序軟件包。

/root

root用戶家目錄。

/sbin

基礎系統二進制文件。

常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv

系統提供的服務(service)。

常見的服務例如WWW, FTP等等。 

/tmp

臨時目錄。

另外要注意的是,由於根目錄與開機有關,開機過程當中僅有根目錄會被掛載, 其餘分區則是在開機完成以後纔會持續的進行掛載的行爲。就是由於如此,所以根目錄下與開機過程有關的目錄, 就不可以與根目錄放到不一樣的分區去。/etc、/bin、/dev、/lib、/sbin這五個目錄千萬不可與根目錄分開在不一樣的分區。

FHS未規定的常見目錄

目錄

應放置檔案內容

/lost+found

ext2/ext3檔案系統發生錯誤時,將一些遺失的片斷放置到這個目錄下。

/proc

虛擬文件系統,訪問的是內存的內容。

/sys

虛擬文件系統,訪問的是核心相關信息。

 

軟件目錄(/usr)

/usr不是user的縮寫,其實usr是Unix Software Resource的縮寫, 也就是Unix操做系統軟件資源所放置的目錄。 FHS建議全部軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行創建該軟件本身獨立的目錄。

由於是全部系統默認的軟件都會放置到/usr底下,所以這個目錄有點相似Windows 系統的C:\Program files\這個目錄,系統剛安裝完畢時這個目錄會佔用最多的硬盤容量。

目錄

應放置文件內容

/usr/bin/ 

大部分的用戶命令。

/usr/include/ 

c/c++等程序語言的頭文件(header)與包含文件(include)放置處。

/usr/lib/ 

函數庫

/usr/local/ 

本地程序主要安裝目錄。

咱們本身安裝的程序通常放在這裏。

/usr/sbin/ 

系統非必要的二進制文件。

最多見的就是某些網絡服務器軟件的服務指令(daemon) 

/usr/share/ 

共享文件目錄。

/usr/src/ 

通常原始碼建議放置到這裏,src有source的意思。

 

運行文件目錄(/var)

若是/usr是安裝時會佔用較大硬盤容量的目錄,那麼/var就是在系統運做後纔會漸漸佔用硬盤容量的目錄。 由於/var目錄主要針對常態性變更的文件,包括緩存(cache)、登陸檔(log file)以及某些軟件運做所產生的文件, 包括程序文件(lock file, run file),或者例如MySQL數據庫的文件等等。常見的次目錄有:

目錄

應放置文件內容

/var/cache/

應用程序緩存數據。

/var/lib/

程序執行中變化的狀態信息。

/var/local/ 本地/usr/local程序變化的數據。

/var/lock/

鎖文件。

某些裝置或者是文件資源一次只能被一個應用程序所使用,若是同時有兩個程序使用該裝置時, 就可能產生一些錯誤的情況,所以就得要將該裝置上鎖(lock),以確保該裝置只會給單一軟件所使用。

/var/log/

日誌和目錄。

/var/opt/

本地/opt程序變化的數據。

/var/run/

與運行過程相關的數據。

某些程序或者是服務啓動後,會將他們的PID放置在這個目錄下

/var/spool/

隊列數據。

/var/tmp/ 系統重啓時保存的臨時文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

絕對路徑與相對路徑

絕對路徑

由根目錄(/)開始寫起的文件名或目錄名稱, 

例如 /home/dmtsai/.bashrc;

相對路徑

相對於目前路徑的文件名寫法。 例如 ./home/dmtsai

.  :表明當前的目錄,也可使用 ./ 來表示;

.. :表明上一層目錄,也能夠 ../ 來表明。

相關文章
相關標籤/搜索