Re:從零開始的Linux之路(目錄配置)

提亞の鍊金工坊發表於2018-08-15

基於 Red Hat Enterprise Linux 7.5 或者 CentOS 7.4


 

FHS協議(Filesystem Hierarchy Standard)——檔案系統層次化標準

該標準定義了主要的目錄結構,便於統一開發和後續管理

 

該協議大體上只定義了兩層,一是“”根目錄,二是“/usr”和“/var”兩個目錄的子目錄結構

 

根目錄定義

根目錄是Linux系統中最核心的目錄,不但是所有目錄的根源所在,同時根目錄也和開機、還原、系統修復等操作有關,所以當系統當機的時候,根目錄就必須包括修復程式才行,

FHS關於根目錄的定義(就算實體目錄不在這,也建議新增一個快捷方式在這裡):

  • /bin:該目錄放置了單人維護模式下還能被使用的系統指令。
  • /boot:該目錄放置了開機會使用到的檔案,包括Linux核心檔案以及開機選單和開機設定檔案等
  • /dev:這個目錄主要是放置外掛裝置檔案,也就是硬碟這些
  • /etc:該目錄存放了幾乎所有的Linux設定檔案,賬號密碼、服務啟動檔案等。/etc目錄下的檔案可被一般人查閱,但只有root有對其的修改權
    • /etc/opt(必要):該目錄放置了第三方軟體/opt的設定檔案
    • /etc/x11(可選):與X Window有關的設定檔案均在此處,特別是xorg.conf這個X Server的設定檔案
    • /etc/sgml(可選):與SGML格式有關的設定檔案
    • /etc/xml(可選):與xml格式有關的設定檔案
  • /lib:該目錄放置了開機時會用到的指令庫,以及/bin或/sbin的指令呼叫的指令庫
    • /lib/modules(必要):系統核心驅動程式,特別是恢復並重新引導系統時需要的模組
  • /media:媒體檔案,光碟、DVD這些都會掛載在這裡
  • /mnt:臨時掛載區,和/media沒太多的區別
  • /opt:第三方軟體放置區,所有的第三方(非Linux核心)軟體都需要放置在這裡
  • /run:系統快取區
  • /sbin:開機過程中需要的指令,包括開機、修復、還原系統等指令
  • /srv:某些網路服務啟動之後,這些服務使用的資料區,如www、FTP等
  • /tmp:讓一般使用者以及程式臨時放置檔案的地方,任何人都可以在此存放檔案(不要將重要檔案存放在此),該目錄建議定期清理下
  • /usr:見下面詳細說明
  • /var:見下面詳細說明
  • /home(可選):預設的家目錄,建立賬號的時候家目錄都會在這,當然也可以指定建立賬號的不設家目錄
    • ~:代表當前使用者的家目錄
    • ~username:代表username的家目錄
  • /lib64(可選):64位指令庫
  • /root(可選):root的家目錄,之所以不在/home裡面,因為進入維護模式掛載根目錄的時候同時擁有root的家目錄,所以分割磁碟的時候建議root和根放在一塊
  • /lost+found:這個目錄只存在於採用ext2/ext3/ext4的系統儲存格式的Linux系統,即centos7之前的版本都會有這個目錄,而採用了xfs系統的Linux則不存在該目錄
  • /proc:虛擬記憶體目錄,該目錄存放的都是系統的快取檔案,例如核心、外設狀態以及網路狀態等,因為檔案都是在內容中所以該目錄不會佔用實際物理空間
  • /sys:和/proc類似,儲存的是核心以及硬體資訊等,包括,已載入的核心模組和監視到的硬體資訊等,該目錄也是不佔用實際物理空間

 

/usr定義

usr(Unix Software Resource),FHS協議建議開發者或者運維人員以及其他使用者將第三方軟體放置在該目錄下,不要另行開闢新目錄,系統剛剛安裝完畢的時候該目錄佔用的空間是最大的

FHS關於usr目錄的定義:

  • /usr/bin:所有一般使用者能夠使用的指令均放置於此,而且根目錄下的/bin快捷方式連線的就是該目錄,同時該目錄下不應該有子目錄存在
  • /usr/lib:根目錄下的/lib的快捷方式連線的就是該目錄
  • /usr/local:建議將軟體都安裝或放置於該目錄下
  • /usr/sbin:非系統正常運作時需要的指令,常見的是伺服器軟體的服務指令,同時根目錄下的/sbin的快捷方式連線的就是該目錄
  • /usr/share:主要放置只讀檔案,包括共享檔案等,該目錄下放置的都是任何軟體硬體都能讀取的”文字“資料
  • /usr/game(可選):遊戲
  • /usr/include(可選):c/c++等語言的標頭檔案和庫檔案放置處
  • /usr/libexec(可選):某些不常用的執行檔案和指令碼放置的地方,例如X Windows的操作指令等
  • /usr/lib64(可選):根目錄下的/lib64的快捷方式連線的就是該目錄
  • /usr/src(可選):原始碼檔案放置處

 

/var定義

var主要放置常態性變動的檔案,例如快照(cache)、登陸檔案以及某些軟體執行之後產生的檔案等,var在系統執行時間久了以後佔用的空間會超過usr目錄

  • /var/cache:程式運作過程中產生的快取檔案
  • /var/lib:程式執行過程中需要使用到檔案的放置處
  • /var/lock:檔案鎖,如果一個檔案同時被兩個程式呼叫,那麼該檔案的操作權會鎖定給其中一方,另一方則只有只讀許可權同時無法修改該檔案,直到另一方的鎖定權解除
  • /var/log:這是登陸檔案放置的目錄,而不是日誌檔案
  • /var/mail:郵件目錄
  • /var/run:某些程式或者服務啟動之後,PID就會存放在這個目錄下
  • /var/spool:佇列檔案,即佇列中的程式使用的檔案,使用完成之後就會被刪除

相關文章