美文网首页
谈谈Linux系统目录

谈谈Linux系统目录

作者: spt_genius | 来源:发表于2020-03-27 19:00 被阅读0次

    谈谈Linux系统目录


    历史

    Linux的开放导致了很多的“发行版”,导致的一个最严重的问题就是文件系统布局的不一致。为了有一个公认的标准,Linux社群于1993年发起了一个计划,打算定制一套适合一般发行版的文件系统布局标准。该计划于1994年形成,称为Linux Filesystem Standard(简称FSSTND)。这份草案标准获得了广泛的响应,甚至被认为应该被提升到更高的层次,成为所有Unix-like操作系统的标准。后来消减了其中原本针对Linux而设计的部分,成为后来的Filesystem Hierarchy Standard(简称FHS),2004年发布了2.3版本至今。


    数据类型

    FHS将数据的属性分为两类[1]

    * 可共享的(shareable)和不可共享的(unshareable)
    
        * `shareable` 可供网络上的多个主机系统同时访问的数据。通常是无关特定主机的一般性信息,诸如用户的数据文件、可执行的程序文件以及通用的配置文件。
    
        * `unshareable` 仅供特定主机使用的数据。通常是仅对特定主机才有意义的信息,像`passwd`文件、网络配置文件、系统日志文件等。
    
    * 可变的(variable)和静态不变的(static)
    
        * `variable` 会因系统运作或认为操作而经常变化的数据。例如:用户的系统日志文件。
    
        * `static` 除非人为的可以操作,否则平常不会有变化的数据。例如:二进制命令程序(像`ls`),这类文件只有在系统管理者进行版本升级时才有可能被修改。
    

    根目录/

    根目录位于整个目录树的最顶端。依据FHS的定义[2],根目录应该满足以下条件:

    • 必须含有足以启动操作系统的工具程序和文件,包括挂载其他文件系统的能力。

    • 必须具备系统管理者修理和恢复遭损系统所需要的工具程序。

    • 规模应该精简。

    • 应用软件不应该在根目录上创建文件或者目录。

    根目录应该有的基本目录[3]

    • /bin

      系统的基本命令,像是cp,ls,ln,mkdir等。此目录应该含有解决问题所需的工具。

    • /boot

      存放内核镜像文件,boot loader所需的文件。

    • /dev

      设备文件,这是访问磁盘与其他设备所需要的。

    • /etc

      个别系统的配置信息,特别是启动时期会用到的信息必须齐全,例如:passwd,hosts等。

    • /lib

      存放共享链接库以及内核模块。这些都是系统进行初始化时所必需的的。

    • /media

      它是用来挂载插入式储媒。具有和/mnt相同的作用。

    • /mnt

      这是个空目录,它只包含几个挂载点,用以挂载临时的文件系统。

    • /opt

      主要用于安装非操作系统所安装的额外软件。第三方软件商常会选用这个未知来安装他们的软件。

    • /sbin

      用于系统管理的基本工具。例如:fdisk,fsck以及mkfs等。

    • /srv

      系统服务的专属数据。这是FHS2.3才提出的,是让用户可以找到特定系统服务的数据文件以及相关的脚本。

    • /tmp

      存放临时文件。

    • /usr

      存放应用软件系统。

    • /var

      存放随时间改变的数据,像日志文件。

    /usr/var的目录结构其实还值得深入探讨。后续再来聊。


    参考


    1. FHS -- Chapter 2. The Filesystem

    2. FHS -- Chapter 3. The Root FileSystem

    3. FHS -- The Root FileSystem Requirements

    相关文章

      网友评论

          本文标题:谈谈Linux系统目录

          本文链接:https://www.haomeiwen.com/subject/gkkxuhtx.html