FHS文件系統各目錄功能

前言


FHS將文件根據不同的用途和特性分成了可共享的(shareable)和不可共享的(unshareable),可變的(variable)和靜態的(static)。不同的文件位于不同的目錄里面,將目錄分開了將有利于對文件的管理。


文件系統


  • 可共享的

文件可以被存儲于某一個主機上,然后供其他主機使用。如果想訪問其他主機上可共享的文件,可以將其他主機目錄掛載到本地目錄。如:/usr,/opt等。

  • 不可共享的

不可被共享的,如本地配置文件的。如:/boot,/etc等。

  • 靜態的

如lib、bin目錄等,除了管理員賬戶外其他用戶都不能訪問的文件。靜態文件還可以為一些只讀設備上面的文件。如:/usr,/etc。

  • 可變的

如/var目錄等,用戶可以修改的文件。如:/var等。

共享和靜態是兩個緯度的屬性,一個目錄可以分別具有兩種屬性,如/boot目錄,為不可共享的且靜態的,/urs為可共享的且靜態的。

FHS,Filesystem Hierarchy Standard(文件系統目錄標準)的縮寫,多數Linux版本采用這種文件組織形式。

根目錄

根目錄需要保證能引導系統啟動,且可以恢復、還原、修復系統。

引導啟動:根目錄存放了程序、配置、引導加載信息等一些必要的信息。

恢復系統:根目錄存放了一些診斷和修復程序信息。

還原系統:根目錄存放了可以通過備份還原系統的程序信息。

FHS
建議將根目錄分區設置得小一點。一方面根目錄經常通過比較小的設備安裝,沒必要太大。另一方面,根目錄存放的是系統內核和特定的配置等信息,通常根目錄是
不能共享的。較小的根目錄空間,可以服務器或工作證只需要比較小的本地空間即可。如果將根目錄設置成一個比較大的空間,有可能會出現一些跟根目錄較小的程
序不相容的情況。而且根目錄存放的是非常重要的文件和信息,較大的空間意味這更有可能出現根目錄磁盤損壞的可能。

目錄結構

如下的文件目錄或目錄連接是需要出現在根目錄(“/”)下的:

其中,要求存在的有如下目錄:

/

|—/bin

|—/boot

|—/dev

|—/etc

|—/lib

|—/media

|—/mnt

|—/opt

|—/sbin

|—/srv

|—/tmp

|—/usr

|—/var

可選擇的,而且FHS建議需要有的目錄有:

/

|—/home

|—/lib<qual>

|—/root

  • /boot : 靜態的引導加載程序

/boot目錄是啟動過程中非常重要的目。/boot 存放系統在引導過程中需要的所有數據。引導過程不需要的配置、映射程序等可以不在里面。/boo的數據在內核啟動用戶模式之前就會被用到。/boot 包含了磁盤的主引導程序和文件映射。

操作系統的內核必須在 / 或者 /root 里面。

  • /bin : 基礎的用戶命令二進制文件

/bin 包含了管理員和用戶都會用到的命令。/bin目錄下的命令被要求可以在不裝載其他文件系統的情況下(單用戶模式)使用。/bin目錄下同時還包含可以被其他腳本直接應用的命令。


/bin里面常見的必須有的命令有,權限管理(su、pwd、chmod),文件操作(cat、cp、mv、rm),目錄操作(ls、mkdir、
rmdir),進程管理(ps、kill)等。還有一些FHS建議需要的命令有網絡管理(netstat、ping)、文件壓縮(tar)等命令。

為了能兼容LinuxBourne Shell命令,在/bin/sh里面存放的命令實際上不是真正的二進制文件,而是指向了真正能執行的shell命令的鏈接。

  • /sbin : 系統文件

/sbin 目錄存放了供系統管理員使用的命令或工具。/sbin 包含了供系統引導啟動、修復、還原的文件。

為了更好的管理命令供某些特定的人使用還是給普通用戶使用,同時也是為了做好權限管理和系統安裝,劃分了/bin 和 /sbin 兩個目錄。一般情況下,如果普通用戶都會用到的指令就會放到 /bin 下面。除非特定的用戶或用戶組,不然禁止使用 /sbin下的指令。

  • /lib : 基礎共享庫函數和內核模塊

/lib 目錄存放了在引導啟動以及執行root命令需要的二進制文件。

  • /lib<qual> : 用戶替換的基礎庫函數

/lib<qual> 為 /lib 目錄下的一種或多種格式,用于支持多種文件格式(32位或64位)的庫函數。

一般情況下/lib<qual> 目錄會被命名為 /lib32 或 /lib64 。

  • /dev : 設備文件

/dev 目錄存放了設備文件。

  • /etc : 基于主機的系統配置

/etc 目錄存放配置文件。/etc 存放的配置文件指的是本地的配置。/etc 存放的是可以控制程序的運行配置,不允許在/etc 目錄下存放可執行的文件。

  • /opt : 附加程序的軟件包

