邁向 RHCE 之路 (Day02) - 檔案系統樹狀結構

前言

檔案系統樹狀標準 FHS (Filesystem Hierarchy Standard),為 Linux 的檔案系統目錄的共同標準,在開始操作 CentOS 作業系統以前,了解整個檔案系統樹狀結構對於日後不管是執行指令或者尋找相關資料夾及檔案將有相當的助益。

與 Windows 作業系統採用的是磁碟代號 A 槽 ~ Z 槽 的觀念不同,Linux 作業系統採取的是 掛載點 的方式並且是以樹狀結構向下延伸,位於樹狀結構最頂點為 根目錄 (/),而其它如 /etc、/sbin、/usr、/var、/dev...等則為根目錄下的子目錄。

(圖片來源  Filesystem Hierarchy Standard « RHEL 5 Configurations 檔案系統樹狀標準 (FHS) 示意圖)

  • 根目錄 (/): 為整個檔案系統樹狀結構的根,也就是整個檔案系統的根目錄。
  • /bin: 此目錄中存放著許多的 Binary 執行檔案,為一般及啟動時常常會使用到的檔案,例如 ls、cp、rm ...等指令。
  • /sbin: 此目錄中存放著許多的 System Binary 執行檔案,為系統管理時常常會使用到的檔案,例如 shutdown、fsck、quotacheck...等指令。
  • /etc: 此為 Linux 系統中相當重要得目錄,大部份的 設定檔 都存放於此,例如 檔案系統掛載設定檔 /etc/fstab、IPTables 防火牆設定檔 /etc/sysconfig/iptables...等。
  • /lib: 存放 Linux 系統中各種共用的 Library 函式庫 檔案,類似於 Windows 作業系統的 DLL 動態連結函式庫一樣的功能。
  • /dev: Linux 系統是以 Everything is Files 的觀念來進行管理 Device 硬體裝置,因此硬體設備及週邊設備也不例外,此目錄中存放著所偵測到的相關硬體檔案,例如 光碟機為 /dev/cdrom、SCSI 硬碟為 /dev/sda...等,為相容舊版系統而存在。
  • /sys: 存放 System-Device 相關資訊 (由 RHEL 4 開始才有此資料夾),如 PnP...等,會將偵測到的 Device 資訊回寫至 /dev 對應的檔案內以相容舊版,所以舉例來說當主機插入 USB 隨身碟時會同時建立 /sys/block/sdb 以及回寫至 /dev/sdb 內。
  • /selinux: 存放 Linux 增強安全性機制 SELinux (Security Enhanced Linux) 相關檔案。
  • /var: 具備 Variable 也就是變動特性的檔案將存放於此,例如 系統的各式日誌檔案 /var/log、使用者電子信箱 /var/mail、正在執行的執行序 /var/run/*.pid ...等。
  • /srv: 存放相關的 Server-data。(由 RHEL 4 開始才有此資料夾)
  • /usr: Linux 系統中大部份的 安裝套件及相關應用程序 都存放於此,例如 其它網路服務的執行程序 /usr/sbin、核心原始碼檔案 /usr/src...等,類似於 Windows 作業系統的Program Files 資料夾。
  • /opt: Optional 通常 非預設 安裝的套件會安裝於此,例如 Oracle 資料庫...等。
  • /lost+found: 在每個 獨立的掛載點 內都會有此資料夾,當 Linux 系統不正常關機時相關資料便會暫存於此。
  • /mnt: 用於 臨時掛載 的目錄,通常會手動執行將外接設備掛載於此。(Kernel 2.4.x 使用)
  • /media: 若 RunLevel 為 5 也就是進入圖形介面時 (由 RHEL 4 開始才有此資料夾),若主機有插入 USB 或其它外接設備時則會自動掛載於此目錄上 (不需手動掛載)。(Kernel 2.6.x 使用)
  • /misc、/net: 用於 autofs 自動掛載 時所使用的資料夾,例如 Linux 主機成為 LDAP、NIS Client 時便會將相關資料夾自動掛載於此,類似於 Windwos 作業系統中網路芳鄰的概念。
  • /tmp: 暫存 資料夾,存放暫時性的資料夾及檔案,通常 Linux 系統重新啟動或關機以及排程會自動清空此資料夾內容。
  • /proc: Linux 系統中目前所執行的 執行序 Process 即存放於此資料夾,當該執行序停止執行則位於此資料夾中的 Process ID 或檔案將消失 (事實上此資料夾就是 Memory 中的暫存資料),至於有些檔案的大小為何是 0? 例如 meminfo、cpuinfo 則只是為了要達成 Everything is Files 的觀念而以,但仍可查看及檔案內容。
  • /boot: 存放 Linux 系統 開機時相關引導檔案,例如 Boot Loader 設定檔 /boot/grub/grub.conf、初始化映像檔 .img...等。
  • /home: 所有 一般使用者帳號的家目錄,例如 使用者帳號 weithenn 的家目錄為 /home/weithenn。
  • /root: Linux 系統 超級管理者的家目錄。