現在互聯網產品已經隨處可見了,但是你真正的瞭解過它嗎?Linux作為時下最火的操作系統,可以說已經是無處不在了,隨之而來的就是學習linux的人也越來越多,但是怎麼樣能系統的學習呢,又是很多人不瞭解的,下面小猿圈linux講師就為你講解一下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的支持度並不高。
四、文件系統結構:
205f23a5cfe3f8c5.png
/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
以上就是小猿圈Linux講師對於Linux文件系統初步認識的全面指導,希望對你學習linux有一定的幫助,你剛開始看的時候一定會很懵,但是相信我只要堅持努力地學習,學會linux不是什麼難事,多看多練,遇到難題不會的可以到小猿圈看看。