linux FHS (Filesystem Hierarcht Standard) 目錄的重新認識

轉載自 : http://www.cnblogs.com/kzloser/articles/2673771.html 


最近,看到了FHS , 纔對 linux 下的各個目錄用重新認識了一下。

  FHS依據文件系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成爲四種交互作用的形態,用表格來說有點像底下這樣:

  可分享的(shareable) 不可分享的(unshareable)
不變的(static) /usr (軟件放置處) /etc (配置文件)
  /opt (第三方協力軟件) /boot (開機與核心檔)
可變動的(variable) /var/mail (使用者郵件信箱) /var/run (程序相關)
  /var/spool/news (新聞組) /var/lock (程序相關)

  • 可分享的:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據, 是能夠分享給網絡上其他主機掛載用的目錄;
  • 不可分享的:自己機器上面運作的裝置文件或者是與程序有關的socket文件等, 由於僅與自身機器有關,所以當然就不適合分享給其他主機了.
  • 不變的:有些數據是不會經常變動的,跟隨着distribution而不變動. 例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等;
  • 可變動的:經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等.


目錄 :(FHS 僅對下面這三個目錄底下放置什麼數據做了定義)

 1.  /(root , 根目錄) : 與開機系統有關。 (開機/ / 系統還原 / 系統修復)

 2. /usr (unix software resource) :  與軟件安裝/ 執行有關

 3. /var (variable) : 與系統運作過程相關


根目錄(/)底下目錄FHS定義的說明:

目錄 應放置文件內容
/bin 系統有很多放置執行文件的目錄,但/bin比較特殊.因爲/bin放置的是在單人維護模式下還能夠被操作的指令. 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令.
/boot 這個目錄主要在放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需配置文件等等. Linux kernel常用的檔名爲:vmlinuz,如果使用的是grub這個開機管理程序, 則還會存在/boot/grub/這個目錄喔!
/dev 在Linux系統上,任何裝置與接口設備都是以文件的型態存在於這個目錄當中的. 你只要透過存取這個目錄底下的某個文件,就等於存取某個裝置囉~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
/etc 系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啓始檔等等.一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的, 但是隻有root有權力修改.FHS建議不要放置可執行文件(binary)在這個目錄中喔.比較重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等.另外,其下重要的目錄有:
  • /etc/init.d/:所有服務的預設啓動 script 都是放在這裏的,例如要啓動或者關閉 iptables 的話:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』
  • /etc/xinetd.d/:這就是所謂的super daemon管理的各項服務的配置文件目錄.
  • /etc/X11/:與 X Window 有關的各種配置文件都在這裏,尤其是 xorg.conf 這個 X Server 的配置文件.
/home 這是系統默認的用戶家目錄(home directory).在你新增一個一般使用者賬號時, 默認的用戶家目錄都會規範到這裏來.比較重要的是,家目錄有兩種代號喔:
~:代表目前這個用戶的家目錄,而 
~dmtsai :則代表 dmtsai 的家目錄!
/lib 系統的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫而已. 什麼是函式庫呢?妳可以將他想成是『外掛』,某些指令必須要有這些『外掛』才能夠順利完成程序的執行之意. 尤其重要的是/lib/modules/這個目錄, 因爲該目錄會放置核心相關的模塊(驅動程序)喔!
/media media是『媒體』的英文,顧名思義,這個/media底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD等等裝置都暫時掛載於此.常見的檔名有:/media/floppy, /media/cdrom等等.
/mnt 如果妳想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中. 在古早時候,這個目錄的用途與/media相同啦!只是有了/media之後,這個目錄就用來暫時掛載用了.
/opt 這個是給第三方協力軟件放置的目錄.什麼是第三方協力軟件啊? 舉例來說,KDE這個桌面管理系統是一個獨立的計劃,不過他可以安裝到Linux系統中,因此KDE的軟件就建議放置到此目錄下了. 另外,如果妳想要自行安裝額外的軟件(非原本的distribution提供的),那麼也能夠將你的軟件安裝到這裏來. 不過,以前的Linux系統中,我們還是習慣放置在/usr/local目錄下呢!  Oracle 就安裝在這個目錄下
/root 系統管理員(root)的家目錄.之所以放在這裏,是因爲如果進入單人維護模式而僅掛載根目錄時, 該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分割槽中.
/sbin Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來『設定』系統,其他用戶最多隻能用來『查詢』而已. 放在/sbin底下的爲開機過程中所需要的,裏面包括了開機、修復、還原系統所需要的指令. 至於某些服務器軟件程序,一般則放置到/usr/sbin/當中.至於本機自行安裝的軟件所產生的系統執行文件(system binary), 則放置到/usr/local/sbin/當中了.常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等.
/srv srv可以視爲『service』的縮寫,是一些網絡服務啓動之後,這些服務所需要取用的數據目錄. 常見的服務例如WWW, FTP等等.舉例來說,WWW服務器需要的網頁數據就可以放置在/srv/www/裏面.
/tmp 這是讓一般使用者或者是正在執行的程序暫時放置文件的地方. 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下.當然,重要數據不可放置在此目錄啊! 因爲FHS甚至建議在開機時,應該要將/tmp下的數據都刪除唷!

除上 FHS 中定義的目錄說明外, 底下是幾個在Linux當中非常重要的目錄:

目錄 應放置文件內容
/lost+found 這個目錄是使用標準的ext2/ext3文件系統格式纔會產生的一個目錄,目的在於當文件系統發生錯誤時, 將一些遺失的片段放置到這個目錄下.這個目錄通常會在分割槽的最頂層存在, 例如你加裝一顆硬盤於/disk中,那在這個系統下就會自動產生一個這樣的目錄『/disk/lost+found』
/proc 這個目錄本身是一個『虛擬文件系統(virtual filesystem)』喔!他放置的數據都是在內存當中, 例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等.因爲這個目錄下的數據都是在內存當中, 所以本身不佔任何硬盤空間啊!比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等.
/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的信息. 包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等.這個目錄同樣不佔硬盤容量喔!




發佈了4 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章