2021-05-12 14:32:11
Linux檔案系統初步認識
一、什麼是檔案系統
計算機的檔案系統是一種儲存和組織計算機資料的方法,它使得對其存取和查詢變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的地址為多少的資料塊上,只需要記住這個檔案的所屬目錄和檔名。在寫入新資料之前,使用者不必關心硬碟上的那個塊地址沒有被使用,硬碟上的儲存空間管理(分配和釋放)功能由檔案系統自動完成,使用者只需要記住資料被寫入到了哪個檔案中。
二、檔案系統的組成元素
檔名:在檔案系統中,檔名是用於定位儲存位置。
後設資料(Metadata):其它檔案儲存資訊常常伴隨著檔案自身儲存在檔案系統中。檔案長度可能是分配給這個檔案的區塊數,也可能是這個檔案實際的位元組數。檔案最後修改時間也許記錄在檔案的時間戳中。有的檔案系統還儲存檔案的建立時間,最後存取時間及屬性修改時間。(不過大多數早期的檔案系統不記錄檔案的時間資訊)其它資訊還包括檔案裝置型別(如:區塊數,字元集,套介面,子目錄等等),檔案所有者的ID,組ID,還有存取許可權(如:唯讀,可執行等等)。
資料(Data):實際存放的內容
安全存取:針對基本檔案系統操作的安全存取可以通過存取控制列表或capabilities實現。研究表明存取控制列表難以保證安全,這也就是研發中的檔案系統傾向於使用capabilities的原因。然而目前多數商業性的檔案系統仍然使用存取控制列表。
三、檔案系統的分類
a.磁碟檔案系統:磁碟檔案系統是一種設計用來利用資料儲存裝置來儲存計算機檔案的檔案系統,最常用的資料儲存裝置是磁碟驅動器,可以直接或者間接地連線到計算機上。例如:FAT、exFAT、NTFS、HFS、HFS+、ext2、ext3、ext4、ODS-5、btrfs。有些檔案系統是進程檔案系統(也有譯作紀錄檔檔案系統)或者追蹤檔案系統。
b.快閃記憶體檔案系統:快閃記憶體檔案系統是一種設計用來在快閃記憶體上儲存檔案的檔案系統。
c.資料庫檔案系統:檔案管理方面的一個新概念是一種基於資料庫的檔案系統的概念。不再(或者不僅僅)使用分層結構管理,檔案按照他們的特徵進行區分,如檔案型別、專題、作者或者亞資料進行區分。於是檔案檢索就可以按照SQL風格甚至自然語言風格進行。
d.網路檔案系統:網路檔案系統(NFS,Network File System)是一種將遠端主機上的分割區(目錄)經網路掛載到本地系統的一種機制。
說明:隨著Linux的不斷發展,它所支援的檔案格式系統也在迅速擴充,Linux系統核心可以支援十多種檔案系統型別:Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、XFS、ISO 9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。 注意:部分Linux發行版預設不支援NTFS檔案系統,解決方法是安裝ntfs-3g或ufsd等NTFS驅動程式。部分Linux發行版對NTFS的支援度並不高。
四、檔案系統結構:
/boot:引導檔案存放目錄,核心檔案(vmlinuz)、引導載入器 (bootloader, grub)都存放於此目錄
/bin:供所有使用者使用的基本命令;不能關聯至獨立分割區, OS啟動即會用到的程式
/sbin:管理類的基本命令;不能關聯至獨立分割區, OS啟動即 會用到的程式
/lib:啟動時程式依賴的基本共用庫檔案以及核心模組檔案 (/lib/modules)
/lib64:專用於x86_64系統上的輔助共用庫檔案存放位置
/etc:組態檔目錄
/home/USERNAME:普通使用者家目錄
/root:管理員的家目錄
/media:便攜式移動裝置掛載點
/mnt:臨時檔案系統掛載點
/dev:裝置檔案及特殊檔案儲存位置
b: block device,隨機存取
c: character device,線性存取
/opt:第三方應用程式的安裝位置
/srv:系統上執行的服務用到的資料
/tmp:臨時檔案儲存位置
/usr:Unix Software Resource universal shared, read-only data
bin: 保證系統擁有完整功能而提供的應用程式 sbin: lib: 32位元使用 lib64:只存在64位元系統 include: C程式的標頭檔案(header files) share:結構化獨立的資料,例如doc, man等 local:第三方應用程式的安裝位置 bin, sbin, lib, lib64, etc, share
/var: variable data files cache: 應用程式快取資料目錄 lib: 應用程式狀態資訊資料 local:專用於為/usr/local下的應用程式儲存可變資料; lock: 鎖檔案 log: 紀錄檔目錄及檔案 opt: 專用於為/opt下的應用程式儲存可變資料; run: 執行中的進程相關資料;通常用於儲存進程pid檔案 spool: 應用程式資料池 tmp: 儲存系統兩次重新啟動之間產生的臨時資料
/proc: 用於輸出核心與進程資訊相關的虛擬檔案系統
/sys:用於輸出當前系統上硬體裝置相關資訊虛擬檔案系統
/selinux: security enhanced Linux, selinux相關的安全策 略等資訊的儲存位置
五、Linux上的應用程式的組成部分
二進位制程式: /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
庫檔案: /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
組態檔: /etc, /etc/DIRECTORY, /usr/local/etc
幫助檔案: /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
六、Linux下的檔案型別及檔案命名規則
檔案型別: -:普通檔案
d: 目錄檔案
b: 塊裝置
c: 字元裝置
l: 符號連結檔案
p: 管道檔案pipe
s: 通訊端檔案socket
藍色-->目錄 綠色-->可執行檔案 紅色-->壓縮文 件 淺藍色-->連結檔案 灰色-->其他檔案
檔案命名規則:
包括路徑在內檔名稱最長4095個位元組,用/分隔的路徑不能超過255個位元組。除了斜槓和NUL,所有字元都有效.但使用特殊字元的目錄名和檔案不推薦使用,有些字元需要用引號來參照它們。標準Linux檔案系統(如ext4),檔名稱大小寫敏感。例如: MAIL, Mail, mail, mAiL
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-02/140323.htm
相關文章