/opt
安裝附加程序的軟件包的目錄。軟件包安裝到/opt
下時,靜態文件都被放到/opt/<package>(package為軟件的名稱)目錄下。/opt的幾個子目錄/opt/bin,
/opt/doc, /opt/include, /opt/info, /opt/lib,
/opt/man是預留給本地管理員使用的。/opt底下的軟件如果有變量則安裝在/var/opt里面,如果有配置則安裝在/etc/opt 里面。

  • /root : root用戶的home目錄

/root 目錄是root賬戶的home目錄,一般情況下不建議除了管理員賬戶之外的其他用戶訪問和使用。

  • /home : 用戶目錄

/home是基于站點的文件系統,根據不同站點內容可能不一樣。因此,程序設計的時候不要依賴于/home目錄的存儲位置。

例如小系統可能在/home目錄底下會根據用戶劃分子目錄,如/home/jack、/home/tom等。大型一點的服務器系統,在/home 目錄底下會先劃分用戶組在劃分用戶子目錄,如/home/guest/jack等。

  • /usr : 系統軟件資源

usr為Unix Software Resource的縮寫,存放了系統的軟件資源。管理員安裝的軟件主要存放在/usr目錄下。所以/usr 是一個占用空間比較大的目錄。

/usr 為一個可共享、只讀的文件夾,也就是說在兩個符合FHS標準的主機間,/usr可以被共享,但是不能被寫入信息。所以基于本機的數據不允許放在/usr底下,同時/usr盡量不要存放較大的文件。

/usr下有幾個子目錄比較重要:

/usr/bin:多數用戶命令

/usr/lib:軟件或程序的庫文件

/usr/sbin: 不太重要的系統指令

  • /var : 動態文件目錄

/var 存放了動態數據,如系統緩存、日志文件、臨時文件等。

  • /srv : 本系統為網絡服務提供的數據

/srv 包含了本系統為網絡服務提供的數據。/srv 目錄方便用戶通過網絡查找并范圍本地的數據,同時也為本地數據能根據只讀、可寫、腳本等劃分不同的目錄。

目前為止,/srv 目錄下的子目錄沒有標準,如可以通過協議命名 /srv/www,/srv/ftp,如果是大型服務器,也可以根據業務內心劃分,如/srv/physics/www等。所以程序在運行的過程中,不能依賴于/srv的目錄結構。

  • /media : 移動裝置掛載點

/media作為移動裝置的掛載點(如軟盤、CD roms等)。有時候也會以/mnt、/cdrom等目錄作為裝置的掛載點,如果全部掛載到根目錄 / 下,會導致根目錄存在大量的移動裝置子目錄了。有時候也會將/mnt 作為移動裝置的臨時掛載點。

常見的目錄有/media/cdrom,/media/floppy 等。

  • /mnt : 臨時掛載目錄的掛載點

/mnt 目錄作可以在管理員需要的時候作為臨時的掛載點。 /mnt 不能被需要安裝的程序所用。

  • /tmp : 臨時文件目錄 /

/tmp 作為程序在運行過程中臨時文件的地方,運行程序不要串改了其他程序的文件。

/tmp 重啟后可能會被系統清除掉,所以要重要的信息要保存到其他地方。

原創文章,作者:Zero,如若轉載,請注明出處:http://www.www58058.com/52024

(2)
ZeroZero
上一篇 2016-10-17
下一篇 2016-10-17

相關推薦

  • smb

    練習: 創建一個共享ftp,路徑為/var/ftp/pub;要求僅centos和gentoo用戶能上傳;此路徑對其它用戶不可見; [root@node1 ~]# yum -y install samba [root@node1 ~]# vim /etc/samba/smb.con…

    Linux干貨 2016-10-23
  • 第一周學習內容

    1、LINUX的三大主流版本:debian slackware redhat 2、一個完整的操作系統是由內核+運行在內核之上的應用程序組成。      LINUX操作系統是由linux內核+GNU開源組織編寫的應用程序組成(GNU/Linux) 3、CPU架構:X86(X64)、摩托羅拉的m68k、arm、IBM的POWER(性…

    Linux干貨 2016-12-03
  • 防護墻服務

    iptables的基本認識        Netfilter組件: 內核空間,集成在linux內核中 擴展各種網絡服務的結構化底層框架 內核中選取五個位置放了五個Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而這五個hoot functio…

    2017-08-21
  • Linux磁盤管理

     I/O Ports:I/O設備地址   一切皆文件:             poen(),read(),write(),close()   設備類型:     &nb…

    Linux干貨 2016-08-29
  • linux系統文件的元數據

    linux系統文件的元數據 什么是元數據 文件的數據分兩種: 一種元數據,既屬性數據:metadata 一種就是數據本身:data 如何查看元數據: stat stat命令用于顯示文件的狀態信息 [root@localhost ~]# stat /tmp/mylinux File: ‘/tmp/mylinux’ Size: 143 Blocks: 0 IO …

    Linux干貨 2018-03-11
  • Keepalive高可用Nginx服務測試

    環境   系統版本:CentOS 7.2  節點1地址:10.1.8.81  節點2地址:10.1.8.83  虛擬IP地址:10.1.8.248 安裝軟件     yum -y install nginx     yum -y …

    Linux干貨 2017-02-16
欧美性久久久久