LINUX目錄——FHS標準

前言:該博文基於Centos7編寫

Linux目錄配置依據——FHS

FHS是一個標準,它們的主要目的是希望讓用戶可以瞭解到已安裝軟件通常存放在哪個目錄下。

四個類型

  • 可分享:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,,是能夠分享給網絡上其他主機掛載使用的目錄。
  • 不可分享:自己機器上運行的設備文件或是和程序相關的socket文件等,由於與自身機器有關,所以不適合分享給其他主機。
  • 不變:有些數據是不會經常變動的,例如函數庫、文件說明、系統管理員所管理的主機服務配置文件等。
  • 可變動:經常修改的數據,例如日誌文件,一般用戶組可自行接收的新聞組等。

三個目錄結構

  • /:(root,根目錄):與啓動系統有關。
  • /usr:(unix softwore resource):與軟件安裝/執行有關。
  • /var:(variable)與系統運行過程有關。

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

不但所有的目錄都是由根目錄衍生出來,同時根目錄也與啓動、還原、系統修復等操作有關。在系統出現錯誤時,根目錄要包含能夠修復文件系統的程序纔行,因此FHS建議:根目錄(/)所在的分區越小越好,且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好,這樣不但性能好,根目錄所在的文件系統也不容易發生問題

根目錄下的子目錄

哪怕沒有以下物理目錄,也至少要有鏈接(link)目錄纔好。
在這裏插入圖片描述

  • /bin:/bin下放置的是在單人維護模式下還能被使用的命令。在/bin下面的命令root和一般用戶都可以使用。

    主要有cat、chmod、chown、date、mv、mkdir、cp、bash等。

  • /boot:該目錄下主要放置啓動時會使用到的文件,包括Linux內核文件和啓動選項,以及啓動所需的配置文件等。

    Linux內核常用的文件名爲:vmlinuz。

  • /dev:在Linux系統上,任何設備與接口設備都是以文件的形式存在於這個目錄當中的。你通過讀寫該目錄下的某個文件就可以讀寫某個設備。

    比較重要的文件有:/dev/null、/dev/zero、/dev/tty、/dev/loop*、/dev/sd*。

  • /etc:這個目錄內主要存放系統主要的配置文件,例如人員的賬號密碼文件、各種服務的啓動文件等。一般這個文件普通用戶是隻讀的,root用戶才能修改。FHS建議不要將可執行文件放在這個目錄中。

    比較重要的文件有:/etc/modprobe.d/、/etc/passwd、/etc/fstab、/etc/issue。
    另外還有一個重要的目錄最好也在/etc目錄下:/etc/opt(必要):這個目錄存放第三方輔助軟件——/opt的相關配置文件。

  • /lib:放置的是在啓動時會用到的函數庫,以及在/bin或/sbin下的命令需要調用的函數庫。函數庫可以理解爲外掛插件,某些命令需要這些插件才能順利完成程序的執行。

    /lib/modules/必須要在/lib下,它存放的主要是可抽換式的內核相關模塊(驅動程序)。

  • /media:放置的是可刪除的設備,包括軟盤、光盤、DVD等設備都暫時掛載在這裏

    常用的文件名有:/media/floppy、/media/cdrom等。

  • /mnt:在早期,這個目錄就是/media的作用,在有了/media之後,這個目錄就用來暫時掛載。

  • /opt:給第三方輔助軟件放置的目錄。例如桌面管理系統KDE就是一個獨立的軟件,他安裝在Linux中的話,就建議放在這裏。

  • /run:系統啓動所產生的各項信息就放在這裏。因爲/run可以用內存模擬,所以性能較好。

  • /sbin:該目錄下存放的是啓動過程中需要的,包括啓動、修復、還原系統所需的命令

    常見的命令包括:fdisk、fsck、ifconfig、mkfs等。

  • /srv:存放一些網絡服務啓動後,這些服務所需的數據。常見的如WWW、FTP等,WWW所需的網頁數據就可以放在/srv/www中。

  • /tmp:讓一些用戶或者正在執行的程序暫時存放文件的地方。這個目錄任何人都能夠存取,所以要定期清理。

  • /home:系統默認的用戶家目錄。在你新增一個一般用戶時,默認的用戶家目錄都會規範到這。

    比較重要的家目錄有兩種代號:

    • ~:代表目前這個用戶的家目錄。
    • ~dmtsai:代表dmtsai的家目錄。
  • /lib< qual >:用來存放與/lib不同格式的二進制函數庫,例如支持64位系統的/lib64等。

  • /proc:這個目錄是一個虛擬文件系統(virtual filesystem),它放置的數據都是在內存中的,所以本身不佔用硬盤空間,例如系統內核、進程信息、外接設備的狀態以及網絡狀態等。

    比較重要的文件:/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net*等。

  • /sys:也是一個虛擬文件系統,主要記錄內核與系統硬件信息相關的內容。包括目前已加載的內核模塊與內核檢測到的硬件設備信息。

  • /usr:第二層FHS設置。

  • /var:二層FHS設置。

