搜尋
首頁運維linux運維linux檔案是什麼樣的

linux檔案是什麼樣的

Nov 09, 2022 pm 07:54 PM
linux

linux檔案就是目錄(檔案)。為了方便管理檔案和目錄,Linux系統將它們組織成一個以根目錄「/」開始的倒置的樹狀結構。 Linux中的目錄和Windows系統中的資料夾類似,不同之處在於,Linux系統中的目錄也被當作檔案看待。

linux檔案是什麼樣的

本教學操作環境:linux7.3系統、Dell G3電腦。

linux檔案就是目錄(檔案)。

為了方便管理檔案和目錄,Linux 系統將它們組織成一個以根目錄 / 開始的倒置的樹狀結構。 Linux 中的目錄,和 Windows 系統中的資料夾類似,不同之處在於,Linux 系統中的目錄也被當作檔案看待。

在 Linux 作業系統中,所有的檔案和目錄都被組織成以一個根節點「/」開始的倒置的樹狀結構,如圖 1 所示。

linux檔案是什麼樣的
圖1 Linux 系統檔案與目錄組織示意圖

其中,目錄就相當於Windows 中的資料夾,目錄中存放的既可以是文件,也可以是其他的子目錄,而檔案中儲存的是真正的資訊。

檔案系統的最頂層是由根目錄開始的,系統使用“/”來表示根目錄,在根目錄之下的既可以是目錄,也可以是文件,而每一個目錄中又可以包含(子)目錄或檔案。如此反覆就可以構成一個龐大的檔案系統。

其實,使用這種樹狀、具有層次的檔案結構主要目的是方便檔案系統的管理和維護,想像一下,如果所有的檔案都放在一個目錄下,其檔案系統的管理和維護將變成一場惡夢。

現實中也有許多類似的例子,例如在整個行政管理體制中,村民就相當於文件,他們住在一個村莊中,村莊就是存放村民的目錄。許多村莊又組成了個鄉,這個鄉就相當於儲存村的目錄,依此類推,最終就建構出了一個龐大的行政區域管理結構圖。

注意,目錄名稱或檔案名稱都是區分大小寫的,如 dog、DOG 和 Dog 為 3 個不同的目錄或檔案。完整的目錄或檔案路徑是由一連串的目錄名稱所組成的,其中每一個目錄由「/」來分隔。如 cat 的完整路徑是 /home/cat。

在檔案系統中,有兩個特殊的目錄,一個是使用者所在的工作目錄,即當前目錄,可用一個點「.」表示;另一個是當前目錄的上一層目錄,也叫父目錄,用兩點「..」表示。

如果一個目錄或檔案名稱是以一個點開始,就表示這個目錄或檔案是一個隱藏目錄或檔案。即以預設方式査找(後續會講查找指令)時,不顯示該目錄或檔案。

為了方便管理和維護,Linux 系統採用了檔案系統層次標準,也稱為FHS 標準,它規定了根目錄下各個目錄應該存在哪些類型的檔案(或子目錄),比如說,在/bin 和/sbin 目錄中存放的應該是可執行檔

linux檔案系統(filesystem)

硬碟的物理組成

首先簡單認識硬碟的實體結構,整體來說,硬碟結構包括: 碟片、磁頭、碟片主軸、控制馬達、磁頭控制器、資料轉換器、介面、快取等幾個部分。所有的盤片(一般硬碟裡有多個盤片,盤片之間平行)都固定在一個主軸上。在每個盤片的儲存面上都有一個磁頭,磁頭與盤片之間的距離很小(所以劇烈震動容易損壞),磁頭連在一個磁頭控制器上,統一控制各個磁頭的運動。磁頭沿著盤片的半徑方向動作,而盤片則按照指定方向高速旋轉,這樣磁頭就可以到達盤片上的任意位置了。

一個磁碟由多個圓環組成,這些圓環就叫做磁軌,而一個磁軌又分成多個磁區(sector)一個一個磁區是512Byte,硬碟所有磁碟相同位置的圓環組成一個磁柱(Cylinder)。硬碟容量為:512Byte * 扇區數* 磁柱數*磁頭數

前面三個數都好理解,可能有人不理解乘以磁頭數是乾嘛,因為前面三個數相當於計算一個圓的儲存量,而一個磁頭讀取一個圓,所以乘以磁頭數量就等於圓面積乘以圓數量。

磁碟的分割

#磁碟分割的最小單位是磁柱(Cylinder)

磁碟的分割其實就是記錄一個分割區(partition)的起始磁柱與結束磁柱,而這些被記錄的資訊都存放在主要開機磁區( Master Boot Recorder, MBR )。事實上, MBR 就是在一塊硬碟的第零軌上面,這也是電腦開機之後要去利用該硬碟時, 必須讀取的第一個區域。

