Linux 檔案系統初步

2021-09-07 12:17:19 字數 2210 閱讀 5698

在linux系統中,假設我們想要知道乙個檔案的詳細資訊,那麼最簡便的方法自然就是ls命令了。例如以下圖所看到的:當在shell輸入命令"ls -l old"時,在下方就會顯示出關於檔案old的一些

資訊.以下就從左到右逐步分析每部分輸出所代表的詳細含義。當中輸出的第一部分包括十個字元。當中第乙個字元用於表示檔案的型別。那麼我們就先來說說在unix/linux系統中的檔案型別好了。

檔案型別:

事實上在linux系統中主要就是兩種檔案,一種是常規檔案(regular file),還有一種就是資料夾(directory)。

開始可能認為非常奇怪。資料夾怎麼會是檔案呢?事實上資料夾僅僅是儲存了該資料夾下的檔案或子資料夾的名稱和相應i-node(包括了基本上關於相應檔案全部資訊的結構)的編號的乙個特殊檔案而已。

當然,除了上述的兩種檔案型別,還有:塊裝置檔案(block special device)。字元裝置檔案(character special device),fifo(管道)。socket(套接字),symbolic link(符號鏈結)這幾種檔案型別。

詳細的在這裡就不展開了。

如在上圖中第一位為『-』。則表示該檔案為常規檔案。其它型別的檔案通過該位顯示的字元應該也非常easy推斷出來。

檔案許可權:

以下我們就來看看後9位字元代表的意思。

說是9位,事實上我們把它們分成3組,每組代表的意思是幾乎相同的。我們都知道linux系統是乙個多使用者的系統,所以對於乙個檔案而言,可能有除建立者以外的其它人想要對檔案進行操作。

這時我們就有必要對檔案的操作許可權進行設定了。

這三組字元從左到右針對的物件依次是檔案的建立者(user),檔案建立者的同組成員(group)。除以上二者以外的其它使用者(others)。而每組的3個字元,從左到右依次顯示為  rwx  當中r代表讀的許可權,w代表寫的許可權,x代表可執行的許可權。例如以下圖所看到的,我想讀乙個名字叫new的檔案。可是它的全部許可權都被遮蔽了。當我輸入命令: more new的時候,shell就會提示許可權不足。

對於其它操作也可類推獲得。

可是在linux中有乙個神一般存在的使用者,就是傳說中的root或者叫超級使用者(superuser)。

它有對系統的一切許可權。能夠對隨意檔案進行操作。所以之前提到的那些限制對它是沒有效果的。

再往右顯示的數字1代表的是。該檔案有1個鏈結。當中鏈結又分硬鏈結(hard link)和符號鏈結(symbolic link)兩種型別。此處顯示的應為硬鏈結數。

當中硬鏈結是直接執行檔案相應的inode的。而符號鏈結則沒有,它僅僅是包括了所鏈結檔案的位置資訊。類似於windows中的快捷方式。

須要注意的是,非常多時候,你所謂的刪除乙個檔案,僅僅是刪除了該檔案的乙個鏈結。

uid和gid:

前面已經說過了,乙個檔案肯定是由乙個使用者建立的。那麼自然在檔案資訊中須要儲存,該檔案的建立者,也就是user-id簡稱uid,同一時候還有該建立者所在組的id,group-id,簡稱gid。所以接下來顯示的monster monster就分別相應了檔案建立者monster和monster所在的組。

檔案大小:

然後顯示的就是相應檔案的大小了,樣例中的檔案大小顯示的是0,單位是位元組。

當中最令人困惑的肯定是st_mtime和st_ctime,檔案改動了。那狀態不就改變了麼?狀態改變。那肯定就是檔案改動了啊?事實上不是這種。第乙個st_mtime指的是檔案內容的改動,而st_ctime的狀態指的是檔案相應的inode中儲存的 資訊的改變,比如各種許可權啊,uid。gid等等。所以說是全然不一樣的。

檔名稱:

顯示在最後的自然就是檔名稱,對於檔名稱想說的是,它並不儲存在檔案相應的inode其中,而是儲存在相應的資料夾檔案裡。這就引發了乙個很有意思的現象。就是我們想要刪除乙個檔案的時候,我們並不須要該檔案的不論什麼許可權,而是須要該檔案所在資料夾的寫許可權和執行許可權。由於我們刪除乙個檔案就是要將降低該檔案相應inode的鏈結數。並將檔名稱從相應的資料夾檔案裡去掉。

ps:以上就是通過命令 ls -l filename所引申出來的關於linux檔案系統的一些基本知識了。當然還有非常多的細節是沒有涉及的。檔案系統也遠遠沒有那麼簡單。假設有什麼錯誤,請大家及時指出來,能夠讓我改正。

參考數目:《unix環境高階程式設計》

Linux檔案系統初步

一 準備工作 1,虛擬機器網絡卡選擇橋接網路,同時在虛擬網路編輯器中設定橋接介面 二 遠端連線linux linux支援遠端連線,它是基於ssh secure shell協議進行的 1,首先輸入命令ss tnl,如果出現 22,說明ssh服務是處於執行狀態的,監聽於tcp協議的22號埠 2,然後檢視...

linux檔案系統結構關於inode初步理解

檔案系統 根據分割槽建立的檔案系統基本由以下構成 bootblock superblock inodes datablocks。超級塊 superblock 儲存著描述檔案系統的大小和形狀的基本資訊。檔案系統的管理員可以使用其中的資訊來使用和維護檔案系統。在超級塊資料結構中包含 first inod...

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...