Linux 的檔案系統遵循 Filesystem Hierarchy Standard (FHS),每個目錄都有特定的用途。
Linux 主要的目錄結構:
1. 根目錄(/)
- Linux 檔案系統的起點,所有檔案與目錄都從這裡開始。
- 主要系統目錄都掛載在
/之下。
2. 家目錄 (~)
- 各別使用者的檔案都存放在對應的使用者資料夾底下
3. 主要系統目錄
目錄 | 作用 |
/bin | 存放基本的系統執行檔,例如 ls、cp、mv、cat 等,所有用戶都可存取。 |
/boot | 存放開機相關的檔案,如核心 ( vmlinuz)、引導載入器(GRUB)設定等。 |
/dev | 包含系統裝置的特殊檔案,如硬碟( /dev/sda)、終端(/dev/tty)、USB(/dev/usb)等。 |
/etc | 存放系統設定與組態檔,如 passwd(使用者資訊)、fstab(掛載設定)、hosts(主機對應表)。 |
/home | 各個使用者的家目錄,例如 /home/user1,存放使用者個人資料、設定。 |
/lib | 系統函式庫 ( .so 檔案),供 /bin、/sbin 的執行檔使用。 |
/lib64 | 64 位元系統的函式庫。 |
/media | 用於掛載可移動裝置,如 USB 隨身碟、CD/DVD。 |
/mnt | 手動掛載的檔案系統,如 NFS、遠端磁碟。 |
/opt | 存放第三方軟體(選用的應用程式)。 |
/proc | 虛擬檔案系統,提供系統內核和行程資訊(如 /proc/cpuinfo、/proc/meminfo)。 |
/root | root(系統管理員)的家目錄,普通使用者無法存取。 |
/run | 存放系統運行時的資訊,例如行程 ID(PID),系統重開機後會清空。 |
/sbin | 存放系統管理指令,如 fdisk、mkfs、shutdown,通常只有 root 能執行。 |
/srv | 存放伺服器服務的相關資料,如 FTP、HTTP 伺服器的內容。 |
/sys | 和 /proc 類似,提供系統硬體資訊,主要與內核互動。 |
/tmp | 存放暫存檔,系統重啟後會清空。 |
/usr | 儲存系統應用程式與工具,通常包含 /usr/bin、/usr/lib、/usr/local 等。 |
/var | 儲存變動數據,如日誌 ( /var/log)、郵件 (/var/mail)、快取 (/var/cache)。 |
重要目錄介紹
/etc:系統設定與組態檔
/etc 是 Linux 系統最重要的目錄之一,存放各種系統設定與組態檔案。這些設定影響系統運行、使用者權限、網路連線等。目錄內的重要檔案與子目錄
檔案/目錄 | 作用 |
/etc/passwd | 存放系統所有使用者的帳號資訊,如使用者名稱、UID、GID、家目錄、Shell。 |
/etc/shadow | 存放使用者密碼的加密資訊,只有 root 可讀取。 |
/etc/group | 定義系統群組與群組內的使用者。 |
/etc/fstab | 設定開機時自動掛載的磁碟分區與存取參數。 |
/etc/hostname | 記錄系統的主機名稱(hostname)。 |
/etc/hosts | 定義 IP 與主機名稱的對應關係,用於本機 DNS 解析。 |
/etc/resolv.conf | 設定 DNS 伺服器地址,影響網路名稱解析。 |
/etc/network/interfaces | 設定網路介面(Debian/Ubuntu 系列使用)。 |
/etc/sysconfig/network-scripts/ | 設定網路介面(RHEL/CentOS 系列使用)。 |
/etc/cron.d/ | 定義系統的排程工作(cron jobs)。 |
/etc/profile | 定義所有使用者的 Shell 環境變數。 |
/etc/bash.bashrc | 定義 Bash Shell 的全域設定檔。 |
/etc/ssh/sshd_config | SSH 伺服器的設定檔,如連接埠、身份驗證方式等。 |
/etc/systemd/ | Systemd 服務管理的設定檔,如 /etc/systemd/system/ 存放自定義的服務單元。 |
/etc/nginx/ | Nginx 伺服器的設定目錄,如 nginx.conf。 |
/etc/apache2/ | Apache 伺服器的設定目錄,如 apache2.conf。 |
/usr:使用者程式與系統工具
/usr(User System Resources)用於存放系統應用程式、共享函式庫、文件、程式碼等。它通常包含許多子目錄,類似於 / 根目錄的結構。目錄的主要子目錄
目錄 | 作用 |
/usr/bin | 存放一般使用者可以執行的應用程式,如 vim、tar、wget、curl。 |
/usr/sbin | 存放系統管理員(root)使用的程式,如 fdisk、iptables、grub-install。 |
/usr/lib | 存放應用程式的函式庫,對應 /lib。 |
/usr/lib64 | 64 位元系統的函式庫,對應 /lib64。 |
/usr/include | C/C++ 等程式語言的標頭檔(header files),如 stdio.h。 |
/usr/local | 供使用者手動安裝的程式,通常不受套件管理系統影響。 |
/usr/share | 存放共享資源,如字體、圖示、說明文件等。 |
/usr/share/man | Man pages(說明文件),如 man ls 會讀取 /usr/share/man/man1/ls.1.gz。 |
/usr/share/doc | 軟體套件的文件與範例設定檔案。 |
/usr/src | 存放 Linux 核心原始碼與其他程式碼。 |
/usr/games | 遊戲程式(較少見)。 |
總結:
/etc= 設定中心
/usr= 使用者應用程式與工具
這些目錄的區分讓 Linux 系統更具組織性,也方便系統維護與管理。