Linux 文件系統目錄結構(以 Ubuntu 為例)
Contents
介紹如何在 Linux 的根目錄 /
下(以 Ubuntu 為例),各個目錄的主要用途。
在 Linux 系统中,例如 Ubuntu,文件系統遵循 Filesystem Hierarchy Standard (FHS),定義了根目錄 (/
) 下的主要目錄及其用途。以下是對 Linux 根目錄下所有常見一級目錄及其重要子目錄的詳細介紹,涵蓋其含義和功能。
1. /
(根目錄)
- 含義:根目錄是 Linux 文件系統的頂層,所有其他目錄和文件都掛載在此目錄下。
- 用途:所有文件和目錄的起點,類似於文件系統的“總入口”。
2. /bin
(Binary,可執行文件)
- 含義:儲存系統必需的可執行二進制文件。
- 用途:包含系統啟動和基本操作所需的核心命令,例如
ls
、cp
、mv
、rm
等。這些命令對所有用戶(包括普通用戶和管理员)都可用。 - 重要子目錄:通常沒有子目錄。
- 備註:在早期的 Linux 系統中,
/bin
只存放系統核心命令,用戶安裝的程式可能放在/usr/bin
或/usr/local/bin
。
3. /boot
- 含義:儲存系統啟動相關的文件。
- 用途:包含引導加載程式(如 GRUB)和 Linux 內核文件(例如
vmlinuz
),以及初始 RAM 磁盤映像(initrd
)。 - 重要子目錄:
/boot/grub
:儲存 GRUB 引導加載程式的配置文件(如grub.cfg
)。
- 備註:此目錄通常占用較小空間,但對系統啟動至關重要。
4. /dev
(Device,設備文件)
- 含義:儲存設備文件,代表硬體設備或虛擬設備。
- 用途:Linux 將設備視為文件,
/dev
包含塊設備(如硬盤/dev/sda
)和字符設備(如終端/dev/tty
)。 - 重要子目錄/文件:
/dev/null
:空設備,丟棄所有寫入的數據。/dev/zero
:提供無限的零位元組流。/dev/random
和/dev/urandom
:提供隨機數生成。
- 備註:這些文件通常由系統動態生成,依賴於
udev
系統。
5. /etc
(Editable Text Configuration,可編輯的文本配置文件)
- 含義:儲存系統和應用程式的配置文件。
- 用途:包含系統範圍的配置文件,例如網絡配置、用戶帳戶資訊等。
- 重要子目錄/文件:
/etc/passwd
:儲存用戶資訊。/etc/shadow
:儲存用戶加密密碼(僅 root 可讀)。/etc/fstab
:定義文件系統的掛載資訊。/etc/apt
(Ubuntu 特有):包含apt
套件管理器的配置文件,如sources.list
。/etc/network
(部分發行版):網絡配置文件。
- 備註:
/etc
中的文件通常是文本格式,管理员通過編輯這些文件配置系統。
6. /home
- 含義:儲存普通用戶的個人目錄。
- 用途:每個用戶有一個以其用戶名命名的子目錄(如
/home/username
),用於儲存用戶的個人文件、配置文件(如~/.bashrc
)和數據。 - 重要子目錄:
/home/username/.config
:儲存用戶級別的應用程式配置文件。/home/username/.cache
:儲存用戶應用程式的緩存數據。
- 備註:普通用戶對自己的
/home
目錄有完全控制權,但無法存取其他用戶的目錄。
7. /root
- 含義:超級用戶(root)的家目錄。
- 用途:類似於
/home
,但專為 root 用戶儲存配置文件和個人數據。 - 重要子目錄:通常與
/home
用戶目錄類似,包含.bashrc
、.config
等。 - 備註:普通用戶無權存取
/root
,以保護系統管理员的文件。
8. /lib
和 /lib64
- 含義:儲存系統和程式所需的共享庫(Libraries)。
- 用途:包含動態連結庫(如
.so
文件),供/bin
和/sbin
中的程式使用。 - 重要子目錄:
/lib/modules
:儲存內核模組(如驅動程式)。
- 備註:
/lib64
通常用於 64 位系統,儲存 64 位共享庫。
9. /media
- 含義:儲存可移動設備的掛載點。
- 用途:當插入 USB 驅動器、CD/DVD 等設備時,系統會自動在此目錄下創建掛載點(如
/media/username/USB_NAME
)。 - 重要子目錄:動態生成,通常以用戶名或設備名命名。
- 備註:主要用於圖形化桌面環境(如 GNOME、KDE)自動掛載。
10. /mnt
- 含義:手動掛載文件系統的臨時掛載點。
- 用途:管理员可以手動掛載設備或遠程文件系統到此目錄(如
mount /dev/sdb1 /mnt
)。 - 重要子目錄:通常由管理员自訂。
- 備註:與
/media
不同,/mnt
更常用於臨時或手動掛載。
11. /opt
(Optional,可選軟體)
- 含義:儲存第三方或可選的軟體包。
- 用途:通常用於安裝非標準軟體(如商業軟體或手動編譯的程式)。
- 重要子目錄:由軟體自行定義(如
/opt/google/chrome
)。 - 備註:
/opt
中的軟體通常是獨立的,不依賴系統套件管理器。
12. /proc
- 含義:虛擬文件系統,提供進程和系統資訊。
- 用途:以文件形式提供運行時系統資訊(如 CPU、記憶體、進程狀態)。
- 重要子目錄/文件:
/proc/cpuinfo
:CPU 資訊。/proc/meminfo
:記憶體使用情況。/proc/[pid]
:每個運行進程的詳細資訊(pid
為進程 ID)。
- 備註:
/proc
是一個偽文件系統,數據儲存在記憶體中而非磁盤。
13. /run
- 含義:儲存運行時臨時數據。
- 用途:包含系統運行時的臨時文件,如進程的 PID 文件、套接字文件等。
- 重要子目錄:
/run/user
:儲存用戶特定的運行時數據。
- 備註:
/run
是臨時文件系統(tmpfs),系統重啟後內容清空。
14. /sbin
(System Binary,系統二進制文件)
- 含義:儲存系統管理的二進制文件。
- 用途:包含系統管理员使用的命令,如
fsck
、reboot
、ifconfig
等。 - 重要子目錄:通常沒有子目錄。
- 備註:普通用戶通常無權直接執行
/sbin
中的命令。
15. /srv
(Service,服務數據)
- 含義:儲存伺服器提供的服務數據。
- 用途:用於儲存 Web 伺服器、FTP 伺服器等服務的數據(如
/srv/www
用於 Web 內容)。 - 重要子目錄:由服務定義(如
/srv/http
)。 - 備註:在 Ubuntu 中,
/srv
可能不常用,具體取決於伺服器配置。
16. /sys
(System,系統資訊)
- 含義:虛擬文件系統,儲存內核和硬體相關資訊。
- 用途:提供設備、驅動程式和內核參數的動態資訊,類似於
/proc
。 - 重要子目錄:
/sys/class
:設備類資訊。/sys/devices
:硬體設備資訊。
- 備註:常用於硬體管理和除錯。
17. /tmp
- 含義:儲存臨時文件。
- 用途:程式和用戶可以在此儲存臨時數據,系統重啟後通常清空。
- 重要子目錄:通常無固定子目錄。
- 備註:
/tmp
通常是 tmpfs,儲存在記憶體中以提高速度。
18. /usr
(Unix System Resources,系統資源)
- 含義:儲存用戶和系統共享的資源。
- 用途:包含非系統啟動必需的程式、庫和文件。
- 重要子目錄:
/usr/bin
:用戶可執行的二進制文件(如gcc
、python
)。/usr/lib
:用戶程式的共享庫。/usr/share
:架構無關的數據,如文件、圖標等。/usr/local
:本地安裝的軟體(手動編譯或非套件管理器安裝)。
- 備註:
/usr
是系統中較大的目錄之一,包含大量用戶級軟體。
19. /var
(Variable,可變數據)
- 含義:儲存運行時變化的數據。
- 用途:包含日誌、緩存、郵件、數據庫等動態數據。
- 重要子目錄:
/var/log
:系統和應用程式日誌(如/var/log/syslog
或/var/log/messages
)。/var/cache
:應用程式緩存數據。/var/spool
:儲存列印隊列、郵件隊列等。/var/www
:Web 伺服器的預設內容目錄。
- 備註:
/var
的大小會隨系統運行而增長,需定期清理。
總結
以下是 Linux 根目錄下常見一級目錄的快速概覽:
目錄 | 主要用途 |
---|---|
/bin | 核心系統命令 |
/boot | 啟動相關文件 |
/dev | 設備文件 |
/etc | 系統配置文件 |
/home | 用戶家目錄 |
/root | 超級用戶家目錄 |
/lib | 系統共享庫 |
/media | 可移動設備掛載點 |
/mnt | 臨時掛載點 |
/opt | 可選第三方軟體 |
/proc | 虛擬文件系統(進程和系統資訊) |
/run | 運行時臨時數據 |
/sbin | 系統管理命令 |
/srv | 服務數據 |
/sys | 虛擬文件系統(內核和硬體資訊) |
/tmp | 臨時文件 |
/usr | 用戶和系統資源 |
/var | 可變數據(如日誌、緩存) |
備註
- Ubuntu 特有:Ubuntu 使用
apt
套件管理器,因此/etc/apt
是配置軟體源的重要目錄。 - 權限:普通用戶對
/home
和/tmp
有寫入權限,其他目錄(如/root
、/etc
)通常需要 root 權限。 - 動態性:
/proc
、/sys
、/run
是虛擬文件系統,內容儲存在記憶體中,重啟後清空。 - 擴展性:某些目錄(如
/usr/local
、/opt
)允許管理员或用戶自訂。