Linux 檔案系統階層標準


基本架構

底下列出每個目錄名稱的英文意思與中文說明,滑鼠游標移到第三欄位上會有舉例。

/binbinary存放每個使用者都會用到的標準指令集。
/boot提供開機用的檔案。
/devdevice周邊裝置都集中在這裡,以備使用。
/etcetcetera底層系統專屬的組態檔。
/home存放使用者家目錄。
/lost+foundLinux 的檔案日誌。
/liblibrary底層系統呼叫的函式庫。
/media系統自動掛載的可插拔式裝置。
/mntmount使用者手動掛載進來用的周邊裝置。
/optoptional packages第三方廠商提供的套件,通常是閉源軟體。
/procprocessLinux 的分頁檔。
/root系統管理員的家目錄。
/sbinsuperuser binaries系統管理員用來操控電腦底層的指令。
/srvservice放置伺服器所提供服務的檔案。
/tmptemporary開放給任何人暫時存放過度資料的地方。
/usrunix system resources作業系統所安裝的電腦應用軟體與原始碼。
/varvarious電腦應用軟體的組態檔放在這裡。

補充說明


依變動的程度隔開,自成體系。

Linux 的檔案系統階層,可分為三種:「系統管理用」「公用」「使用者私用」。依變動頻繁的程度,規劃在不同權限的體系下,避免破壞系統結構。

例如程式指令的存放位置有如下幾種:

sbin、etc、lib系統管理用的工具
bin系統內建的共用指令
/usr/local/bin額外安裝的公用程式
/home/[username]/.local/bin使用者安裝給自己用的軟體

越往上一層的資料夾,越不會被使用者更動。當系統因為使用者頻繁更動,導致運作不穩時,可由最下層開始砍掉重建,降低對上層的影響。


media 與 mnt

早期並沒有 media,現在則習慣用它取代 mnt……嗯,我覺得這樣很OK,不需要再吹毛求疵,硬要分別哪些裝置是可插拔或自動掛載?哪些裝置是已放著來手動掛載?


/usr/bin 與 /usr/local/bin 與 /opt

想裝載的應用軟體,是與 GPL 開源軟體格格不入的閉源軟體,就丟在 /opt 裡面,避免跟 /usr/bin 混放在一起。

不過 Kubuntu 的習慣,則是將 KDE 專屬的軟體放在 /opt 裡面,當與不相容的環境衝突時,方便使用者隔離開來使用。

所以這沒有絕對性,自己喜歡哪種做法就去做~

至於 /usr/bin 與 /usr/local/bin 的區別,前者有「照標準做法安裝起來、大家一致推薦使用的軟體」的意味,後者有「依自行喜好安裝進來、有興趣的人也能使用」的意味。

這也不是硬性規定,純粹只是說有這樣的「意味」而已。

不要把程式安裝在 /tmp 裡面就好,因為重灌或升級作業系統時,大家共識就是裡面的東西可以移除。