思考一個問題:MBR的大小是不是固定的?

我們這麼想,資料的儲存順序為 : MBR 其他資料 。如果MBR的大小不固定,例如原來MBR存放了3個partition的訊息,現在我們要新增一個partition,會出現什麼後果?後果就是所有的「其他資料」都要順序的向後移動一個partition資訊的距離。是不是想到了數組的增刪了。所以我們希望將MBR固定,事實也是如此MBR被固定為只能存放4個partition的資訊。這樣似乎好多了,但是只有四個partition,夠用嗎?設計者當然也想到了這個問題,所以將partition分為Primary和Extended兩類(E最多只能有一個)。其中P是可以直接使用的,而E不能直接使用,E相當於一個指針,指向擴充的partition的位置資訊儲存處。

filesystem

filesystem也即檔案系統,每個oartition都可以由自己的filesystem,例如fat32, ntfs之類的

不同的partuition雖然filesystem不一樣,但是都是用來儲存資料的。前面我們介紹了硬碟的最小儲存單元為sector(磁區,一般為512Byte),但是filesystem的最小儲存單元不是sector而是block。 block是sector的2的次方倍數,磁頭一次讀取一個block的資料。所以如果block過小,則讀取一個檔案時磁頭需要讀取較多數量的block,這樣效率很低,但是block也不能過大,應為一個block中只能存在一個檔案,例如block大小為100M ,那麼如果有100.1M的文件,則需要佔用兩個block,浪費了大量空間。

superblock

每個filesystem中的第一個block稱為superblock。 superblock的作用是儲存filesystem的大小,空的和填滿的區塊以及其他的總書和諸如此類的資訊。也就是說如果你要使用一個filesystem的時候,第一個要經過的就是superblock這個塊了,如果superblock壞了,這個partition大概也回天乏術了。

linux的EXT2檔案系統

#我們既然是學習linux,自然要學習linux的filessystem,我們以linux最標準的EXT2做說明。

EXT2中的filesystem分為inode區和block區,其中inode儲存檔案的相關屬性等信息,而block區儲存檔案的內容,每個inode都充當指針pointer的作用,它能描述文件的相關屬性並指向該檔案所在block的位置。 blocks與inodes的數量在一開始格式化的時候就已經固定了。

整個filesystem示意圖:

linux檔案是什麼樣的

  • SuperBlock:如前所述, Superblock 是記錄整個filesystem 相關資訊的地方, 沒有Superblock ,就沒有這個filesystem 了。他所記錄的資訊主要有:
    • block 與inode 的總量;
    • 未使用與已使用的inode / block 數量;
    • 一個block 與一個inode 的大小;
    • filesystem 的掛載時間、最近一次寫入資料的時間、最近一次檢驗磁碟(fsck) 的時間等檔案系統的相關資訊;
    • 一個valid bit 數值,若此檔案系統已掛載,則valid bit 為0 ,若未被掛載,則valid bit 為1 。
  • Group Description:紀錄此block 由由何處開始記錄;
  • Block bitmap:此處記錄那個block 有沒有被使用;
  • # Inode bitmap:此處記錄那個inode 有沒有被使用;
  • Inode table:為每個inode 資料存放區;
  • Data Blocks:為每個block 資料存放區。

linux檔案系統的運作

#我們知道硬碟的存取速度相對於記憶體來說是很慢的,linux為了提高整體的速度,採用非同步處理的方式。

什麼是非同步呢?舉例來說:『當系統讀取了某一個檔案, 則該檔案所在的區塊資料會被載入到記憶體當中,所以該磁碟區塊就會被放置在主記憶體的緩衝快取區中, 若這些區塊的資料被改變時,剛開始資料僅有主記憶體的區塊資料會被改變, 而且在緩衝區當中的區塊資料會被標記為『 Dirty ’,這個時候磁碟實體區塊尚未被修正!所以也即表示,這些『 Dirty 』區塊的資料必需回寫到磁碟當中, 以維持磁碟實體區塊上的資料與主記憶體中的區塊資料的一致性。 ’

所以linux的關機真的要注意,否則可能會造成檔案的遺失甚至是磁碟的損毀! ! !

mount point

所以linux的關機真的要注意,否則可能會造成檔案的遺失甚至是磁碟的損毀! ! !

mount point

#我們上面提到的都是關於檔案系統(filesystem),但要能夠讓我們的Linux 使用的話, 非得『掛載(mount)』上我們的Linux 系統才行啊!剛剛我們上面提到了目錄可以記錄檔案名稱與 inode 的相關信息,此外, 目錄也是讓我們得以跟 filesystem 產生對應的入口點。因此,我們稱那個入口點目錄為『掛載點 (mount point) 』

