Linux文件系統概述

来源:http://www.cnblogs.com/yan-lei/archive/2017/09/27/7601056.html
-Advertisement-
Play Games

Unix文件是以位元組序列組成的信息載體(container),內核不解釋文件的內容。 Linux文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有系統的結構,所有Linux用戶和程式看到的文件、目錄、軟鏈接及文件保護信息等都存儲在其中。 Linux最早的文件系統是Minux,但是專 ...


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的文件系統採用階層式的樹狀目錄結構,在該結構中的最上層是根目錄“/”,然後再根目錄下再建立其它的目錄。

文件或目錄名由除“/”和空字元“\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 -lh
    drwxr-xr-x 2 root root 4.0K Sep 26 12:20 yanlei
  • 鏈接文件:用於不同目錄下的文件的共用

    [root@AmorLei tmp]# ls -lh yan.softlink
    lrwxrwxrwx 1 root root 8 Sep 26 12:26 yan.softlink -> yan.test
  • 設備文件:包括塊設備文件和字元設備文件

    b代表區塊(block)設備,c代表字元(character)設備

    [root@AmorLei /]# ls -la /dev/tty
    crw-rw-rw- 1 root tty 5, 0 Sep 15 20:35 /dev/tty
  • 管道(pipe,FIFO)文件:提供進程間通信的一種方式


  • 套接字(socket)文件:該文件類型與網路通信有關

    [root@AmorLei /]# ls -lh /var/lib/mysql/mysql.sock
    srwxrwxrwx 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

回到頂部


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1》rsync概述 rsync的優點與不足 rsync與傳統的cp、tar備份方式相比,rsync具有安全性高、備份迅速、支持增量備份等優點,通過rsync可以解決對實時性要求不高的數據備份需求,例如定期的 備份文件伺服器數據到遠端伺服器,對本地磁碟定期做數據鏡像等。 隨著應用系統規模的不斷擴大,對 ...
  • 以下是playbook的內容。它的處理流程是: 1.先在本地下載apr,apr-util,httpd共3個.tar.gz文件。 2.解壓這3個文件。 3.安裝pcre和pcre-devel依賴包。 4.編譯安裝apr。 5.編譯安裝apr-util。 6.編譯安裝httpd。 編譯完成後,還有一系列 ...
  • 摘要:涉及到網路安全這一塊,想必大家都聽過CA吧。像百度、淘寶、京東等這些知名網站,每年都要花費一筆money來買CA證書。但其實簡單的企業內的CA認證,我們自己就可以實現,今天小編我就講解一下怎麼在企業局部實現CA認證。 一、CA介紹 1、電子商務認證授權機構(CA, Certificate Au ...
  • 如果我們的系統要用GUI(圖形界面介面),這時LCD設備驅動程式就應該編寫成frambuffer介面,而不是像之前那樣只編寫操作底層的LCD控制器介面。 什麼是frambuffer設備? frambuffer設備層是對圖像設備的一種抽象,它代表了視頻硬體的幀緩存,使得應用程式通過定義好的介面就可以訪 ...
  • Sed Sed:是一款流編輯工具,用來對文本進行過濾與替換工作,特別是當你想對幾十個配置文件進行統一修改時,你會體會到它的魅力;Sed通過一次僅讀取一行內容來對某 些指令進行處理後輸出,所以Sed更適合處理大數據文件;Sed通過文件或管道讀取文件內容,但它預設並不直接修改源文件,而是將讀入的內容複製 ...
  • 一、IP地址 IP 地址是網際網路上的每個網路節點在全球範圍內的唯一標識符,一個 IP 地址唯一標識一個主機(嚴格來說是標識一個網卡介面 network interface card)。 現在應用最為廣泛的是 IPv4 地址,已逐漸向 IPv6 地址切換。IPv4 地址為 32 位長,IPv6 地址為 ...
  • 1 依賴的安裝 因為JDK、Tomcat和MySQL的安裝過程中需要從網上下載部分支持包才可以繼續,所以需要提前安裝好依賴。 在windows中的控制面板中有添加/卸載程式,可以進行程式的安裝、卸載和查看功能。 在Linux中的rpm命令和windows中的添加/卸載程式功能很相似,也可以進行程式的 ...
  • echo:顯示一段文字 比如: echo hello,串口上就顯示hello echo hello > /dev/tty1, LCD上便顯示hello欄位 cat:查看一個文件的內容 比如: cat Makeflie,串口上就顯示Makeflie文件的內容 cat Makeflie > /dev/t ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...