Linux 文件系統遵循由文件系統層次結構標準 (FHS) 管理的樹狀層次結構布局。這是 Linux 基金會維護的標準。在撰寫本指南時,FHS 的最新版本是 2015 年 6 月發布的 3.0.3 版。
Linux 文件系統結構從最頂層開始,根目錄是層次結構中的最上層目錄。它包含系統上的所有目錄和子目錄,我們將在本指南后面看到。
為了更好地了解這一點,導航到根目錄/并運行以下命令:
tree -D -L 1
輸出提供了駐留在系統上的所有主要目錄。在深入研究每個目錄包含的內容之前,讓我們簡要了解一下 Linux 系統上的主要文件類型。
Linux 中的文件類型
在 Linux 和 UNIX 系統中,一切都被視為一個文件。如果不是,那么它是一個正在運行的過程。通常,Linux 中的所有文件都屬于這三類之一。
- 常規文件:包括文本文件、照片、視頻、程序和可執行文件。
- 目錄:這聽起來可能有點奇怪,但在 Linux 中,目錄也被視為文件,因為它們為其他文件和子目錄提供存儲空間。
- 特殊文件:這些是包含符號鏈接、塊文件、套接字文件和命名管道文件的設備文件。
也就是說,現在讓我們更詳細地檢查 Linux 文件系統樹。
/ ( 根目錄)
如前所述,根目錄由單個正斜杠 ( / ) 表示,是 Linux 層次結構中的最頂層目錄。Linux 系統上的所有文件和文件夾都存儲在這里,并且可以從這個目錄中引用,即使存儲在不同的位置,例如可移動或虛擬設備。
筆記:
不要將根 (/) 目錄與根主目錄 (/root) 混淆。
/家
該/home目錄是包含用戶個人文件的目錄。該目錄是 Linux 系統上任何登錄用戶的入口點。它存儲特定于單個用戶的文件夾、文件和個人數據。
目錄中的文件夾采用登錄用戶名的/home形式。例如,如果我們有一個名為 mike 的登錄用戶,則該用戶的主目錄將為./home/USERNAMEUSERNAME/home/mike
目錄內/home/USERNAME還有其他子目錄,例如 Desktop、Downloads、Documents、Pictures、Videos、Templates、Public 和 Music,如下所示。
此外,主目錄包含個性化配置文件,這些文件是隱藏文件,前面有一個點。此類文件包括.bashrc,.bash_logout,等等.bash_profile。
要查看隱藏文件,請使用如圖所示的選項運行ls命令。-la
ls -la
/根
這是 root 帳戶的主目錄,也稱為 root 用戶的主目錄。該/root目錄存儲 root 帳戶的配置文件的方式與每個普通用戶的主目錄包含該用戶的配置文件和常規文件的方式相同。
/引導
另一個關鍵目錄是/boot目錄。顧名思義,該目錄包含成功引導系統所需的基本文件。這些文件包括 grub 引導加載程序文件、根文件系統文件、Linux 內核文件 (vmlinuz) 和其他引導配置文件。
/垃圾桶
該/bin目錄包含二進制可執行文件或 Linux 程序。其中包括在單用戶模式下可供所有用戶使用的常用 Linux 命令。其中包括 cat、chown、chmod、ping、cp、mkdir、ls、cat、rm 和 mv,僅舉幾例。
要確認二進制可執行文件或命令(例如cp命令)的路徑,請運行命令:
which cp
/sbin
與/bin?目錄不同,/sbin目錄包含為根用戶保留的二進制可執行文件和命令行工具。這些是用于系統管理任務的特權命令。此類命令的示例包括 fdisk、route、reboot、mkfs、init 和 fsck 等等。同樣,要確認二進制可執行文件的路徑,請運行which命令,然后運行二進制可執行文件。
which reboot
/開發
該/dev目錄包含代表連接到系統的設備的特殊文件。這些包括控制臺、硬盤驅動器或插入系統的任何其他外圍設備。設備文件的一個很好的例子是/dev/sda它表示連接到 Linux 系統的第一個 SATA 硬盤驅動器。
該/dev目錄也是不引用任何連接到系統的硬件的偽設備或虛擬設備的存儲位置。一個示例是/dev/null丟棄發送給它的任何數據的文件。
/ETC
該/etc目錄包含特定于主機的系統范圍配置文件。它存儲所有程序所需的配置文件以及啟動和關閉 shell 腳本。root 或 sudo 用戶可以使用 nano 或 vim 等文本編輯器修改配置文件,sudo 用戶是具有運行某些 root 命令的提升權限的普通用戶。
/lib,/lib64
/bin/lib 目錄包含或目錄中所需的共享庫圖像/sbin。這些是系統正常啟動和運行所需的基本庫。
/媒體
該/media目錄包含臨時子目錄,可移動媒體(如光盤驅動器)會自動安裝在這些目錄上。子目錄的一個很好的例子是/media/cdrom光驅。
/mnt
該/mnt目錄提供了一個臨時掛載點,可在其上掛載可移動媒體(如 CDROM)。它最常用于手動掛載存儲設備或分區,更像是過去的遺物。
/tmp
在 Linux 系統上,臨時文件存儲在該/tmp?目錄中。這些是由系統和用戶創建的臨時文件。此目錄中的文件通常有幾千字節大小,并且在大多數情況下會在系統重新啟動時被刪除。
/選擇
該/opt目錄包含第三方供應商提供的附加應用程序或軟件包,它們不是通過您的操作系統包管理器安裝的。每個這樣的應用程序都有自己的子目錄,其中包含它運行所需的所有基本文件。當您從第三方存儲庫安裝軟件包或自行編譯軟件二進制文件時,文件將存儲在該/opt目錄中。
/曾是
Var 代表變量。顧名思義,該?/var目錄是一個包含大小不斷變化的文件的目錄,例如日志和假脫機文件。
以下是該目錄中包含的重要/var?目錄的列表:
- /var/log?- 包含系統和應用程序日志文件。
- /var/cache?- 包含來自程序的緩存數據。
- /var/mail?- 包含用戶的郵箱
- /var/spool- 包括各種程序的排隊或假脫機文件。
- /var/spool/cron- 包含用于 cron 作業的假脫機文件。
- /var/spool/at- 包含 at 的假脫機作業。
- /var/spool/lpd- 包含用于打印的假脫機文件。
- /var/opt- 包含/opt目錄的可變數據文件。
/跑
大多數 Linux 發行版都帶有/run文件系統。這是一個目錄,用于存儲自系統啟動以來易失性運行時數據。存儲在此目錄中的數據不會在重新啟動后保留。
/進程
也稱為 proc 文件系統,該/proc目錄是一個虛擬或偽文件系統,其中包含提供有關正在運行的進程和內核當前狀態的信息的特殊文件。它被視為Linux內核的信息和控制中心。
proc 目錄是一個特殊的目錄,因為它不是真正的文件系統,一旦系統斷電,它就不存在了。它/proc在引導過程中安裝在安裝點。
/usr
這是 Linux 系統中最關鍵的目錄之一。該/usr目錄是包含已安裝軟件應用程序的庫、二進制文件和文檔的目錄。此目錄中包含的系統文件可在其他用戶之間共享。
一目了然,以下是該目錄中包含的一些重要子目錄/usr:
- /usr/bin- 這包含在目錄下找不到的用戶程序的二進制文件/bin。此類程序的示例包括 less、more、scp 和 awk 等等。
- /usr/sbin?- 這為系統管理員或特權用戶提供了二進制文件。通常,系統二進制文件位于該/sbin目錄中,但如果您在那里找不到它們,請在該/sbin目錄下查找。
- /usr/local- 該目錄包含從源代碼或發行版提供的軟件之外安裝的用戶程序。例如,當您從源代碼安裝 Go 編程語言時,它位于該/usr/local/go目錄下。
- /usr/lib- 這提供了/usr/bin和/usr/sbin目錄所需的庫。
- /usr/src- 這包含 Linux 頭文件、內核源代碼和文檔。
/srv(服務目錄)
術語 srv 代表服務。該/srv目錄包含 Linux 發行版的站點特定數據。它指向特定服務(如 www、rsync、FTP 和 CVS)的數據文件的位置。
/系統
這是一個虛擬或偽文件系統,包含一組附加到 Linux 內核的虛擬文件。
/折斷
這是快照包進入的地方。Snap 是由 Ubuntu 的發布者和維護者 Canonical 開發的包管理系統。Snaps 是容器化的、交叉分發的軟件包,與所有依賴項一起打包。它們易于安裝,適用于所有啟用了快照的主要 Linux 發行版。
如果您從 snap 包安裝了應用程序,那么所有軟件文件都將在該/snap目錄中找到。
/丟失+找到
這是一個主要在 Ubuntu 和基于 Ubuntu 的發行版中找到的目錄。這是一個包含過時數據的特殊目錄。這些是在磁盤操作期間已被刪除或丟失的文件片段。
結論
在本指南中,我們檢查了 Linux 文件系統樹并充實了構成文件系統層次結構的目錄。Linux 文件文件系統層次結構確保了各種 Linux 系統之間的一致性,并為 Linux 管理員和開發人員提供了一個標準的目錄結構,使管理系統變得容易。