936 瀏覽數

FHS – Filesystem Hierarchy Standard

在 Linux 下所有的目錄以及子目錄所放置位置,都是依據 Filesystem Hierarchy Standard http://www.pathname.com/fhs/ 的標準來存放.先來看看在 Linux 這樹狀圖有哪一些主要目錄,可以使用指令 #tree 來觀看.

[root@benjr ~]# tree -L 1
.
|-- bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib
|-- lib64
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- quota
|-- root
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tftpboot
|-- tmp
|-- usr
`-- var

在 Linux 的世界中不管是裝置還是一般文件都是以檔案的方式來呈現.不過所有的檔案可以區分為兩大類.

  • shareable vs unshareable files
  • Variable vs. static files

Shareable 的檔案除了 local 端可以存取連 remote 端的 Hosts 都可以存取,而 unshareable 的檔案就只限定 local 端可以存取比如 local 端的裝置檔案或是程序. Variable 的檔案像是文件或是設定檔,都可以隨時修改的.static 的檔案像是 binaries 的執行檔,除非從新編譯外是無法更動的.

現在我們來看看這些目錄下都裝了哪一類的檔案.

|– bin
/bin 裡面的執行檔包括了 cp , mkdir 等.可以讓 root 來維護修復系統所需要的相關指令等
|– boot
這裡面存放著開機時所需的 Kernel 和 RamDisk 以及其設定檔,通常使用獨立的磁區來存放 boot 的資料.
|– dev
所有的 system 和 virtual 裝置檔都是存放在此,在 2.6.15 之後都是透過 udev 來建立移除 /dev/ 裡面的裝置.關於 udev 可以參考 http://benjr.tw/10632
/dev 的檔案可以區分為兩種 c (character) 只提供序列資料流的裝置如滑鼠鍵盤以及 modem 以及 b (block) 所有可以任意存取的裝置如硬碟等.
|– etc
所有的設定檔都可以在這裡面找到.
|– home
除了 root 的使用者的家目錄都存放在此.
|– lib
所有的執行檔所需的函式庫都是存放在這裡.
|– lib64
如果執行檔是 64 位元時其函式庫是存放在這裡.
|– lost+found
ext2 / ext3 特有的目錄,當檔案系統發生錯誤時其錯誤片段將存放於此.
|– media
如 CD / DVD , flash key, ZIP 等可以移除的裝置都會被掛載在此目錄下面.
|– mnt
僅提供給使用者暫時可掛載的目錄,如遠端的 NFS 等.
|– opt
非標準的程式如 third party 的程式皆歸位於此.
|– proc
這個目錄下的資訊都是和核心相關的資料.如 CPU 以及其他硬體的相關設定值.
|– root
root 使用者的家目錄.
|– sbin
放在 /sbin 裡面的執行檔都是在開機過程中所需要的,如 fdisk.
|– selinux
Security Enhanced Linux 的目錄,主要是針對檔案安全權限作加強的一套工具.
|– srv
用來存放 www , FTP , CVS 等檔案,但目前是空的.
|– sys
從 2.6 核心開始硬體的系統資訊以更階層式目錄的架構來存放,檔案內容類似於 /proc . http://benjr.tw/20857
|– tftpboot
tftp 所使用的目錄.常用於儲存網路開機 PXE 的檔案.
|– tmp
用來存放一些暫時的檔案.
|– usr
usr(Unix Software Resource) 主要就是存放軟體的資源,如核心的 source code 就是存放在 /usr/src/ 目錄下.
`– var
一些需要常更新的資料都會存放在此目錄下,如 web (/var/www/) ftp (/var/ftp) logs (/var/log) 等資料.

網友的想法

  1. 自動參照通知: Linux – File | Benjr.tw

發表迴響