首頁 > 軟體

Linux檔案系統介紹

2022-05-31 22:00:29

一、簡介

檔案系統就是分割區或磁碟上的所有檔案的邏輯集合。 
檔案系統不僅包含著檔案中的資料而且還有檔案系統的結構,所有Linux 使用者和程式看到的檔案、目錄、軟連線及檔案保護資訊等都儲存在其中。 
不同Linux發行版本之間的檔案系統差別很少,主要表現在系統管理的特色工具以及軟體包管理方式的不同,檔案目錄結構基本上都是一樣的。

檔案系統有多種型別

  • ext2 : 早期linux中常用的檔案系統;
  • ext3 : ext2的升級版,帶紀錄檔功能;
  • RAMFS : 記憶體檔案系統,速度很快;
  • iso9660:光碟或光碟映象;
  • NFS : 網路檔案系統,由SUN發明,主要用於遠端檔案共用;
  • MS-DOS : MS-DOS檔案系統;
  • FAT : Windows XP 作業系統採用的檔案系統;
  • NTFS : Windows NT/XP 作業系統採用的檔案系統。

二、分割區與目錄

檔案系統位於磁碟分割區中;一個硬碟可以有多個分割區,也可以只有一個分割區;一個分割區只能包含一個檔案系統。 
Linux檔案系統與Windows有較大的差別。Windows的檔案結構是多個並列的樹狀結構,最頂部的是不同的磁碟(分割區),如 C、D、E、F等。Linux的檔案結構是單個的樹狀結構,根目錄是“/”其他目錄都要位於根目錄下。 
每次安裝系統的時候我們都會進行分割區,

Linux下磁碟分割區和目錄的關係

  • 任何一個分割區都必須對應到某個目錄上,才能進行讀寫操作,稱為“掛載”。
  • 被掛載的目錄可以是根目錄,也可以是其他二級、三級目錄,任何目錄都可以是掛載點。
  • 目錄是邏輯上的區分。分割區是物理上的區分。
  • 根目錄是所有Linux的檔案和目錄所在的地方,需要掛載上一個磁碟分割區。

下圖是常見的目錄和分割區的對應關係:

為什麼要分割區,如何分割區?

  • 可以把不同資料,分別放入不同分割區中管理,降低風險。
  • 大硬碟搜尋範圍大,效率低。
  • /home、/var、/usr、/local 經常是單獨分割區,因為經常會操作,容易產生碎片。

為了便於定位和查詢,Linux中的每個目錄一般都存放特定型別的檔案,

各種Linux發行版本的常見目錄

  • / : 根目錄,只能包含目錄,不能包含具體檔案。
  • /bin: bin是Binary的縮寫,存放可執行檔案。很多命令就對應/bin目錄下的某個程式,例如 ls、cp、mkdir。/bin目錄對所有使用者有效。
  • /dev: dev是Device(裝置)的縮寫,硬體驅動程式。例如音效卡、磁碟驅動等,還有如 /dev/null、/dev/console、/dev/zero、/dev/full 等檔案。
  • /etc: 主要包含系統管理所需要的組態檔和使用者、使用者組組態檔。
  • /lib: 主要包含共用庫檔案,類似於Windows下的DLL;有時也會包含核心相關檔案。
  • /boot: 系統啟動檔案,例如Linux核心、載入程式等。
  • /home: 使用者工作目錄(主目錄),每個使用者都會分配一個目錄。
  • /mnt: 臨時掛載檔案系統。這個目錄一般是用於存放掛載儲存裝置的掛載目錄的,例如掛載CD-ROM的/mnt/cdrom目錄,然後進入該目錄就可以檢視光碟機裡的內容了。
  • /proc:這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接存取這個目錄來獲取系統資訊。這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案。
  • /tmp: 臨時檔案目錄,系統重啟後不會被儲存。
  • /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
  • /run:是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重啟時,這個目錄下的檔案應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
  • /usr: 這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。user目下的檔案比較混雜,包含了管理命令、共用檔案、庫檔案等,可以被很多使用者使用。
    • /usr/bin:系統使用者使用的應用程式。

    • /usr/sbin:超級使用者使用的比較高階的管理程式和系統守護程式。

    • /usr/src:核心原始碼預設的放置目錄。

  • /var: 這個目錄中存放著在不斷擴充著的東西,主要包含一些可變長度的檔案,會經常對資料進行讀寫,例如紀錄檔檔案和列印佇列裡的檔案。
  • /sbin: s就是Super User的意思,和 /bin 類似,主要包含可執行檔案,不過一般是系統管理所需要的,不是所有使用者都需要。
  • /media:linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。
  • /opt: 這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
  • /root:該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。
  • /srv: 該目錄存放一些服務啟動之後需要提取的資料。

在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部檔案。

  • /etc: 上邊也提到了,這個是系統中的組態檔,如果你更改了該目錄下的某個檔案可能會導致系統不能啟動。
  • /bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。 
    值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
  • /var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的紀錄檔產生,而這些紀錄檔就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。

三、常用檔案管理命令

你可以通過下面的命令來管理檔案:

  • cat filename 檢視檔案內容。
  • cd dirname 改變所在目錄。
  • cp file1 file2 複製檔案或目錄。
  • file filename 檢視檔案型別(binary, text, etc)。
  • find filename dir 搜尋檔案或目錄。
  • head filename 顯示檔案的開頭,與tail命令相對。
  • less filename 檢視檔案的全部內容,可以分頁顯示,比more命令要強大。
  • ls dirname 遍歷目錄下的檔案或目錄。
  • mkdir dirname 建立目錄。
  • more filename 檢視檔案的全部內容,可以分頁顯示。
  • mv file1 file2 移動檔案或重新命名。
  • pwd: 顯示使用者當前所在目錄。
  • rm filename 刪除檔案。
  • rmdir dirname 刪除目錄。
  • tail filename 顯示檔案的結尾,與head命令相對。
  • touch filename 檔案不存在時建立一個空檔案,存在時修改檔案時間戳。
  • whereis filename 檢視檔案所在位置。
  • which filename 如果檔案在環境變數PATH中有定義,那麼顯示檔案位置。

四、使用者和群組配額

使用者和群組配額可以讓管理員為每個使用者或群組分配固定的磁碟空間。 
管理員有兩種方式來分配磁碟空間:

  • 軟限制:如果使用者超過指定的空間,會有一個寬限期,等待使用者釋放空間。
  • 硬限制:沒有寬限期,超出指定空間立即禁止操作。

下面的命令可以用來管理配額:

  • quota: 顯示磁碟使用情況以及每個使用者組的配額。
  • edquota: 編輯使用者和群組的配額。
  • quotacheck: 檢視檔案系統的磁碟使用情況,建立、檢查並修復配額檔案。
  • setquota: 設定配額。
  • quotaon: 開啟使用者或群組的配額功能。
  • quotaoff: 關閉使用者或群組的配額功能。
  • repquota: 列印指定檔案系統的配額。

到此這篇關於Linux檔案系統的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com