歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux學習筆記——Linux目錄配置

Linux學習筆記——Linux目錄配置

日期:2017/2/28 14:55:44   编辑:Linux教程

Linux下一切都是文件,所以了解Linux下目錄所對應的意義與內容就顯得極其的重要。下面就來聊一聊Linux目錄的配置。講到目錄的配置,就不得不提到Linux目錄配置標准(FHS)。

Linux目錄配置標准:FHS

因為利用Linux來開發產品或distribution的團隊/公司與個人實在太多了,如果每個人都用自己的想法來配置文件放置的目錄,那麼將造成很多管理上的困擾。所以,後來就有所謂的Filesystem Hierarchy Standard(FHS)標准。

FHS的主要目的是:希望讓用戶可以了解到已安裝軟件通常放置在哪個目錄下,所以使用者都能夠遵循FHS的標准。也就是說,FHS的重點在於規范每個特定的目錄下應該要放置什麼樣子的數據而已。

事實上,FHS針對目錄樹架構僅定義出三層目錄下面應該放置什麼數據而已,分別為:

/(root,根目錄):與開機系統有關;

/usr(UNIX software resource):與軟件安裝/執行有關;

/var(variable):與系統運行過程有關。

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

根目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是有根目錄衍生出來的,而且根目錄也與開機、還原、系統修復等操作有關。由於系統開機時需要特定的開機軟件、內核文件、開機所需程序、函數庫等文件數據,若系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序。

FHS標准建議:根目錄(/)所在分區應該越小越好,且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好;如此不但性能較好,根目錄所在的文件系統也不容易發生問題。

FHS定義出根目錄(/)下子目錄,如下:

/bin:放置的是在單用戶維護模式下還能夠被操作的命令。/bin下的命令可以被root與一般用戶使用,主要有cat,chmod,chown,date,mv,mkdir,cp,bash等產用命令。

/boot:放置開機會使用到的文件,包括Linux內核文件以及開機菜單與開機所需配置文件等。如使用的是grub這個引導裝載程序,則會存在/boot/grub。

/dev:在Linux下,任何設備與接口設備都是以文件的形式存在於這個目錄中,你只有通過訪問這個目錄下面的某個文件,就等於訪問某個設備。

/etc:系統的主要配置文件幾乎都放置在這個目錄內;FHS建議:不要放置可執行文件(binary)在這個目錄中。比較重要的目錄有:

  • /etc/init.d/:所有服務的默認啟動腳本都是放在這裡
  • /etc/xinetd.d/:super daemon管理的各項服務的配置文件目錄
  • /etc/X11/:與X Window有關的各種配置文件都放在這裡

/home:系統默認的用戶主文件夾(home directory)。

/lib:系統的函數庫非常多,而/lib放置的則是在開機時會用到的函數庫,以及在/bin或/sbin下面的命令會調用的函數。如/lib/modules/這個目錄,放置的為內核相關的模塊(驅動程序)。

/media:放置的是可刪除的設備,包括軟盤、光盤、DVD等設備都暫時掛載於此。

/mnt:暫時掛載某些額外的設備。

/opt:放置第三方軟件的目錄。

/root:系統管理員(root)的主文件夾。

/sbin:放置的為開機過程中所需要的,裡面包括了開機、修復、還原系統所需的命令。

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

/tmp:這裡是讓一般用戶或者是正在執行的程序暫時放置文件的地方。

因為根目錄與開機有關,開機過會被掛載程中僅有根目錄、其他分區則是在開機完成之後才會持續進行掛載的行為。因此根目錄下與開機過程有關的目錄就不能夠與根目錄放在不同的分區去。不可與根目錄分開的目錄有:

/etc:配置文件

/bin:重要執行文件

/dev:所需要的設備文件

/lib:執行文件所需的函數庫與內核所需的模塊

/sbin:重要的系統執行文件

/usr的意義與內容

usr是UNIX Software Resource的縮寫,也就是“UNIX操作系統軟件資源”所放置的目錄,所有系統默認的軟件(distribution 發布者提供的軟件)都會放置到/usr下。

/usr的子目錄,如下:

/usr/X11R6/:為X Window系統重要數據所放置的目錄,之所以取名為X11R6是因為改版的第六次釋出

/usr/bin/:絕大部分的用戶可使用的命令放在這個目錄裡

/usr/include/:C/C++等程序的頭文件(header)與包含文件放置處

/usr/lib/:包含各應用軟件的函數庫、目標文件(object file),以及不被一般用戶管用的執行文件或腳本(script)

/usr/local/:系統管理員在本機自行安裝自己下載的軟件,建議安裝到這個目錄,會比較容易管理

/usr/sbin/:非系統正常運行所需要的系統命令,最常用的就是某些網絡服務器軟件的服務命令(daemon)

/usr/share/:放置共享文件的地方

  • /usr/share/man:在線幫助文件
  • /usr/share/doc:軟件雜項的文件說明
  • /usr/shar/zoneinfo:與時區有關的時區文件

/usr/src/:一般源碼建議放置到這裡,src有source的意思,內核源碼則建議放置到/usr/src/linux/目錄下

/var的意義與內容

/usr是安裝時會占用較大硬盤容量的目錄,那麼/var就是系統運行後才會漸漸占用硬盤容量的目錄。因為/var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄文件(log file)以及某些軟件運行所產生的文件,包括程序文件(lock file,run file)。

/var的子目錄,如下:

/var/cache/:應用程序本身運行過程中會產生的一些暫存文件

/var/lib/:程序本身執行的過程中,需要使用到的數據文件放置的目錄

/var/lock/:某些設備或 者是文件資源一次只能被一個應用程序所使用,如果同時又兩個程序使用該設備時,就可能產生一些錯誤的狀態,因此就得要將該設備上鎖(lock),以確保該設備只會該單一軟件所使用

/var/log/:登錄文件放置的目錄

/var/mail/:放置個人電子郵件信箱的目錄

/var/run/:某些程序或者服務啟動後,會將它們的PID放置在這個目錄下

/var/spool/:這個目錄通常放置一些隊列數據,所謂“隊列”就是排隊等待其他程序使用的數據

Copyright © Linux教程網 All Rights Reserved