Linux 文件系統層次結構

Linux 的文件系統遵循 Filesystem Hierarchy Standard (FHS) 標準,其目錄結構是層次化的,每個目錄都有明確的用途。以下是 Linux 中部分目錄的作用解析:


1. 根目錄 /

  • 作用:根目錄是整個文件系統的頂層目錄,所有其他目錄都直接或間接掛載在根目錄下。
  • 特點
    • 系統啟動時,根目錄是第一個被掛載的文件系統。
    • 包含所有系統文件和子目錄,是 Linux 文件系統的起點。

2. /bin

  • 作用:存放系統啟動和日常操作所需的核心命令(二進制可執行文件)。
  • 常見命令lscpmvcatbash 等。
  • 特點
    • 所有用戶均可訪問。
    • 即使系統進入單用戶模式(Single User Mode),這些命令仍可用。
    • 通常包含 32 位架構的命令(64 位系統中 64 位命令可能在 /bin/usr/bin 中)。

3. /boot

  • 作用:存放系統啟動所需的文件。
  • 關鍵文件
    • 內核鏡像(如 vmlinuz)。
    • 引導加載器配置文件(如 GRUB 的 grub.cfg)。
    • 初始化內存盤(initrd.imginitramfs)。
  • 特點
    • 系統啟動時,BIOS/UEFI 會讀取 /boot 中的文件加載操作系統。
    • 通常建議將 /boot 放置在磁盤前 1024 柱面內(舊版系統限制)。

4. /dev

  • 作用:存放設備文件(設備驅動接口)。
  • 常見設備
    • 硬盤(如 /dev/sda/dev/sdb)。
    • 終端設備(如 /dev/tty/dev/console)。
    • 隨機數生成器(如 /dev/random/dev/urandom)。
  • 特點
    • 每個硬件設備在 Linux 中都映射為一個文件。
    • 使用 mknodudev 工具動態創建設備文件。

5. /etc

  • 作用:存放系統和應用程序的配置文件。
  • 常見配置文件
    • 用戶賬戶信息(/etc/passwd/etc/shadow)。
    • 網絡配置(/etc/network/interfaces/etc/resolv.conf)。
    • 啟動腳本(/etc/rc.d/etc/init.d)。
  • 特點
    • 配置文件通常為文本格式,可手動編輯。
    • 系統管理員的核心管理區域。

6. /home

  • 作用:普通用戶的個人主目錄。
  • 示例
    • 用戶 alice 的主目錄為 /home/alice
    • 存放用戶的個人文件、配置文件(如 .bashrc)。
  • 特點
    • 保護用戶隱私,隔離不同用戶的文件。
    • 系統升級或重裝時,用戶數據通常保留在此目錄中。

7. /lib/lib64

  • 作用:存放系統運行所需的共享庫文件(動態鏈接庫)。
  • 區別
    • /lib:32 位架構的共享庫。
    • /lib64:64 位架構的共享庫。
  • 關聯目錄
    • /bin/sbin 中的程序依賴的庫文件。
    • 例如:/lib/libc.so.6(C 標準庫)。

8. /media/mnt

  • 作用:用于掛載外部存儲設備。
  • 區別
    • /media:自動掛載點(如插入 USB 驅動器后,系統自動掛載到 /media/USB)。
    • /mnt:手動掛載點(用戶可手動掛載文件系統,如 mount /dev/sdb1 /mnt/data)。
  • 特點
    • /media 是現代系統推薦的掛載點。
    • /mnt 通常為空,供臨時使用。

9. /opt

  • 作用:安裝第三方軟件(如商業軟件或非標準軟件包)。
  • 示例
    • 軟件可能安裝在 /opt/software_name/ 目錄下。
  • 特點
    • 通常用于獨立安裝的軟件包(如 Oracle、IBM 軟件)。
    • 與系統默認軟件分離,便于管理。

