linux目錄結構和檔案屬性管理

2021-10-07 05:44:28 字數 3897 閱讀 3020

一、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(資料塊)的結構中

檔名:用來儲存檔名稱,檔名儲存在乙個叫dentry(目錄項)的結構中。

在這裡面我們提到了乙個東西叫inode下面一起來看下inode

八、i節點介紹

通過前面的課程我們知道,inode是用來儲存檔案的元資料的,除此之外還儲存檔案相關屬性資訊,如鏈結數等。我們通過類似stat hello.txt這條命令檢視指定檔案的inode資訊。

i節點我們就介紹到這裡,接下來我們看一下鏈結

九、鏈結介紹

linux中如果使用者想把同乙個檔案儲存在兩個地方,或用兩個不同的檔名儲存,除了複製之外還有另外一種選擇,就是鏈結,在linux系統中鏈結分為硬鏈結,軟鏈結,空鏈結,遞迴鏈結等

這是概念上的描述,我們用一句話來將這兩種鏈結進行總結,硬鏈結不能鏈目錄,不能跨檔案系統,軟鏈結可以;原始檔刪除後軟鏈結失效,硬鏈結依然可用,我們通過下面的例子可以看到硬鏈結和軟鏈結的建立方式以及基本對比

除了上面我們說到的硬鏈結和軟鏈結之外還有

空鏈結,所謂的空鏈結就是軟鏈結指向的原始檔不存在了,包括原始檔被刪除,改名。

好了鏈結我們就說到這裡,下面我們看一下時間戳

十、時間戳

時間戳是指格林威治時間2023年01月01日00時00分00秒(北京時間2023年01月01日08時00分00秒)起至現在的總毫秒數。通俗的講, 時間戳是乙份能夠表示乙份資料在乙個特定時間點已經存在的完整的可驗證的資料。 它的提出主要是為使用者提供乙份電子證據, 以證明使用者的某些資料的產生時間。 當我們使用stat命令檢視檔案的時候除了建立時間你會發現有三個跟時間戳相關的資訊

縮寫 命令 目的

atime 訪問時間 檔案資料每次被閱讀後的更新

ctime 改變時間 檔案的i-節點資訊每次被改變後都更新

mtime 修改時間 檔案資料每次被改變後的更新

十一、常用目錄管理命令介紹

ls:-a: 全部檔案,包括隱藏檔案一起列出

-d: 僅列出目錄本身,而不是列出目錄內的檔案資料

-l:列出檔案的屬性與許可權等

cp:-i: 若檔案存在,詢問是否覆蓋

-p:聯通檔案的屬性一起複製,而非複製檔案本身

-r:遞迴複製

rm:-f: force,強制刪除

-i:刪除前詢問是否刪除

-r:遞迴刪除

cat:

-n:列印行號

mkdir:

-p:遞迴

linux目錄結構和檔案屬性管理

一 fhs介紹 filesystem hierarchy standard 檔案系統層次化標準 的縮寫,多數linux版本採用這種檔案組織形式,類似於windows作業系統中c盤的檔案目錄,fhs採用樹形結構組織檔案。fhs定義了系統中每個區域的用途 所需要的最小構成的檔案和目錄,同時還給出了例外處...

列出目錄和檔案屬性(linux)

練習命令列常用快捷鍵 tab ctrl l esc ctrl c 檢視根目錄 下有哪些文件或子目錄 以長格式顯示結果,對比 bin usr bin 目錄詳細屬性 列出當前目錄下的所有文件 包括隱藏文件 列出 root 目錄下以 ana開頭的文件,識別文件大小 1.2 步驟 實現此案例需要按照如下步驟...

Linux Linux檔案結構和檔案屬性資訊

首先,我們必須明確兩個概念 絕對路徑 從根目錄 開始指定的乙個檔案儲存的位置 相對路徑 從當前目錄開始指定的檔案儲存的路徑 1.linux中的檔案結構 bin bin是binary的縮寫,這個目錄存放著最經常使用的命令。boot 這裡存放的是啟動linux時使用的一些核心檔案,包括一些連線檔案以及映...