Linux文件系統

      網友投稿 954 2025-04-03

      Linux文件系統


      Linux/Unix的設計哲學是一切皆文件,Linux以文件的形式對計算機中的資源和數據進行管理。 反應在Linux上的文件類型就是: 普通文件,目錄文件(文件夾),設備文件,鏈接文件(軟鏈接和硬鏈接), 管道文件,Socket套接字文件等等。而這些種類繁多的文件被Linux使用目錄樹進行管理。 所謂的目錄樹就是以根目錄 / 為主,向下呈現分支狀的一種數據結構。

      Inode

      inode是linux/unix文件系統和硬盤存儲的基礎,如果理解了inode, 將會對我們學習如何將復雜的概念抽象成簡單概念有重大幫助。

      文件存儲在硬盤上,硬盤的最小存儲單位是扇區(Sector),每個扇區存儲512字節(0.5kb)。 操作系統讀取硬盤的數據時,不會一個扇區一個扇區的讀取,這樣做效率較低,而是一次讀取多個扇區, 即一次讀取一個塊(block)。塊由多個扇區組成,是文件讀取的最小單位,塊的最常見的大小是4kb, 約為8個連續的扇區組成。文件數據存儲在塊中,?但還需要一個空間來存儲文件的元信息metadata,如文件擁有者,創建時間,權限,大小等。 這種存儲文件元信息的區域就叫inode,譯為索引節點。 每個文件都有一個inode,存儲文件的元信息。 使用 stat 命令可以查看文件的inode信息。每個inode都有一個號碼, Linux/Unix操作系統不使用文件名來區分文件,而是使用inode號碼區分不同的文件。

      inode也需要消耗硬盤空間,所以在格式化硬盤的時候,操作系統會將硬盤分為2個區域, 一個區域存放文件數據,另一個區域存放inode所包含的信息, 存放inode的區域被稱為inode table。

      文件的inode信息:

      文件類型

      普通文件是指txt,html,pdf等等的這樣應用層面的文件類型, 用戶可以根據訪問權限對普通文件進行訪問,修改和刪除。

      目錄也是一種文件,打開目錄實際上是打開目錄文件。 目錄文件包含了它目錄下的所有文件名以及指向這些文件的指針。

      鏈接文件分為符號鏈接(軟鏈接)文件和硬鏈接文件

      硬鏈接(Hard Link):硬鏈接的文件擁有相同的inode,因為操作系統是靠inode來區分文件的, 2個inode相同的文件,就代表它們是一個文件。 刪除一個文件并不會對其他擁有相同inode的文件產生影響,只有當inode相同的所有文件被刪除了, 這個文件才會被刪除。換言之,你建立一個文件的硬鏈接,這個文件和硬鏈接它們的inode是相同的, 無論你刪除的是硬鏈接還是源文件,都不會對彼此造成影響,除非你把硬鏈接和源文件都刪除, 這個文件才被刪除。

      符號鏈接(軟鏈接)(Symbolic Link): 符號鏈接類似于Windows上的快捷方式,它保存了源文件的路徑。 當符號鏈接被刪除時,并不會影響源文件。但是當源文件被刪除時,符號鏈接就找不到源文件了。

      軟鏈接和硬鏈接:

      設備文件分為塊設備文件和字符設備文件,設備文件一般存于/dev目錄下。

      字符設備文件:?字符設備是依照先后順序被存取數據的設備,通常不支持隨機存取, 此類設備可以按字節/字符來讀取數據,?如鍵盤,串口等等。

      塊設備文件:?塊設備是可以被隨機存取數據的設備,應用程序可以訪問塊設備上任何一塊位置。 塊設備以塊的方式讀取數據,在windows下也稱為簇,塊設備不支持字符的方式尋址。?如硬盤,軟盤,光碟等等。

      字符設備與塊設備最根本的區別就是它們是否可以被隨機訪問。?如鍵盤,當我們在鍵盤上敲下一個單詞: "word"的時候, 那么系統肯定是需要按照順序來進行讀取word的字節流(字符流)的,隨機訪問在此時是沒有意義的。

      管道文件一般用于進程間通信,使用mkfifo命令可以創建一個管道文件。

      套接字文件被用于網絡進程之間的通信,既可以使2臺不同的機器進行通信,也可以用于本機的Socket網絡程序。

      Linux目錄樹

      所有可操作的計算機資源都存在于目錄樹這個結構中,對計算資源的訪問,可以看做是對這棵目錄樹的訪問。

      linux目錄樹:

      boot: boot目錄存放系統啟動引導時的文件。

      bin: bin目錄存放可執行的二進制命令文件,這些命令一般是普通的基本程序,主要用于具體應用,如: ls , ln , less , more , cp , cat等等。

      sbin: sbin目錄存放的也是可執行的二進制文件,這些目錄是系統的基本命令,主要用于系統的基本管理,如: shutdown , reboot等等。

      etc: etc目錄存放了系統所需的配置文件,如/etc/passwd記錄了系統的用戶,/etc/group記錄了用戶組等等,非常重要。

      proc: proc是一個虛擬目錄,它是當前系統內存的映射,可以通過這個目錄獲取正在系統當前的一些信息。

      opt: opt目錄存放可選的應用程序包。

      dev: dev目錄存放設備文件。

      mnt: mnt目錄一般是系統用戶或管理員臨時掛載設備的目錄。

      media: 當有設備插入計算機后,會自動掛載到media目錄。

      Linux文件系統

      sys: sys目錄存放系統硬件設備的驅動程序的信息。

      usr: usr目錄存放了系統的所有的共享文件,庫文件等等,是最終要的目錄之一。

      lib: lib目錄存放了系統所需的庫文件。

      lib64: lib64一般是64位系統才會有的目錄,存放的也是系統所需的庫文件。

      tmp: tmp目錄存放了系統或程序產生的臨時文件。

      var: var目錄存放了系統運行時需要改變數據的文件。

      run: run目錄存放了系統啟動以來的信息,當系統被重啟后,這個目錄會被清空。

      srv: srv目錄存放了某些服務啟動后需要提取的文件。

      home: home目錄是普通用戶的目錄。

      root: root目錄是系統超級管理的目錄。

      lost+found: 這個目錄一般是空的,當系統被非法關閉或操作后,這里可能就會生成一些文件。

      Linux Unix

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:BAT大廠面試必問專題之Java多線程
      下一篇:開源構建5G MEC生態之路
      相關文章
      亚洲午夜电影在线观看| 亚洲中文无码卡通动漫野外| 亚洲a∨无码男人的天堂| 亚洲AV无码一区二区三区DV| 综合亚洲伊人午夜网| 亚洲日本韩国在线| 亚洲精品无码久久久久APP | 亚洲成人黄色在线| 亚洲A丁香五香天堂网 | 亚洲大尺度无码无码专线一区| 亚洲一级毛片中文字幕| 亚洲免费电影网站| 亚洲AV成人无码天堂| 亚洲专区一路线二| 亚洲国产视频久久| 亚洲午夜无码久久久久软件| 亚洲私人无码综合久久网| 亚洲伊人久久大香线蕉AV| 亚洲av日韩av永久无码电影| 亚洲∧v久久久无码精品| 亚洲福利视频一区二区三区| 亚洲性无码av在线| 亚洲日日做天天做日日谢| 亚洲人成网站18禁止| 亚洲av无码兔费综合| 国产精品亚洲精品爽爽| 亚洲国产精品一区二区三区久久| 亚洲mv国产精品mv日本mv| 亚洲中文字幕无码亚洲成A人片| 亚洲精品国产av成拍色拍| 亚洲精品成a人在线观看夫| 久久亚洲AV成人无码国产最大| 亚洲成a人片在线观看国产| 久久精品国产亚洲5555| 国产亚洲精品无码成人| 全亚洲最新黄色特级网站 | 2022年亚洲午夜一区二区福利| 亚洲妓女综合网99| 在线观看亚洲AV每日更新无码| 亚洲精品无码久久久久秋霞| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 |