--- title: "Linux 系統管理慣例 - 目錄及檔案" tags: sysadm lang: zh-TW --- ## 目錄及檔案 ### `/opt` `/opt` 存放「僅限本機使用」之第三方套裝軟體 (包括與系統管理相關的應用軟體),且應放在單一目錄下。 例如:`/opt/zabbix`、`/opt/ekran`、……。 其與 `/work` 目錄下應用軟體的最大區別,在不掛載其它的檔案系統的情況下,`/opt` 裡的套裝軟體仍可順利運作。 ### `/pkg` `/pkg` 是一個 symblic link,連到 `/work/pkg`。 ### `/root` `/root` 應盡可能的「淨空」,。 - `/rool/.local` 通常在 `$PATH` 的位置比 `/usr/local/{bin,sbin}` 更前,所以常用來存放一些「臨時性」或「測試性」的工具或軟體,也因此部分工具名稱可能與登入節點 `/usr/local/{bin,sbin}` 相同。 - `/rool/log` 存放系統管理日誌 (log)。\ 注意:請不要將系統管理日誌放到 `/work` 下,這會導致未掛載 `/work` 時發生錯誤或 hang 住。 - `/root/Download` 存放「臨時」下載的檔案,例如:待試軟體、說明文件、……。 - `/root/work` 見以下 [`/work`](#work) 之說明。 ### `/tmp` `/tmp` 請盡可能的「淨空」,並定期檢查是否被塞滿。 ### `/usr/local` `/usr/local` 在「非」登入節點:請盡可能的「淨空」。 但在登入節點... - `/usr/local/src` 存放「長期保存」的下載檔案,例如:應用軟體、原始碼、…… - `/usr/local/bin` 存放使用者會用到的命令稿 (script) 或「落單」的二進制 (binary) 執行檔 - `/usr/local/sbin` 存放系統管理相關的命令稿 (script) 或「落單」的二進制 (binary) 執行檔 - `/usr/local/share/doc` 存放說明文件,文件格式以純文字 (例如:text、Markdown、ReST、HTML、……) 或 PDF/ePUB 為主 ### `/work` `/work` 通常為外掛之平行檔案系統,因此在系統規劃時,必須確保主機在未掛上 `/work` 的情況下,仍可順利運作。 - `/work/USER` 為使用者 USER 之工作目錄。\ 通常會在 USER 的家目錄,建一個 `~USER/work` 的 symblic link 連到這裡。 - `/work/pkg` 為整套主機共用之軟體目錄,一般透過 Environment Modules 來管理。 - `/work/pkg/license` 存放 PACKAGE 之授權檔案` - `/work/pkg/OS_VER` 存放 OS_VER 版之 PACKAGE,\ `OS_VER` 之值為 `$(. /etc/os-release && echo "$ID")-$(. /etc/os-release && echo "$VERSION_ID")`。 - `/work/pkg/OS_VER/bin/PACKAGE` 存放 OS_VER 版本之 PACKAGE 執行檔及 runtime environment。 - `/work/pkg/OS_VER/mod/PACKAGE` 存放 OS_VER 版本之 PACKAGE 的 module 檔案。 - `/work/pkg/OS_VER/src/PACKAGE` 存放 OS_VER 版本之 PACKAGE 原始檔或二進制 archive 檔案。 - `/work/pkg/OS_VER/var/PACKAGE` 存放 OS_VER 版本之 PACKAGE 安裝及編譯的 script。 例如: ``` ! # /work/pkg/作業系統/mod/編譯軟體名稱/編譯軟體版本/套裝軟體名稱/套裝軟體版本 /work/pkg/rhel-8.9/mod/gcc/8.5.0/mkl/2018.1.163 # /work/pkg/作業系統/mod/編譯軟體名稱/編譯軟體版本/套裝軟體名稱/套裝軟體版本 /work/pkg/rhel-8.9/bin/gcc/8.5.0/mkl/2018.1.163/... ```