Linux的檔案系統層次結構標準(FHS)

簡介

FHS(Filesystem Hierarchy Standard,檔案系統層次結構標準)定義了 Linux 各個目錄的用途與權限原則。遵守它可以確保你安裝的軟體、建立的腳本與資料不會亂放,也方便跨系統維護

兩大種類

  1. 可分享 (Shareable) vs 不可分享 (Unshareable):能否透過網路分享給其他主機(如 /usr 可分享,/var/log 不可)。

  2. 靜態 (Static) vs 動態 (Dynamic):內容是否會隨系統運作持續改變(如 /usr 主要是靜態軟體,/var 是動態資料)。

核心目錄一覽表

目錄 系統層級 用途說明 權限與維護建議
/bin / /sbin 系統核心 系統開機與修復必要的基礎指令(sbin 為管理者專用)。 由套件管理器(如 apt/yum)維護,不要手動放檔案
/usr/bin / /usr/sbin 發行版軟體 發行版預裝或透過套件管理器安裝的主要應用程式。 由系統維護,使用者手動編譯或外掛軟體不要放在這裡
/usr/local/bin 本地擴充 最推薦自訂軟體放的位置。存放管理員為「這台主機所有使用者」安裝的工具。 手動編譯軟體、自訂 Shell Script 或 Symbolic Link 優先放這裡
~/.local/bin 使用者個人 個人開發/工具軟體首選。僅供「當前使用者」使用的執行檔(如 pip install –user)。 放在家目錄下,安裝不需要 sudo,不會影響系統其他使用者
/etc 系統設定 存放全系統的設定檔(例如 nginx.conf、hosts)。 全部為純文字檔,修改前建議先備份
/var 動態資料 存放運作過程中持續膨脹的資料(Log、數據庫、Queue、網頁根目錄等)。 注意硬碟空間,例如 /var/log 需設定 Logrotate
/opt 第三方大型套件 存放套件包完整獨立的第三方大型軟體(如 Google Chrome、Oracle DB)。 通常會以單一資料夾形式存在(如 /opt/app_name)
/tmp 臨時檔案 任何使用者皆可寫入的暫存區。 開機或定期會被系統清空,切勿放重要資料。

使用建議

  • 我自己要用的腳本/軟體? ➔ 放 ~/.local/bin(不用 sudo)

  • 整台主機所有人都要用的工具? ➔ 放 /usr/local/bin(需要 sudo 放入)

  • 外來完整大型獨立套件? ➔ 放 /opt/套件名稱/

  • 會隨時間變大的日誌或快取? ➔ 放 /var/log/ 或 /var/cache/

  • 要改軟體設定? ➔ 去 /etc/ 找

相關網站

Built with Hugo
Theme Stack designed by Jimmy