10. /proc/sys

  • 作用:虛擬文件系統,提供內核和硬件信息。
  • 區別
    • /proc:以文件形式展示進程和系統狀態(如 /proc/cpuinfo/proc/meminfo)。
    • /sys:以層次化結構展示設備和驅動信息(如 /sys/class/)。
  • 特點
    • 文件內容由內核動態生成,不占用磁盤空間。
    • 用于調試和監控系統資源。

11. /root

  • 作用:超級用戶(root)的主目錄。
  • 特點
    • /home 類似,但僅屬于 root 用戶。
    • 存放 root 的個人文件和配置。

12. /run

  • 作用:存放系統運行時的臨時數據(易失性數據)。
  • 示例
    • 進程 ID 文件(如 /run/ 目錄下的 .pid 文件)。
    • 臨時日志或服務狀態信息。
  • 特點
    • 數據在系統重啟后丟失。
    • 替代了舊版的 /var/run

13. /sbin

  • 作用:存放系統管理員使用的管理命令。
  • 常見命令fdiskifconfiginitreboot
  • 特點
    • 通常只有 root 用戶可執行。
    • /bin 類似,但針對系統管理任務。

14. /srv

  • 作用:存放系統服務的數據(如 Web 服務器、FTP 服務器的數據)。
  • 示例
    • Web 站點文件可能存放在 /srv/www/
    • FTP 數據存放在 /srv/ftp/
  • 特點
    • 用于集中管理服務數據,與 /var 不同,/srv 是服務專屬目錄。

15. /tmp

  • 作用:存放臨時文件。
  • 特點
    • 所有用戶均可讀寫。
    • 系統重啟后,/tmp 中的內容通常會被清空。
    • 安全性較低,需定期清理。

16. /usr

  • 作用:系統級應用程序和庫文件的存儲目錄。
  • 子目錄
    • /usr/bin:用戶命令(如 gccvim)。
    • /usr/sbin:系統管理命令(如 useraddsshd)。
    • /usr/lib:共享庫文件。
    • /usr/include:C/C++ 頭文件。
    • /usr/share:共享數據(如文檔、字體、圖標)。
    • /usr/local:本地安裝的軟件(如手動編譯的軟件)。
  • 特點
    • 是 Linux 系統中最大的目錄之一。
    • 非核心功能的用戶程序和庫文件主要存放于此。

17. /var

  • 作用:存放運行時變化的數據(如日志、緩存、郵件)。
  • 子目錄
    • /var/log:日志文件(如 syslogauth.log)。
    • /var/cache:應用程序緩存。
    • /var/spool:隊列數據(如打印任務、郵件)。
    • /var/tmp:長期臨時文件(與 /tmp 不同,重啟后保留)。
  • 特點
    • 數據隨時間增長而變化。
    • 通常需要定期清理或歸檔。

18. /lost+found

  • 作用:系統非正常關機或文件系統損壞時,恢復“丟失”的文件碎片。
  • 特點
    • 平時為空。
    • 文件系統檢查工具(如 fsck)會將修復的文件放在此目錄中。

19. /opt

  • 作用:安裝第三方軟件(如商業軟件或非標準軟件包)。
  • 示例
    • 軟件可能安裝在 /opt/software_name/ 目錄下。
  • 特點
    • 通常用于獨立安裝的軟件包(如 Oracle、IBM 軟件)。
    • 與系統默認軟件分離,便于管理。

20. /sys

  • 作用:提供內核和硬件設備的動態信息。
  • 特點
    • 文件內容由內核動態生成。
    • 用于監控和調整硬件參數(如 CPU 頻率、設備驅動狀態)。

21. /usr/local

  • 作用:本地安裝的軟件和庫文件。
  • 特點
    • 手動編譯安裝的軟件通常安裝在此目錄下(如通過 ./configure --prefix=/usr/local)。
    • 與系統默認的 /usr 分離,避免沖突。