相關推薦:《Linux影片教學

以上是linux檔案是什麼樣的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Linux:看看其基本結構Linux:看看其基本結構Apr 16, 2025 am 12:01 AM

Linux的基本結構包括內核、文件系統和Shell。 1)內核管理硬件資源,使用uname-r查看版本。 2)EXT4文件系統支持大文件和日誌,使用mkfs.ext4創建。 3)Shell如Bash提供命令行交互,使用ls-l列出文件。

Linux操作:系統管理和維護Linux操作:系統管理和維護Apr 15, 2025 am 12:10 AM

Linux系統管理和維護的關鍵步驟包括:1)掌握基礎知識,如文件系統結構和用戶管理;2)進行系統監控與資源管理,使用top、htop等工具;3)利用系統日誌進行故障排查,借助journalctl等工具;4)編寫自動化腳本和任務調度,使用cron工具;5)實施安全管理與防護,通過iptables配置防火牆;6)進行性能優化與最佳實踐,調整內核參數和養成良好習慣。

了解Linux的維護模式:必需品了解Linux的維護模式:必需品Apr 14, 2025 am 12:04 AM

Linux維護模式通過在啟動時添加init=/bin/bash或single參數進入。 1.進入維護模式:編輯GRUB菜單,添加啟動參數。 2.重新掛載文件系統為讀寫模式:mount-oremount,rw/。 3.修復文件系統:使用fsck命令,如fsck/dev/sda1。4.備份數據並謹慎操作,避免數據丟失。

Debian如何提升Hadoop數據處理速度Debian如何提升Hadoop數據處理速度Apr 13, 2025 am 11:54 AM

本文探討如何在Debian系統上提升Hadoop數據處理效率。優化策略涵蓋硬件升級、操作系統參數調整、Hadoop配置修改以及高效算法和工具的運用。一、硬件資源強化確保所有節點硬件配置一致,尤其關注CPU、內存和網絡設備性能。選擇高性能硬件組件對於提升整體處理速度至關重要。二、操作系統調優文件描述符和網絡連接數:修改/etc/security/limits.conf文件,增加系統允許同時打開的文件描述符和網絡連接數上限。 JVM參數調整:在hadoop-env.sh文件中調整

Debian syslog如何學習Debian syslog如何學習Apr 13, 2025 am 11:51 AM

本指南將指導您學習如何在Debian系統中使用Syslog。 Syslog是Linux系統中用於記錄系統和應用程序日誌消息的關鍵服務,它幫助管理員監控和分析系統活動,從而快速識別並解決問題。一、Syslog基礎知識Syslog的核心功能包括:集中收集和管理日誌消息;支持多種日誌輸出格式和目標位置(例如文件或網絡);提供實時日誌查看和過濾功能。二、安裝和配置Syslog(使用Rsyslog)Debian系統默認使用Rsyslog。您可以通過以下命令安裝:sudoaptupdatesud

Debian中Hadoop版本怎麼選Debian中Hadoop版本怎麼選Apr 13, 2025 am 11:48 AM

選擇適合Debian系統的Hadoop版本,需要綜合考慮以下幾個關鍵因素:一、穩定性與長期支持:對於追求穩定性和安全性的用戶,建議選擇Debian穩定版,例如Debian11(Bullseye)。該版本經過充分測試,擁有長達五年的支持週期,能夠確保系統穩定運行。二、軟件包更新速度:如果您需要使用最新的Hadoop功能和特性,則可以考慮Debian的不穩定版(Sid)。但需注意,不穩定版可能存在兼容性問題和穩定性風險。三、社區支持與資源:Debian擁有龐大的社區支持,可以提供豐富的文檔和

Debian上TigerVNC共享文件方法Debian上TigerVNC共享文件方法Apr 13, 2025 am 11:45 AM

本文介紹如何在Debian系統上使用TigerVNC共享文件。你需要先安裝TigerVNC服務器,然後進行配置。一、安裝TigerVNC服務器打開終端。更新軟件包列表:sudoaptupdate安裝TigerVNC服務器:sudoaptinstalltigervnc-standalone-servertigervnc-common二、配置TigerVNC服務器設置VNC服務器密碼:vncpasswd啟動VNC服務器:vncserver:1-localhostno

Debian郵件服務器防火牆配置技巧Debian郵件服務器防火牆配置技巧Apr 13, 2025 am 11:42 AM

配置Debian郵件服務器的防火牆是確保服務器安全性的重要步驟。以下是幾種常用的防火牆配置方法,包括iptables和firewalld的使用。使用iptables配置防火牆安裝iptables(如果尚未安裝):sudoapt-getupdatesudoapt-getinstalliptables查看當前iptables規則:sudoiptables-L配置

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器