/usr的意義和內容

usr是Unix Software Resourse的縮寫。/usr內存放的數據屬於可分享與不可變動的,他是Unix操作系統系統軟件資源所放置的目錄,而不是用戶數據。
/usr的子目錄建議如下:
在這裏插入圖片描述

  • /usr/bin/:一般用戶能夠使用的命令放在這裏。目前Centos7已將全部的用戶命令存放於此,使用鏈接文件的方式將/bin目錄鏈接至此,也就是說/bin和/usr/bin是一樣的。

  • /usr/lib/:基本上和/lib功能相同,所以/lib就是鏈接到此目錄中的。

  • /usr/local/:系統管理員在本機安裝自己下載軟件(非發行版默認提供的)都會放到該目錄下,以便於管理。因此/usr/local與/usr有類似的目錄結構。
    在這裏插入圖片描述

  • /usr/sbin/:非系統正常運行所需的命令,最常見的就是某些網絡服務器軟件的服務命令(deamon)。基本功能也和/sbin差不多,因此目前/sbin就是鏈接到此目錄中的。

  • /usr/share/:主要放置只讀的數據文件,當然也包括共享文件,在這個目錄下放置的數據幾乎是不分硬件架構的可讀的數據,因爲幾乎全是文本文件。

    常見的目錄如下:

    • /usr/share/man:在線幫助文件
    • /usr/share/doc:軟件的說明文檔
    • /usr/share/zoneinfo:與時區有關的時區文件
  • /usr/games/:與遊戲相關的數據放置在此。

  • /usr/include/:c/c++等程序語言的頭文件(header)和包含文件(include)放置處。

  • /usr/libexec/:某些不被一般用戶常用的執行文件或腳本會放在此。

  • /usr/lib < qual >/:與/lib < qual >/功能相同,現在/lib < qual >/就是鏈接到此目錄中。

  • /usr/src:一般的源代碼放置在此。例如內核文件的源代碼建議放置在/usr/src/Linux/目錄下。

/var的意義和內容

/var是在系統運行後纔會漸漸佔用硬盤容量的目錄。因爲/var目錄主要針對經常性變動的文件,包括緩存(cache)、日誌文件(log file)以及某些軟件運行時所產生的文件,包括程序文件(lock file、run file),或例如MySQL數據庫的文件。
常見的子目錄有:

  • /var/cache/:存放應用程序本身運行過程中會產生的一些緩存。

  • /var/lib/:程序本身執行過程中需要使用到的數據文件放置的目錄,在此目錄下各自的軟件應該要有各自的目錄。例如/var/lib/mysql,var/lib/rpm。

  • /var/lock/:某些設備或者文件資源一次只能被一個應用程序所使用,所以就要給該設備上鎖(lock),以確保該設備一次只能給單一軟件所使用。

  • /var/log/(重要!):是日誌文件存放的目錄。

    比較重要的文件有:

    • /var/log/messages、/var/log/wtmp(記錄登錄信息)等。
  • /var/mail/:放置個人電子郵箱的目錄,這個目錄和/var/spool/mail/互爲鏈接文件。

  • /var/run/:某些程序或者服務啓動後,會將他們的PID放在這個目錄下。該目錄鏈接到/run/目錄。

  • /var/spool/:這個目錄通常放置一些隊列數據,所謂的隊列就是排隊等待其他程序使用的數據,這些數據被使用後通常都會被刪除。
    舉例來說,系統收到新郵件會放在/var/spool/mail/中,但用戶收下該後,該信封原則上會被刪除。

彙總以上目錄出現的鏈接設置

  • /bin——>/usr/bin
  • /sbin——>/usr/sbin
  • /lib——>/usr/lib
  • /lib64——>/usr/lib64
  • /var/lock——>/run/lock
  • /var/run——>/run
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章