一、FHS介紹
Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本採用這種文件組織形式,類似於Windows作業系統中c盤的文件目錄,FHS採用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。
FHS定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼文件數據,例如/etc應該要放置設置文件,/bin與/sbin則應該要放置可執行文件等等。第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統登錄文件、/usr/share放置共享數據等等。
二、linux目錄結構介紹
整個Linux系統最重要的地方就是在於目錄樹架構,所謂的目錄樹架構就是以根目錄為主, 然後向下呈現分支狀的目錄結構的一種檔案架構。下圖給出了linux的目錄結構,那這些目錄都有什麼作用呢?
三、linux目錄的作用
根目錄(/)
最高一級目錄,所有目錄都是根目錄衍生出來,只有root用戶具有寫權限,一般根目錄下只存放目錄,不要存放件
/bin目錄 – 用戶二進位文件
包含二進位的可執行文件,你需要的常見的Linux命令都位於此目錄下。
/sbin目錄 – 系統二進位文件
這個目錄下的命令通常由系統管理員使用, 對系統進行維護。
/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有所差異,有的版本中會出現有額外作用的目錄,這個就需要具體問題具體對待了。
四、目錄和設備節點
我們已經知道目錄是用來存放文件的,不同的目錄存放的文件作用不同,那麼我們來看下設備節點是什麼?一個設備節點其實就是一個文件,Linux中稱為設備文件。有一點必要說明的是,在Linux中,所有的設備訪問都是通過文件的方式,一般的數據文件程序普通文件,設備節點稱為設備文件,而這些設備節點,或者說是設備文件都統一存放在/dev目錄下,簡單來說,設備節點是一種特殊的文件,只不過這個文件存放的不是一般的數據,而是和你計算機中的設備想關聯的。
五、.和..
在linux系統中,使用ls -a命令時,你會發現每一個目錄下都包含兩個目錄,這兩個目錄就是.和..,其中"."表示是的是當前目錄,也就是你使用pwd所查看到的路徑,而".."表示的上一級目錄,也就是父目錄。
六、絕對路徑和相對路徑
linux的路徑書寫方式有兩種,絕對路徑:路徑的寫法一定是由根目錄 / 寫起的,以根目錄為起點;相對路徑:路徑的寫法不是由根目錄 / 寫起的,不以根目錄為起點。例如,你知道你的朋友在四樓,而你在五樓,如果你的朋友詢問你的位置,你就有兩種回答方式,絕對路徑的方式就是你告訴對方你在五樓,相對路徑的方式就是你告訴對方你在對方樓上。至於優缺點方面沒有絕對的答案,不同情況使用不同的路徑罷了。看完這個我們來看下linux的文件是如何保存的。
七、linux的文件保存
假如有一個用戶在linux系統中編輯了一個文件,編輯完內容後,關閉編輯器時會問用戶改如何命名這個文件,設置完名稱之後會選擇一個目錄將該文件保存到指定目錄下,在這個例子中包含了linux系統中與文件相關的三個組成部分
數據:就是文件的內容,保存在一個叫data(數據塊)的結構中
元數據:保存一個文件的特徵的系統數據,用來保存除了文件內容和文件名以外的與文件相關的信息, 諸如文件的創建者,日期,大小等等,保存在一個叫inode(i節點)的結構中。
文件名:用來保存文件名稱,文件名保存在一個叫dentry(目錄項)的結構中。
在這裡面我們提到了一個東西叫inode下面一起來看下inode
八、i節點介紹
通過前面的課程我們知道,inode是用來保存文件的元數據的,除此之外還保存文件相關屬性信息,如連結數等。我們通過類似stat hello.txt這條命令查看指定文件的inode信息。
i節點我們就介紹到這裡,接下來我們看一下連結
文章來源: https://twgreatdaily.com/SOs02nMBd8y1i3sJhgYX.html