22. /usr/src

  • 作用:存放內核源代碼和其他軟件的源代碼。
  • 示例
    • Linux 內核源代碼通常位于 /usr/src/linux-headers-xxx
  • 特點
    • 開發人員編譯內核模塊或自定義內核時會用到此目錄。

23. /var/log

  • 作用:存放系統日志文件。
  • 常見日志
    • syslog:通用系統日志。
    • auth.log:認證相關日志(如 SSH 登錄嘗試)。
    • dmesg:內核環緩沖區日志(系統啟動信息)。
  • 特點
    • 日志文件可能占用大量磁盤空間,需定期清理或輪轉(如使用 logrotate)。

24. /var/cache

  • 作用:緩存應用程序的數據(如包管理器的下載緩存)。
  • 示例
    • apt 的緩存位于 /var/cache/apt/archives/
  • 特點
    • 緩存可以加快程序運行速度,但占用磁盤空間。

25. /var/spool

  • 作用:存放隊列數據(如打印任務、郵件隊列)。
  • 示例
    • 打印任務可能存放在 /var/spool/cups/
    • 郵件隊列可能存放在 /var/spool/mail/
  • 特點
    • 數據按順序處理,通常由后臺服務管理。

26. /var/tmp

  • 作用:存放需要長期保留的臨時文件。
  • 特點
    • /tmp 不同,/var/tmp 中的文件在系統重啟后仍然保留。
    • 通常用于需要跨會話保存的臨時數據。

27. /usr/share

  • 作用:存放共享數據(如文檔、字體、圖標、語言包)。
  • 示例
    • 文檔存放在 /usr/share/doc/
    • 圖標存放在 /usr/share/icons/
  • 特點
    • 數據與架構無關,適用于多平臺。

28. /usr/include

  • 作用:存放 C/C++ 頭文件(開發庫的接口定義)。
  • 示例
    • 標準庫頭文件如 stdio.h
  • 特點
    • 開發人員編譯程序時會引用此目錄中的文件。

29. /usr/man

  • 作用:存放手冊頁(man pages)。
  • 示例
    • man ls 會從 /usr/man/man1/ls.1.gz 讀取幫助文檔。
  • 特點
    • 手冊頁按級別分類(如 man1 為用戶命令,man8 為系統管理命令)。

30. /usr/src

  • 作用:存放內核源代碼和其他軟件的源代碼。
  • 示例
    • Linux 內核源代碼通常位于 /usr/src/linux-headers-xxx
  • 特點
    • 開發人員編譯內核模塊或自定義內核時會用到此目錄。

Linux 文件系統目錄結構表

