Linux 的文件系統遵循 Filesystem Hierarchy Standard (FHS) 標準,其目錄結構是層次化的,每個目錄都有明確的用途。以下是 Linux 中部分目錄的作用解析:
1. 根目錄 /
- 作用:根目錄是整個文件系統的頂層目錄,所有其他目錄都直接或間接掛載在根目錄下。
- 特點:
- 系統啟動時,根目錄是第一個被掛載的文件系統。
- 包含所有系統文件和子目錄,是 Linux 文件系統的起點。
2. /bin
- 作用:存放系統啟動和日常操作所需的核心命令(二進制可執行文件)。
- 常見命令:
ls
、cp
、mv
、cat
、bash
等。 - 特點:
- 所有用戶均可訪問。
- 即使系統進入單用戶模式(Single User Mode),這些命令仍可用。
- 通常包含 32 位架構的命令(64 位系統中 64 位命令可能在
/bin
或/usr/bin
中)。
3. /boot
- 作用:存放系統啟動所需的文件。
- 關鍵文件:
- 內核鏡像(如
vmlinuz
)。 - 引導加載器配置文件(如 GRUB 的
grub.cfg
)。 - 初始化內存盤(
initrd.img
或initramfs
)。
- 內核鏡像(如
- 特點:
- 系統啟動時,BIOS/UEFI 會讀取
/boot
中的文件加載操作系統。 - 通常建議將
/boot
放置在磁盤前 1024 柱面內(舊版系統限制)。
- 系統啟動時,BIOS/UEFI 會讀取
4. /dev
- 作用:存放設備文件(設備驅動接口)。
- 常見設備:
- 硬盤(如
/dev/sda
、/dev/sdb
)。 - 終端設備(如
/dev/tty
、/dev/console
)。 - 隨機數生成器(如
/dev/random
、/dev/urandom
)。
- 硬盤(如
- 特點:
- 每個硬件設備在 Linux 中都映射為一個文件。
- 使用
mknod
或udev
工具動態創建設備文件。
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
文件)。 - 臨時日志或服務狀態信息。
- 進程 ID 文件(如
- 特點:
- 數據在系統重啟后丟失。
- 替代了舊版的
/var/run
。
13. /sbin
- 作用:存放系統管理員使用的管理命令。
- 常見命令:
fdisk
、ifconfig
、init
、reboot
。 - 特點:
- 通常只有 root 用戶可執行。
- 與
/bin
類似,但針對系統管理任務。
14. /srv
- 作用:存放系統服務的數據(如 Web 服務器、FTP 服務器的數據)。
- 示例:
- Web 站點文件可能存放在
/srv/www/
。 - FTP 數據存放在
/srv/ftp/
。
- Web 站點文件可能存放在
- 特點:
- 用于集中管理服務數據,與
/var
不同,/srv
是服務專屬目錄。
- 用于集中管理服務數據,與
15. /tmp
- 作用:存放臨時文件。
- 特點:
- 所有用戶均可讀寫。
- 系統重啟后,
/tmp
中的內容通常會被清空。 - 安全性較低,需定期清理。
16. /usr
- 作用:系統級應用程序和庫文件的存儲目錄。
- 子目錄:
/usr/bin
:用戶命令(如gcc
、vim
)。/usr/sbin
:系統管理命令(如useradd
、sshd
)。/usr/lib
:共享庫文件。/usr/include
:C/C++ 頭文件。/usr/share
:共享數據(如文檔、字體、圖標)。/usr/local
:本地安裝的軟件(如手動編譯的軟件)。
- 特點:
- 是 Linux 系統中最大的目錄之一。
- 非核心功能的用戶程序和庫文件主要存放于此。
17. /var
- 作用:存放運行時變化的數據(如日志、緩存、郵件)。
- 子目錄:
/var/log
:日志文件(如syslog
、auth.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
。
- Linux 內核源代碼通常位于
- 特點:
- 開發人員編譯內核模塊或自定義內核時會用到此目錄。
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 內核源代碼通常位于
- 特點:
- 開發人員編譯內核模塊或自定義內核時會用到此目錄。
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 | /lib64 | 64 位架構下的共享庫文件目錄,僅用于 64 位系統,與 /lib 類似但針對 64 位程序。 |
2 | /libx32 | 32 位兼容庫目錄(僅限 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/lib64 | 64 位架構下的共享庫文件目錄(與 /lib64 類似,但位于 /usr 下)。 |
3 | /usr/libx32 | 32 位兼容庫目錄(僅限 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/yp | NIS(網絡信息服務)數據目錄(較舊系統中使用)。 |
2 | /lost+found | 文件恢復目錄,系統非正常關機或文件系統損壞時,恢復“丟失”的文件碎片。 |
2 | /selinux | SELinux 安全策略目錄(僅在啟用 SELinux 的系統中存在)。 |
2 | /security | 安全模塊目錄(如 AppArmor 配置文件)。 |
2 | /snap | Snap 包管理器安裝目錄(用于 Ubuntu 等支持 Snap 的發行版)。 |
2 | /systemd | systemd 系統和服務管理器相關文件(如服務單元文件 /systemd/system/ )。 |
2 | /tmp | 臨時文件目錄,所有用戶均可讀寫,系統重啟后內容通常被清空。 |