Linux檔案系統概述,linux檔案概述

來源:互聯網
上載者:User

Linux檔案系統概述,linux檔案概述

Unix檔案是以位元組序列組成的資訊載體(container),核心不解釋檔案的內容。

Linux檔案系統中的檔案是資料的集合,檔案系統不僅包含著檔案中的資料而且還有系統的結構,所有Linux使用者和程式看到的檔案、目錄、軟連結及檔案保護資訊等都儲存在其中。

Linux最早的檔案系統是Minux,但是專門為Linux設計的檔案系統---擴充檔案系統第二版(EXT2)被設計 出來並添加到Linux中,這對Linux產生了重大影響。

Linux常用的檔案系統
  • ext2:ext2的升級版本ext3是Linux預設的檔案系統

  • swap:作為交換分區來使用,在安裝Linux系統時必須要建立

  • vfat:相容Windows作業系統,主要是FAT16、FAT32

  • NFS:網路檔案系統,是Linux的獨到之處,方便在區域網路中實現檔案的共用,可以實現多台主機共用一台主機的檔案系統

永久連結和軟連結

命令格式:

$ ln P1 P2

用來建立一個新的永久連結,即為由路徑P1標識的檔案建立一個路徑名為P2的永久連結。

永久連結有兩方面的限制
  • 不允許使用者給目錄建立永久連結。因為這可能把分類樹變成環形樹,從而就不可能通過名字定位一個檔案。

  • 只有在同一檔案系統中的檔案之間才能建立連結。這帶來比較大的限制,因為現代Unix系統中可能包含多種檔案系統,這些檔案系統位於不同的磁碟和/或分區,使用者也無法知道它們之間的物理劃分。

軟連結(soft link)[也稱符號連結(symbolic link)]

符號連結是短檔案,這些檔案包含有另一個檔案的任意一個路徑名。路徑名可以指向位於任意一個檔案系統的任意檔案或目錄,甚至可以指向一個不存在的檔案。

命令格式:

$ ln -s P1 P2

建立一個路徑名為P2的新軟連結,P2指向路徑名P1。

Linux目錄結構

Linux的檔案系統採用階層式的樹狀目錄結構,在該結構中的最上層是根目錄“/”,然後再根目錄下再建立其它的目錄。

檔案或目錄名由除“/”和Null 字元“\0”之外的任意ASCII字元序列組成(一些作業系統允許以多種自負表示檔案名稱,例如:Unicode)。大多數檔案系統對檔案名稱的長度都有限制,通常不能超過255個字元。

Linux中無論作業系統管理幾個磁碟分割,這樣的分類樹只有一個。從結構上講,個磁碟分割上的樹型目錄不一定是並列的。

常用目錄的作用
  • / 根目錄

  • /bin 命令儲存目錄(普通使用者就可以讀取的命令)

  • /boot 啟動目錄,啟動相關檔案

  • /dev 裝置檔案儲存目錄

  • /etc 設定檔儲存目錄

  • /home 普通使用者的家目錄

  • /lib 系統庫儲存目錄

  • /mnt 系統掛載目錄

  • /media 掛載目錄

  • /root 超級使用者的家目錄

  • /tmp 臨時目錄

  • /sbin 命令儲存目錄(超級使用者才能使用的目錄)

  • /proc 直接寫入記憶體的

  • /sys

  • /usr 系統軟體資來源目錄

    /usr/bin 系統命令(普通使用者)
    /usr/sbin 系統命令(超級使用者)
    /usr/include:標準標頭檔
    /usr/src:核心原始碼
  • /var 系統相關文檔內容

根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來儲存系統命令的。

proc和sys目錄不能直接操作,這兩個目錄儲存的是記憶體的過載點。

Linux檔案類型
  • 普通檔案:通常是流式檔案。

    [root@AmorLei tmp]# ls -lh yan.test-rw-r--r-- 1 root root 13 Sep 22 15:05 yan.test
  • 目錄檔案:用於表示和管理系統中的全部檔案

    [root@AmorLei tmp]# ls -lhdrwxr-xr-x 2 root root 4.0K Sep 26 12:20 yanlei
  • 連結檔案:用於不同目錄下的檔案的共用

    [root@AmorLei tmp]# ls -lh yan.softlinklrwxrwxrwx 1 root root 8 Sep 26 12:26 yan.softlink -> yan.test
  • 裝置檔案:包括塊裝置檔案和字元裝置檔案

    b代表區塊(block)裝置,c代表字元(character)裝置

    [root@AmorLei /]# ls -la /dev/ttycrw-rw-rw- 1 root tty 5, 0 Sep 15 20:35 /dev/tty
  • 管道(pipe,FIFO)檔案:提供處理序間通訊的一種方式


  • 通訊端(socket)檔案:該檔案類型與網路通訊有關

    [root@AmorLei /]# ls -lh /var/lib/mysql/mysql.socksrwxrwxrwx 1 mysql mysql 0 Sep 26 12:20 /var/lib/mysql/mysql.sock
檔案描述符與索引節點

Unix對檔案的內容和描述檔案的資訊給出了清楚的區分。除了裝置檔案和特殊檔案系統檔案外,每個檔案都由字元序列組成。

檔案系統處理檔案需要的所有資訊包含在一個名為索引節點(inode)的資料結構中。每個檔案都有自己的索引節點,檔案系統用索引節點來標識檔案。

檔案系統至少提供POSIX標準中指定的如下屬性:

  • 檔案類型

  • 與檔案相關的永久連結個數

  • 以位元組為單位的檔案長度

  • 裝置標識符

  • 在檔案系統中表示檔案的索引節點號

  • 檔案擁有者的UID

  • 檔案的使用者組ID

  • 幾個時間戳記,表示索引節點狀態的改變的時間、最後訪問時間即最後修改時間

  • 存取權限和檔案模式

存取權限和檔案模式

檔案的潛在使用者分為三種類型

  • 作為檔案所有者的使用者

  • 同組使用者,不包括所有者

  • 所有剩下的使用者(其他)

有三種類型的存取權限---讀、寫、執行,每組使用者都有這三種許可權。

分區

在Windows作業系統中,是先將物理地址分開,再在分區上建立目錄。在Windows作業系統中,所有路徑都是從盤符開始,如C:\Program file。

Linux正好相反,是先有目錄,再將物理地址映射到目錄中。在Linux作業系統中,所有路徑都是從根目錄開始。Linux預設分為3個分區,分別是boot分區、swap分區和根分區。

掛載

Linux下的分區需要掛載到目錄後才能使用,掛載的意義就是把磁碟分割的內容放在某個目錄下。這個把目錄和分區對應的過程叫做掛載(Mount)而這個掛載在檔案樹中的位置就是掛載點。

當要使用某個裝置時,例如要讀取硬碟中的一個格式化好的分區、光碟片或軟體等裝置時,必須先把這些裝置對應到某個目錄上,而這個目錄就稱為“掛載點(mount point)”,這樣才可以讀取這些裝置,將物理分區細節屏蔽掉,使用者只有統一的邏輯概念,所有的東西都是檔案。

參考資料:

    深入理解Linux核心                Daniel P.Bovet & Marco Cesati

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.