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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...