linux目錄結構和文件屬性管理

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

FHS定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼文件數據,例如/etc應該要放置設置文件,/bin與/sbin則應該要放置可執行文件等等。第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統登陸文件、/usr/share放置共享數據等等。linux

2、linux目錄結構介紹
整個Linux系統最重要的地方就是在於目錄樹架構,所謂的目錄樹架構就是以根目錄爲主, 而後向下呈現分支狀的目錄結構的一種檔案架構。下圖給出了linux的目錄結構,那這些目錄都有什麼做用呢?shell

linux目錄結構和文件屬性管理

3、linux目錄的做用
根目錄(/)windows

最高一級目錄,全部目錄都是根目錄衍生出來,只有root用戶具備寫權限,通常根目錄下只存放目錄,不要存放件 架構

/bin目錄 – 用戶二進制文件編輯器

包含二進制的可執行文件,你須要的常見的Linux命令都位於此目錄下。ide

/sbin目錄 – 系統二進制文件操作系統

這個目錄下的命令一般由系統管理員使用, 對系統進行維護。blog

/etc– 配置文件遞歸

包含全部程序所須要的配置文件,也包含用於啓動/中止單個程序的起動和關閉shell腳本。

/dev-設備文件

包含設備文件,包括終端設備、USB或鏈接到系統的任何設備,如網卡等。

/proc-進程信息文件

這是一個虛擬的文件系統,包含有關正在運行的進程信息。

/usr-用戶程序

包含二進制文件、庫文件、文檔和二級程序的源代碼。

/usr/bin中包含用戶程序的二進制文件。若是你在/bin中找不到用戶二進制文件,到/usr/bin目錄看看。
/usr/sbin中包含系統管理員的二進制文件。若是你在/sbin中找不到系統二進制文件,到/usr/sbin目錄看看。
/usr/lib中包含了/usr/bin和/usr/sbin用到的庫。
/usr/local中包含了從源安裝的用戶程序。

/home -HOME目錄

包含全部用戶的我的檔案,Linux是多用戶的系統,因此用該目錄保存各用戶的信息。

/boot -引導加載程序

包含引導加載程序相關的文件。

/lib -系統庫

包含支持位於/lib和/sbin下的二進制文件的庫文件。

/opt -可選的附加應用程序

給主機額外安裝軟件所擺放的目錄,之前的 Linux 系統中,習慣放置在 /usr/local 目錄下

/mnt /media -掛載目錄

光盤默認掛載點,一般光盤掛載於 /mnt/cdrom 下,也不必定,能夠選擇任意位置進行掛載。

在這裏咱們所介紹的目錄是在linux系統中常見的目錄,不一樣廠商的linux有所差別,有的版本中會出現有額外做用的目錄,這個就須要具體問題具體對待了。

4、目錄和設備節點
咱們已經知道目錄是用來存放文件的,不一樣的目錄存放的文件做用不一樣,那麼咱們來看下設備節點是什麼?一個設備節點其實就是一個文件,Linux中稱爲設備文件。有一點必要說明的是,在Linux中,全部的設備訪問都是經過文件的方式,通常的數據文件程序普通文件,設備節點稱爲設備文件,而這些設備節點,或者說是設備文件都統一存放在/dev目錄下,簡單來講,設備節點是一種特殊的文件,只不過這個文件存放的不是通常的數據,而是和你計算機中的設備想關聯的。

5、.和..
在linux系統中,使用ls -a命令時,你會發現每個目錄下都包含兩個目錄,這兩個目錄就是.和..,其中"."表示是的是當前目錄,也就是你使用pwd所查看到的路徑,而".."表示的上一級目錄,也就是父目錄。

6、絕對路徑和相對路徑
linux的路徑書寫方式有兩種,絕對路徑:路徑的寫法必定是由根目錄 / 寫起的,以根目錄爲起點;相對路徑:路徑的寫法不是由根目錄 / 寫起的,不以根目錄爲起點。例如,你知道你的朋友在四樓,而你在五樓,若是你的朋友詢問你的位置,你就有兩種回答方式,絕對路徑的方式就是你告訴對方你在五樓,相對路徑的方式就是你告訴對方你在對方樓上。至於優缺點方面沒有絕對的答案,不一樣狀況使用不一樣的路徑罷了。看完這個咱們來看下linux的文件是如何保存的。

