歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux之RHEL6目錄結構

Linux之RHEL6目錄結構

日期:2017/2/28 16:25:39   编辑:Linux教程

由於Linux內核是自由、免費的,所以有很多人開發了基於Linux的操作系統,如果每個人都使用自己的目錄配置方法,那麼將可能會帶來很多管理問題。所以,後來就有所謂的Filesystem Hierarchy Standard (FHS)標准的出爐了,它是由Linux基金會發布的Linux標准規范,以實現天下Linux的大統一。

根據FHS的官方文件指出, 他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置於那個目錄下, 所以他們希望獨立的軟件開發商、操作系統制作者、以及想要維護系統的用戶,都能夠遵循FHS的標准。FHS的重點在於規范每個特定的目錄下應該要放置什麼樣子的數據。

FHS定義了在/(root 根目錄)[與系統開機有關]下各個主要目錄應該存放的主要文件內容,此外還專門定義了/usr(unix software resource)[與軟件安裝/執行有關]和/var(variable)[與系統運行有關]兩個目錄及其子目錄的結構。這樣當我們使用來自不同公司開發的Linux系統時,你就可以很快的在某個地方找到你想要的文件了。

根目錄 (/) 的意義與內容

根目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的, 同時根目錄也與開機/還原/系統修復等動作有關。 由於系統開機時需要特定的開機軟件、核心文件、開機所需程序、 函數庫等等文件數據,若系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序才行。 因為根目錄是這麼的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區內,因為越大的分區,你就會放入越多的數據,如此一來根目錄所在分區就可能會有較多發生錯誤的機會。
因此FHS標准建議:根目錄(/)所在分區應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統也不容易發生問題。

因此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有權力修改。比較重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:
/etc/init.d/:所有服務的預設啟動腳本都是放在這裡的 ?
/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的軟件就建議存放到此目錄下了。 另外,如果你想要自行安裝額外的軟件(非原系統提供的),那麼也能夠將你的軟件安裝到這裡來。 不過,我們常見的,還是習慣存放在/usr/local目錄下。

/root 系統管理員(root)的家目錄。之所以放在這裡,是因為如果進入單人維護模式而僅掛載根目錄時, 該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄存放在同一個分區中。

/sbin Linux有非常多命令是用來設定系統環境的,這些命令只有root才能夠利用來[設定]系統,其他用戶最多只能用來[查詢]而已。 放在/sbin底下的為開機過程中所需要的,裡面包括了開機、修復、還原系統所需要的命令。 至於某些服務器軟件程序,一般則存放到/usr/sbin/當中。至於本機自行安裝的軟件所產生的系統執行文件(system binary), 則存放到/usr/local/sbin/當中了。常見的命令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv srv可以視為[service]的縮寫,是一些網絡服務啟動之後,這些服務所需要取用的數據目錄。

/tmp 這是讓一般用戶或者是正在執行的程序暫時存放文件的地方。 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要數據不可存放在此目錄。因為FHS甚至建議在開機時,應該要將/tmp下的數據都刪除,RHEL和CentOS就是在開機後,清空裡面的內容的。

事實上FHS針對根目錄所定義的標准就僅有上面這些。當然FHS僅是一個參考,每個不同的發行版還是會有自己的一些獨特設計。我們這裡以RHEL6為例,做個簡單的介紹。

/cgroup rhel6為內核准備了一個新特性:資源控制。此服務的軟件包是libcgroup。有了這個,你就可以分配資源,例如:CPU time,系統內存, 網絡帶寬等。這個是被cgconfig服務所控制的。如果此服務沒有啟動,在根目錄下的cgroup文件夾裡就不會存在內容。啟動此服務之後,就會在/cgroup目錄下面多出一些內容。(service cgconfig start/stop)

/selinux 是Secure Enhance Linux(SELinux)的執行目錄,他把服務和系統獨立地分開來,這樣服務被黑了就不能影響到系統的安全。

/lost+found 這個目錄是使用標准的ext2/ext3/ext4文件系統格式才會產生的一個目錄,目的在於當文件系統發生錯誤時, 將一些遺失的片段存放到這個目錄下。這個目錄通常會在分區的最頂層存在, 例如你加裝一顆硬盤於/disk中,那在這個系統下就會自動產生一個這樣的目錄[/disk/lost+found]

/proc 這個目錄本身是一個虛擬文件系統(virtual filesystem),他存放的
數據都是在內存當中, 例如系統內核、進程信息(process)、周邊設備的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間。比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。

/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與內核相關的信息。 包括目前已加載的內核模塊與內核偵測到的硬件設備信息等等。這個目錄同樣不占硬盤容量。

Copyright © Linux教程網 All Rights Reserved