LINUX的文件系統
在Linux的眼睛中,一切都為文件,這也是Linux的中心哲學思想。正因如此造就了一個性能穩定,功能強大,效率高的操作系統。Linux有自己的層級標準,它定義了每個系統分區的用途,和所需要的最小構成文件目錄。由不同的文件來完成不同的功能造就了一個Linux的完整生態。
linux的文件系統格式比較豐富,它的核心系統能支持十多種文件系統類型。比如:
JFS;etx;etx2;etx3;etx4;ISo9660;XFS;VFA;NTFS;HPFS;NFS;SMB;PROC;MSDOS等。
我們可以用命令 :cat /etc/fstab或者 df -T -h 來查看Linux的文件系統,
以我自己的linux為示例:
可以看出,Linux可以支持多種文件系統,者樣使他更加靈活。并且Linux擁有Virtual File System(虛擬文件系統),這使得用戶可以在同一系統下安裝許多不同的文件,并且為用戶提供了快速高效的文件訪問服務。
在文件系統的,xfs最為先進。xfs文件系統是全新64位的,快速且穩定,并且是具有可升級性的。它的i/o性能和可升級性增加了該系統的復雜性,所以xfs系統主要應用于相對高端的用戶。
ext系列的文件系統是由開放資源社區開放的日志文件,其中ext4最為可靠,etx3缺少現代文件系統所具有的解壓速度高的性能。ext4是ext3的后繼版本。ext4的發布,實現了向前向后兼容功能。
JFS是一種提供日志的字節級文件系統。該文件系統主要是為滿足服務器(從單處理器系統到高級處理器和群集系統)的高吞吐量和可靠性需求而設計開發的。與非日志文件系統相比,JFS文件系統的突出優點是快速重啟能力;缺點是使用JFS日志文件系統性能上會有一定損失,系統資源占用的比率也偏高。
這是比較常見的三種文件系統格式,介紹完文件系統格式后就說一下linux的文件系統。
linux發行版之間的差別很少,差別主要表現在系統管理的特色工具和軟件包管理方式的不同。目錄結構基本都是一樣的。Linux的文件系統是單個的樹狀結構。也就意味著整個系統只會有一個目錄。但是可以有多個分區。
分區和目錄的關系:
- 任何一個要分區都要掛載在目錄上才能進行讀寫。
- 目錄是邏輯上的,而分區是物理分區。
- 根目錄是系統所有文件和目錄所在的地方,必要掛載一個分區。
- 有些目錄不能獨立出去單獨劃為一個磁盤,比如:/dev,/etc。
劃分分區有哪些優點:
- 可以吧不同的資料分別管理來降低風險
- 方便檢索
相應命令 :
fdisk 查看分區表,會顯示出分區結構。
df 查看分區上可使用的空間
du 查看文件和目錄的使用空間
接下來就要說Linux的文件系統了
剛剛說過Linux整個系統目錄就相當于一個樹狀圖。在最頂端的目錄是所有文件的父目錄,我們稱為根,用/表示。
用ls命令可以查看根目錄下的所有子目錄。
以我的目錄為例介紹一下。
這是在根目錄查看的結果,最前面顯示的是各個文件的權限,文件權限有三個不同用戶,其中每三個為一組,第一段為文件所有者,第二段為所有者所在組,第三段為其他。它們分的權限有三個不同的,r代表讀,w代表寫,x代表執行,也可以用數字表示,他們分別為4,2,1。這些都是在創建文件時設定。
接下來介紹一下主要目錄:
/ :根目錄,所有文件的入口。
/bin:二進制可執行命令,系統所需的配置命令;
/boot:開始啟動過程所需的文件;
/dev:即設備驅動;
/home:普通用戶存儲其個人數據和配置文件的主目錄;
/root:系統管理員的主目錄;
/run:自上一次系統啟動以來啟動的進程的運行時數據。包括進程ID文件和鎖定文件,此目錄中的內容在重啟時重新創建;
/sbin:類似/bin目錄,系統管理命令,這里存放的是系統管理員使用的管理程序,一般不給普通用戶使用;
/tmp:供臨時文件使用的全局可寫空間,目錄存放程序在運行時產生的信息和數據;
/usr:最龐大的目錄,安裝的軟件、共享的庫,包括文件和靜態制度程序數據;
/var:特定于此系統的可變數據,在系統啟動之間保持永久性;
/lib:根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文件;
/mnt:系統管理員臨時安裝文件系統的安裝點;
/proc:文件系統是一個偽的文件系統,就是說它是一個實際上不存在的目錄,因而這是一個非常特殊的目錄;
在這么多文件中,又分了好幾個文件類型,其中有以下幾種:
- 普通文件:C語言元代碼、SHELL腳本、二進制的可執行文件等。分為純文本和二進制。
- 目錄文件:目錄,存儲文件的唯一地方。
- 鏈接文件:指向同一個文件或目錄的的文件。
- 特殊文件:與系統外設相關的,通常在/dev下面。分為塊設備和字符設備。
這么多文件,通過軟連接和硬鏈接兩連接方式:
軟連接:又稱為符號鏈接,保存了其代表的文件的絕對路徑,是另外一種文件,在硬盤上有獨立的區塊,訪問時替換自身路徑。
硬鏈接:與普通文件沒什么不同,inode 都指向同一個文件在硬盤中的區塊
Linux不使用文件名擴展來識別文件的類型。相反,Linux根據文件的頭內容來識別其類型。為了提高文件可讀性您仍可以使用文件名擴展,但這對 Linux 系統來說沒有任何作用。不過,有一些應用程序,比如 Web 服務器,可能使用命名約定來識別文件類型,但這只是特定的應用程序的要求而不是 Linux 系統本身的要求。
Linux通過文件訪問權限來判斷文件是否為可執行文件。任何一個文件都可以賦予可執行權限,這樣程序和腳本的創建者或管理員可以將它們識別為可執行文件。這樣做有利于安全。保存到系統上的可執行的文件不能自動執行,這樣就可以防止許多腳本病毒。
文件目錄管理命令:
cat
查看文件的內容。全程式concatenate的意思,將文件內容連續輸出到屏幕上。第一行到最后一行顯示
tac
和cat剛好相反 是從最后一行到第一行的方式查看。
cat有個比較不好的地方時當文件比較大時候沒辦法看清楚,這個時候可以用more或者Less命令。
more
如果使用grep或者find等命令時,可以配合使用more一頁一頁的查看。如果看到一半想退出,則敲入’q’即可退出。
文件目錄與權限: chmod
文件查找:
which
該命令用于查詢通過PATH路徑到該路徑內查找可執行文件。
find
該命令用于在指定路徑下查找文件。不是通過數據來查詢,所以速度會比較慢。
原創文章,作者:phosphor,如若轉載,請注明出處:http://www.www58058.com/76134