zoukankan      html  css  js  c++  java
  • 文件系统层次结构标准 Linux 系统目录结构

    https://zh.wikipedia.org/wiki/文件系统层次结构标准

    多数Linux发行版遵从FHS标准并且声明其自身政策以维护FHS的要求。 [3] [4] [5] [6] 但截至2009年,包括由自由标准小组成员参与开发的版本在内的绝大多数发行版,并不完全执行建议的标准。

    当FHS创建之时,其他的UNIX和类Unix操作系统已经有了自己的标准,尤其是hier(7)文件系统布局描述。 自从第七版Unix(于1979年)发布以来已经存在,或是SunOS filesystem(7) [7] 和之后的Solaris filesystem(5)。 例如,macOS使用如 /Library /Applications/Users 等长名与传统UNIX目录层次保持一致。

    现在的Linux发行版包含一个/sys目录作为虚拟文件系统(sysfs,类似于 /proc,一个procfs),它存储且允许修改连接到系统的设备,然而许多传统UNIX和类Unix操作系统使用/sys作为内核代码树的符号链接

    一些Linux系统如GoboLinuxSyllable Server使用了和FHS完全不同的文件系统层次组织方法。

    历史

    开发一套文件系统层次结构标准的进程始于1993年8月,标准努力重整Linux的文件和目录结构。FSSTND (英文Filesystem Standard),一个针对Linux操作系统的文件系统层次结构标准在1994年2月14日发布。 后续的修正版本分别在1994年10月9日和1995年3月28日发布。

    在1996年初, 开发一个更加全面的、不仅解决Linux,而且解决其他类Unix系统目录层次结构问题的FSSTND的计划在BSD 开发社区成员的协助下正式被采纳。因此,计划重点解决在类Unix系统上普遍存在的问题。 为了适应标准范围的扩充,标准的名称修改为文件系统层次结构标准。

    目录结构

    在FHS中,所有的文件和目录都出现在根目录"/"下,即使他们存储在不同的物理设备中。但是请注意,这些目录中的一些可能或可能不会在Unix系统上出现,这取决于系统是否含有某些子系统,例如 X窗口系统 的安装与否。

    这些目录中的绝大多数都在所有的UNIX操作系统中存在,并且一般都以大致类似的方法使用;然而,这里的描述是针对于FHS的,并未考虑除了Linux平台以外的权威性。


    目录 描述
    / 第一层次结构 的根、 整个文件系统层次结构的根目录。
    /bin/ 需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如: cat、 ls、 cp。
    /boot/ 引导程序文件,例如: kernel、initrd;时常是一个单独的分区[8]
    /dev/ 必要设备, 例如:, /dev/null.
    /etc/ 特定主机,系统范围内的配置文件。
    关于这个名称当前有争议。在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为etcetera, [9] 这是由于过去此目录中存放所有不属于别处的所有东西(然而,FHS限制/etc存放静态配置文件,不能包含二进制文件)。 [10] 自从早期文档出版以来,目录名称已被以各种方式重新称呼。最近的解释包括反向缩略语如:"可编辑的文本配置"(英文 "Editable Text Configuration")或"扩展工具箱"(英文 "Extended Tool Chest")。 [11]

    /etc/opt/
    /opt/的配置文件
    /etc/X11/
    X窗口系统(版本11)的配置文件
    /etc/sgml/
    SGML的配置文件
    /etc/xml/
    XML的配置文件
    /home/ 用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。
    /lib/ /bin/ 和 /sbin/中二进制文件必要的库文件。
    /media/ 可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。
    /mnt/ 临时挂载的文件系统。
    /opt/ 可选应用软件 包。[12]
    /proc/ 虚拟文件系统,将内核与进程状态归档为文本文件。例如:uptime、 network。在Linux中,对应Procfs格式挂载。
    /root/ 超级用户的家目录
    /sbin/ 必要的系统二进制文件,例如: init、 ip、 mount。
    /srv/ 站点的具体数据,由系统提供。
    /tmp/ 临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。
    /usr/ 用于存储只读用户数据的第二层次; 包含绝大多数的(多)用户工具和应用程序。[13]
    /usr/bin/
    非必要可执行文件 (在单用户模式中不需要);面向所有用户。
    /usr/include/
    标准包含文件。
    /usr/lib/
    /usr/bin/和/usr/sbin/中二进制文件的库。
    /usr/sbin/
    非必要的系统二进制文件,例如:大量网络服务的守护进程。
    /usr/share/
    体系结构无关(共享)数据。
    /usr/src/
    源代码,例如:内核源代码及其头文件。
    /usr/X11R6/
    X窗口系统 版本 11, Release 6.
    /usr/local/
    本地数据的第三层次, 具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/.
    [14]

    /var/ 变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。
    /var/cache/
    应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。
    /var/lib/
    状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。
    /var/lock/
    锁文件,一类跟踪当前使用中资源的文件。
    /var/log/
    日志文件,包含大量日志文件。
    /var/mail/
    用户的电子邮箱。
    /var/run/
    自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[15]。
    /var/spool/
    等待处理的任务的脱机文件,例如:打印队列和未读的邮件。
    /var/spool/mail/
    用户的邮箱(不鼓励的存储位置)
    /var/tmp/
    在系统重启过程中可以保留的临时文件。
    /run/ 代替/var/run目录。

    Linux 系统目录结构 | 菜鸟教程 https://www.runoob.com/linux/linux-system-contents.html

    • /bin
      bin是Binary的缩写, 这个目录存放着最经常使用的命令。

    • /boot:
      这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev :
      dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc:
      这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home
      用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib
      这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    • /lost+found
      这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    • /media
      linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    • /opt
       这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc
      这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
      这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    • /root
      该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin
      s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /selinux
       这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    • /srv
       该目录存放一些服务启动之后需要提取的数据。

    • /sys

       这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

      sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

      该文件系统是内核设备树的一个直观反映。

      当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    • /tmp
      这个目录是用来存放一些临时文件的。

    • /usr
       这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin:
      系统用户使用的应用程序。

    • /usr/sbin:
      超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src:
      内核源代码默认的放置目录。

    • /var
      这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    • /run
      是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

    在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

    /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

    /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

    /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

  • 相关阅读:
    更改文件默认打开方式
    python数据分析高频词提取,pyecharts词云制作并保存
    pyecharts V1.x版本使用Map绘制地图修改主题背景色等
    设置随机请求头和使用代理
    【重学前端】JS基础-原型和原型链
    【重学前端】JS基础-变量和类型
    Bootstrap blog整页制作
    拉勾网 移动端流式布局与rem布局整页制作
    PC端管理后台整页制作
    QQ飞车官方首页(部分)制作
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6534795.html
Copyright © 2011-2022 走看看