層級目錄名作用描述
1/根目錄,整個文件系統的起點,所有其他目錄均掛載于此。
2/bin存放系統啟動和日常操作所需的核心命令(如 ls, cp, bash),所有用戶均可訪問
2/boot存放系統啟動所需的文件:
- 內核鏡像(vmlinuz
- GRUB 配置文件(grub.cfg
- 初始化內存盤(initrd.img
2/dev設備文件目錄,將硬件設備映射為文件:
- 塊設備(如 /dev/sda
- 字符設備(如 /dev/tty
- 虛擬設備(如 /dev/random
2/etc系統配置文件目錄,存放系統和應用程序的配置文件:
- 用戶賬戶信息(/etc/passwd, /etc/shadow
- 網絡配置(/etc/network/interfaces
- 服務配置(如 /etc/nginx/nginx.conf
- 系統初始化腳本(/etc/init.d/
- 環境變量(/etc/profile
- 安全策略(/etc/hosts.allow
2/home普通用戶的主目錄,每個用戶在該目錄下有獨立的子目錄(如 /home/alice)。
2/lib存放系統運行所需的共享庫文件(如 libc.so.6),支持 /bin/sbin 中的程序。
2/lib6464 位架構下的共享庫文件目錄,僅用于 64 位系統,與 /lib 類似但針對 64 位程序。
2/libx3232 位兼容庫目錄(僅限 64 位系統),用于支持 32 位程序在 64 位系統中運行。
2/media自動掛載點,插入外部設備(如 USB)后,系統會自動掛載到此目錄下的子目錄(如 /media/USB)。
2/mnt手動掛載點,用戶可手動掛載文件系統(如 mount /dev/sdb1 /mnt/data)。
2/opt第三方軟件安裝目錄,通常用于安裝非標準軟件包(如商業軟件)。每個軟件通常安裝在 /opt/software_name/
2/proc虛擬文件系統,提供內核和進程信息(如 /proc/cpuinfo, /proc/meminfo)。內容由內核動態生成,無需占用磁盤空間
2/root超級用戶(root)的主目錄,與 /home 類似,但僅屬于 root 用戶。
2/run運行時數據目錄,存放系統運行時的臨時數據(如 PID 文件、服務狀態)。重啟后數據丟失,替代舊版 /var/run
2/sbin系統管理命令目錄,存放管理員使用的命令(如 reboot, fdisk),通常僅限 root 用戶執行。
2/srv服務數據目錄,存放特定服務的數據(如 Web 服務器的網頁文件 /srv/www/、FTP 服務的文件 /srv/ftp/)。
2/sys虛擬文件系統,提供內核和硬件設備的動態信息(如 /sys/class/),用于監控和調整硬件參數。
2/tmp臨時文件目錄,所有用戶均可讀寫,系統重啟后內容通常被清空。默認權限為 1777(防沖突)。
2/usr用戶級程序目錄,是 Linux 系統中最大的目錄之一,包含應用程序、庫文件和共享數據。
3/usr/bin存放用戶命令(如 gcc, vim)。
3/usr/sbin存放系統管理命令(如 useradd, sshd)。
3/usr/lib存放共享庫文件(如 libssl.so)。
3/usr/include存放 C/C++ 頭文件(如 stdio.h)。
3/usr/share存放共享數據(如文檔、字體、圖標、語言包)。
3/usr/local存放本地安裝的軟件(如手動編譯的軟件),與系統默認的 /usr 分離。
3/usr/src存放內核源代碼和其他軟件的源代碼(如 /usr/src/linux-headers-xxx)。
3/usr/games存放游戲程序(部分系統可能未啟用)。
3/usr/libexec存放輔助程序(如 sudo 的底層工具)。
3/usr/lib6464 位架構下的共享庫文件目錄(與 /lib64 類似,但位于 /usr 下)。
3/usr/libx3232 位兼容庫目錄(僅限 64 位系統)。
3/usr/local/bin存放本地用戶安裝的命令(如手動編譯的 nginx)。
3/usr/local/lib存放本地安裝的共享庫文件。
2/var運行時數據目錄,存放隨時間變化的數據(如日志、緩存、郵件隊列)。
3/var/log存放系統日志文件(如 syslog, auth.log)。
3/var/cache存放應用程序緩存(如 apt 的下載緩存)。
3/var/spool存放隊列數據(如打印任務 /var/spool/cups/、郵件隊列 /var/spool/mail/)。
3/var/tmp存放長期保留的臨時文件,與 /tmp 不同,重啟后仍保留。
3/var/lib存放應用程序的狀態數據(如數據庫文件、軟件包管理器的狀態)。
3/var/lock存放文件或資源的鎖定文件(如 flock 創建的鎖文件)。
3/var/run已棄用,舊版系統中用于存放運行時數據(現由 /run 替代)。
3/var/ypNIS(網絡信息服務)數據目錄(較舊系統中使用)。
2/lost+found文件恢復目錄,系統非正常關機或文件系統損壞時,恢復“丟失”的文件碎片。
2/selinuxSELinux 安全策略目錄(僅在啟用 SELinux 的系統中存在)。
2/security安全模塊目錄(如 AppArmor 配置文件)。
2/snapSnap 包管理器安裝目錄(用于 Ubuntu 等支持 Snap 的發行版)。
2/systemdsystemd 系統和服務管理器相關文件(如服務單元文件 /systemd/system/)。
2/tmp臨時文件目錄,所有用戶均可讀寫,系統重啟后內容通常被清空。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82452.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

密碼學標準(Cryptography Standards)介紹

密碼學標準(Cryptography Standards)是為確保信息安全傳輸、存儲和處理而制定的一系列技術規范和協議,廣泛應用于通信、金融、互聯網等領域。以下從分類、主流標準、應用場景和發展趨勢四個方面進行詳細介紹: 一、密碼學標準的分類 密碼學標準可根據技術原理和應用場景分…

ubuntu 22.04安裝和使用docker介紹

docker安裝和使用 準備環境常見的docker操作linux系統常用的配置卸載docker 準備環境 本機環境: Linux yz-MS-7E06 6.8.0-59-generic #61~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 15 17:03:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux安裝依賴軟件:…

obsidian 中的查找和替換插件,支持正則

最近用著 obsidian 時,發現想要在當前文檔中 查找和替換 內容時,沒有自動查找和替換的功能,去插件市場查找也沒有發現好用的插件,那就自己寫一個吧。 全程用的 AI 來寫的,當然,我對 JS/CSS/TypeScript 等沒…

針對vue項目的webpack優化攻略

一、開發階段優化 1. 熱更新加速(HMR) // vue.config.js module.exports {devServer: {hot: true, // 開啟熱更新injectClient: true, // 自動注入HMR客戶端watchOptions: {ignored: /node_modules/, // 忽略node_modules變化aggregateTimeout: 300…

BTC官網關注巨鯨12億美元平倉,XBIT去中心化交易平臺表現穩定

在全球加密貨幣市場波動加劇的背景下,2025年5月25日傳出重磅消息。據今日最新國際報道,知名巨鯨James Wynn完全平倉價值12億美元的BTC多頭倉位,整體盈利約845萬美元,此舉引發市場廣泛關注。與此同時,收益型穩定幣市場迎…

在WPF中添加動畫背景

在WPF中添加動畫背景 在WPF中創建動畫背景可以大大增強應用程序的視覺效果。以下是幾種實現動畫背景的方法&#xff1a; 方法1&#xff1a;使用動畫ImageBrush&#xff08;圖片輪播&#xff09; <Window x:Class"AnimatedBackground.MainWindow"xmlns"htt…

單點擊登錄sso實現

一、單點登錄&#xff08;SSO&#xff09;是什么&#xff1f; 核心定義 單點登錄&#xff08;Single Sign-On&#xff0c;SSO&#xff09;是一種身份認證解決方案&#xff0c;允許用戶通過一次登錄訪問多個相互信任的應用系統。其核心邏輯是統一認證中心與分布式會話管理&…

JavaWebsocket-demo

Websocket客戶端 pom依賴 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.4.0</version></dependency>客戶端代碼片段 Component Slf4j public class PositionAlarmL…

Java Collection(集合) 接口

Date: 2025-05-21 20:21:32 author: lijianzhan Java 集合框架提供了一組接口和類&#xff0c;以實現各種數據結構和算法。 以下是關于 Java 集合的核心內容說明&#xff1a; /*** Java Collection Framework 說明&#xff1a;** 在 Java 中&#xff0c;集合&#xff08;Collec…

讓MySQL更快:EXPLAIN語句詳盡解析

前言 在數據庫性能調優中&#xff0c;SQL 查詢的執行效率是影響系統整體性能的關鍵因素之一。MySQL 提供了強大的工具——EXPLAIN 語句&#xff0c;幫助開發者和數據庫管理員深入分析查詢的執行計劃&#xff0c;從而發現潛在的性能瓶頸并進行針對性優化。 EXPLAIN 語句能夠模…

Java基礎 Day20

一、HashSet 集合類 1、簡介 HashSet 集合底層采取哈希表存儲數據 底層是HashMap 不能使存取有序 JDK8之前的哈希表是數組和鏈表&#xff0c;頭插法 JDK8之后的哈希表是數組、鏈表和紅黑樹&#xff0c;尾插法 2、存儲元素 &#xff08;1&#xff09;如果要保證元素的唯…

2505C++,32位轉64位

原文 假設有個想要將一個32位值傳遞給一個帶64位值的函數的函數.你不關心高32位的內容,因為該值是傳遞給回調函數的直通值,回調函數會把它截斷為32位值. 因此,你都擔心編譯器一般生成的將32位值擴展到64位值的那條指令的性能影響. 我懷疑這條指令不是程序中的性能瓶頸. 我想出…

光伏電站及時巡檢:守護清潔能源的“生命線”

在“雙碳”目標驅動下&#xff0c;光伏電站作為清潔能源的主力軍&#xff0c;正以年均20%以上的裝機增速重塑全球能源格局。然而&#xff0c;這些遍布荒漠、屋頂的“光伏矩陣”并非一勞永逸的能源提款機&#xff0c;其穩定運行高度依賴精細化的巡檢維護。山東棗莊觸電事故、衢州…

C++初階-list的使用2

目錄 1.std::list::splice的使用 2.std::list::remove和std::list::remove_if的使用 2.1remove_if函數的簡單介紹 基本用法 函數原型 使用函數對象作為謂詞 使用普通函數作為謂詞 注意事項 復雜對象示例 2.2remove與remove_if的簡單使用 3.std::list::unique的使用 …

OpenHarmony平臺驅動使用(一),ADC

OpenHarmony平臺驅動使用&#xff08;一&#xff09; ADC 概述 功能簡介 ADC&#xff08;Analog to Digital Converter&#xff09;&#xff0c;即模擬-數字轉換器&#xff0c;可將模擬信號轉換成對應的數字信號&#xff0c;便于存儲與計算等操作。除電源線和地線之外&#…

CSS【詳解】彈性布局 flex

適用場景 一維&#xff08;行或列&#xff09;布局 基本概念 包裹所有被布局元素的父元素為容器 所有被布局的元素為項目 項目的排列方向&#xff08;垂直/水平&#xff09;為主軸 與主軸垂直的方向交交叉軸 容器上啟用 flex 布局 將容器的 display 樣式設置為 flex 或 i…

基于MATLAB實現傳統譜減法以及兩種改進的譜減法(增益函數譜減法、多帶譜減法)的語音增強

基于MATLAB實現傳統譜減法以及兩種改進的譜減法&#xff08;增益函數譜減法、多帶譜減法&#xff09;的語音增強代碼示例&#xff1a; 傳統譜減法 function enhanced traditional_spectral_subtraction(noisy, fs, wlen, inc, NIS, a, b)% 參數說明&#xff1a;% noisy - 帶…

symbol【ES6】

你一閉眼世界就黑了&#xff0c;你不是主角是什么&#xff1f; 目錄 什么是Symbol&#xff1f;?Symbol特點?&#xff1a;創建方法&#xff1a;注意點&#xff1a;不能進行運算&#xff1a;顯示調用toString() --沒有意義隱式轉換boolean 如果屬性名沖突了怎么辦&#xff1f;o…

LeetCode 649. Dota2 參議院 java題解

https://leetcode.cn/problems/dota2-senate/description/ 貪心。不會寫。 class Solution {public String predictPartyVictory(String senate) {boolean rtrue,dtrue;int flag0;//flag>0,d前面有r;flag<0,r前面有dchar[] senatessenate.toCharArray();//每一輪while(r…

機器學習第二十二講:感知機 → 模仿大腦神經元的開關系統

機器學習第二十二講&#xff1a;感知機 → 模仿大腦神經元的開關系統 資料取自《零基礎學機器學習》。 查看總目錄&#xff1a;學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的文章&#xff1a;DeepSeek R1本地與線上滿血版部署&#xff1a;超詳細手把手指南 感知機詳解…