7、linux的文件保存
假若有一個用戶在linux系統中編輯了一個文件,編輯完內容後,關閉編輯器時會問用戶改如何命名這個文件,設置完名稱以後會選擇一個目錄將該文件保存到指定目錄下,在這個例子中包含了linux系統中與文件相關的三個組成部分

數據:就是文件的內容,保存在一個叫data(數據塊)的結構中

元數據:保存一個文件的特徵的系統數據,用來保存除了文件內容和文件名之外的與文件相關的信息, 諸如文件的建立者,日期,大小等等,保存在一個叫inode(i節點)的結構中。

文件名:用來保存文件名稱,文件名保存在一個叫dentry(目錄項)的結構中。

在這裏面咱們提到了一個東西叫inode下面一塊兒來看下inode

8、i節點介紹
經過前面的課程咱們知道,inode是用來保存文件的元數據的,除此以外還保存文件相關屬性信息,如連接數等。咱們經過相似stat hello.txt這條命令查看指定文件的inode信息。

i節點咱們就介紹到這裏,接下來咱們看一下連接

9、連接介紹
Linux中若是用戶想把同一個文件保存在兩個地方,或用兩個不一樣的文件名保存,除了複製以外還有另一種選擇,就是連接,在linux系統中連接分爲硬連接,軟連接,空連接,遞歸連接等

硬連接:容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬連接到重要的文件,以防止「誤刪」源數據,不過硬連接只能在同一文件系統中的文件之間進行鏈接

軟連接 : 也叫符號連接,相似於windows系統中的快捷方式,與硬連接不一樣,軟連接就是一個普通文件,軟連接可對文件或目錄建立。

這是概念上的描述,咱們用一句話來將這兩種連接進行總結,硬連接不能鏈目錄,不能跨文件系統,軟連接能夠;源文件刪除後軟連接失效,硬連接依然可用,咱們經過下面的例子能夠看到硬連接和軟連接的建立方式以及基本對比
linux目錄結構和文件屬性管理

除了上面咱們說到的硬連接和軟連接以外還有

空連接,所謂的空連接就是軟連接指向的源文件不存在了,包括源文件被刪除,更名。

遞歸連接:遞歸連接不如空連接常見,若是想看的話幾乎須要專門尋找,若是用戶建立兩個軟連接,linka與linkb關聯,而linkb又與linka關聯,這時候就會出現遞歸連接,好比

linux目錄結構和文件屬性管理

絕對軟連接和相對軟連接:主要指的是用戶在建立軟連接的時候使用的是絕對路徑仍是相對路徑來指定連接目標,若是連接建立完成以後不會移動,那麼這兩種方法能夠隨意使用,可是若是連接文件須要被移動,那麼建議仍是使用絕對路徑,好比
linux目錄結構和文件屬性管理

好了連接咱們就說到這裏,下面咱們看一下時間戳

10、時間戳
時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至如今的總毫秒數。通俗的講, 時間戳是一份可以表示一份數據在一個特定時間點已經存在的完整的可驗證的數據。 它的提出主要是爲用戶提供一份電子證據, 以證實用戶的某些數據的產生時間。 當咱們使用stat命令查看文件的時候除了建立時間你會發現有三個跟時間戳相關的信息

linux目錄結構和文件屬性管理

linux目錄結構和文件屬性管理

縮寫 命令 目的
Atime 訪問時間 文件數據每次被閱讀後的更新
Ctime 改變時間 文件的i-節點信息每次被改變後都更新
Mtime 修改時間 文件數據每次被改變後的更新
11、經常使用目錄管理命令介紹

ls:
-a: 所有文件,包括隱藏文件一塊兒列出
-d: 僅列出目錄自己,而不是列出目錄內的文件數據
-l:列出文件的屬性與權限等

cp:
-i: 若文件存在,詢問是否覆蓋
-p:聯通文件的屬性一塊兒複製,而非複製文件自己
-r:遞歸複製

rm:
-f: force,強制刪除
-i:刪除前詢問是否刪除
-r:遞歸刪除

cat:
-n:打印行號

mkdir:-p:遞歸

相關文章
相關標籤/搜索