FHS的产生

我们知道目前linux的发行版本很多,如果每一个发行版本,它的目录层次结构都不相同的话,那么当管理员去管理其他的linux主机时,就会不知所措了。而且在开发过程中,如果每一个程序员都按照自己的想法去存放的数据的话,那么其他的程序员想去查找别人的数据文件时,这时问题就来了,因为文件系统中存放了那么多的数据,谁知道你把数据存放在哪儿了?因此,需要一个标准来规范,这样每个人都按照这种规范去存放、查找数据等操作,这样,当其他人如果需要去查找的话,就会简单多了。


FHS:全称为文件系统目录标准

用于规范的目录的层次结构

当然,在这里只介绍一些比较常见的目录结构

/boot:系统启动的相关文件,如内核、initrd以及grub(bootloader)

/dev:设备文件的存放位置,这个目录是不能单独分区的

    设备文件分为块设备文件和字符文件

        块设备文件:随机访问设备,按数据块为单位来访问,如磁盘

        字符设备文件:线性访问,按字符为单位来访问

/etc:配置文件的存放位置

/home:普通用户的家目录位置,默认普通用户的家目录为/home/USERNAME

/root:管理员的家目录,不能单独分区

/lib:库文件和内核模块存放的位置

    内核模块目录:/lib/modules

    库分为静态库和动态库

    静态库:形如libxxx.a的样子,利用静态库编译的文件比较大,因为静态库被整合到目标代码

            中,因此静态库不需要外部函数库的支持。

    动态库:形如libxxx.so的样子,动态函数库没有整合在目标代码中,只能被调用,当程序执行到相             关函数时,动态函数库中的文件才会被调用,因此程序的运行环境需要含有动态函数库。

/media:挂载点目录,一般用于移动设备的挂载

/mnt:挂载点目录,一般用于额外的临时文件的挂载

/opt:可选目录,第三方程序的安装目录

/proc:伪文件系统,存放着内核映射文件(当系统关机时,里面为空)

/sys:伪文件系统,存放着跟硬件设备相关的属性映射文件(关机后,也为空)。该目录不能单独分区

/tmp:临时文件,/var/tmp也存放着临时文件

/var:可变化的文件,如log,mail等。这个文件里面存放了许多的日志信息,建议单独分区。

/bin:普通用户的使用命令的二进制文件(跟系统启动相关的)

/sbin:管理员使用的命令的二进制文件

/usr:存放着全局共享的只读文件

    当然里面还有其他子目录,如:

    /usr/bin:(跟系统正常运行相关的命令)

    /usr/sbin:同上

    /usr/lib:函数库文件

    这几个目录提供了系统的核心功能,可以单独分区

    

    /usr/local:第三方非关键性的程序

        /usr/local/bin

        /usr/local/sbin

        /usr/local/lib

    /usr/local提供了第三方软件所需要的主要程序和指令,建议单独分区


其中/etc,/bin、/sbin、/lib这几个目录中的文件,系统开机就会使用到的程序,因此不能挂载在额外的分区上,必须在根文件系统上。


  

说明:以上只属个人了解