Contents

Linux 文件系統目錄結構(以 Ubuntu 為例)

介紹如何在 Linux 的根目錄 / 下(以 Ubuntu 為例),各個目錄的主要用途。

在 Linux 系统中,例如 Ubuntu,文件系統遵循 Filesystem Hierarchy Standard (FHS),定義了根目錄 (/) 下的主要目錄及其用途。以下是對 Linux 根目錄下所有常見一級目錄及其重要子目錄的詳細介紹,涵蓋其含義和功能。

1. /(根目錄)

  • 含義:根目錄是 Linux 文件系統的頂層,所有其他目錄和文件都掛載在此目錄下。
  • 用途:所有文件和目錄的起點,類似於文件系統的“總入口”。

2. /bin(Binary,可執行文件)

  • 含義:儲存系統必需的可執行二進制文件。
  • 用途:包含系統啟動和基本操作所需的核心命令,例如 lscpmvrm 等。這些命令對所有用戶(包括普通用戶和管理员)都可用。
  • 重要子目錄:通常沒有子目錄。
  • 備註:在早期的 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,系統二進制文件)

  • 含義:儲存系統管理的二進制文件。
  • 用途:包含系統管理员使用的命令,如 fsckrebootifconfig 等。
  • 重要子目錄:通常沒有子目錄。
  • 備註:普通用戶通常無權直接執行 /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:用戶可執行的二進制文件(如 gccpython)。
    • /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)允許管理员或用戶自訂。