​文件系统层级结构标准

多数Linux发行版遵从FHS标准并且声明其自身政策以维护FHS的要求。 [1] [2] [3] [4] 然而,包括由自由标准小组成员在内开发的绝大多数发行版(截至2009年),并不完全执行建议的标准。
当FHS创建之时,其他的UNIX和类Unix操作系统已经有了自己的标准,尤其是hier(7)文件系统布局描述。 自从第七版Unix(于1979年)发布以来已经存在,或是SunOS filesystem(7), [5] 和之后的Solaris filesystem(5)。 例如,Mac OS X使用如 /Library、 /Applications和/Users 等长名与传统UNIX目录层次保持一致。
现在的Linux发行版包含一个/sys目录作为虚拟文件系统(sysfs,类似于 /proc,一个procfs),它存储且允许修改连接到系统的设备,然而许多传统UNIX和类Unix操作系统使用/sys作为内核代码树的符号链接。
一些Linux系统如GoboLinux和Syllable Server使用了和FHS完全不同的文件系统层次组织方法。

文件系统层级结构标准

  文件系统层次结构标准英语:Filesystem Hierarchy StandardFHS定义了Linux操作系统中的主要目录及目录内容。在大多数情况下,它是一个传统BSD文件系统层次结构的形式化与扩充。

FHSLinux基金会维护,这是一个由主要软件或硬件供应商组成的非营利组织,例如HPRed HatIBM、和Dell

当前的版本是2.3,在2004129日公布。

历史:

开发一套文件系统层次结构标准的进程始于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 Window系统 的安装与否。

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

/:

   初级层次的根和根目录整个文件系统层次结构

/bin:

所有用户可用的基本命令程序文件。(可执行文件)例如:cat,ls,cp。

/sbin:

供系统管理使用的工具程序文件。(可执行文件)例如:init,ip,mount。

/boot:

引导加载器必须用到的各静态文件,例如:kernel,initramfs(initrd),grub等。

/dev

存储特殊文件或设备文件。例如:/dev/null。

    设备有两种类型:字符设备(线性设备)

                    块设备(随即设备)

/etc

系统程序的配置文件,只能为静态的文件。

/etc/opt:/opt/的配置文件。

/etc/X11:X windos(版本11)的配置文件。

/etc/sgml:SGML的配置文件。

/etc/xml:XML的配置文件。

/home

普通用户的家目录的集中位置;(一般每个普通用户的家目录默认为此目录与用户名同名的目录,/home/username),一般单独分区。

/lib

为系统启动或根文件系统上的应用程序(/bin,/snin等)提供共享库,以及为内核提供内核模块。

         libc.so.*: 动态链接的C库。

         ld*: 运行时链接器/加载器。

         modules用于存储内核模块的目录。

/lib64

64位系统特有的存放共享库的路径。

/media

  便携设式备挂载点,cdrom,floppy等。

/mnt

  其他文件系统的临时挂载点。

/opt

  附加应用程序的安装位置。

/root

  管理员的家目录。

/srv

  当前主机为服务提供的数据。

/tmp:

Temporary file ,为那些会产生临时文件的程序提供的用于存储临时文件的目录。可供所有用户执行写入操作;有特殊权限。在系统重启时目录文件不会被保留。

/usr

      Usr Hierarchy,全局共享的只读数据路径,包含绝大多数用户工具和应用程序。

      /usr/bin非必要可执行文件(在单用户中不需要);面向所有用户。

      /usr/sbin非必要二进制可执行文件。

      /usr/lib/usr/bin//usr/sbin/中二进制文件的共享库

   /usr/lib6464位系统特有的存放共享库的路径。

/usr/include:c程序头文件。

      /usr/share命令手册页和自带文档等架构特有的文件的存储位置。

/usr/local: Local Hierarchy 系统管理员安装本地应用程序,也是常用与安装第三方程序。

/usr/xllR6X window程序的安装位置。

/usr/src:程序源码文件的存储位置。

/var

存储常发生变化的数据的目录。变量文件如:日志,脱机文件和临时电子邮件

/var/cache应用程序缓存数据

/var/lib状态信息。由程序在运行时维护的持久性文件

/var/lock锁文件。一类跟踪当前使用资源的文件

/var/log日志文件

/var/spool等待处理的任务的文件,例如打印队列和未读邮件

 

/var/tmp在系统重启过程中可以保留的临时文件。

/var/run自最后一次启动以来运行中的系统信息,现已被/run替代

/proc:

      虚拟文件系统,用于内核及进程存储其相关信息;它们多为内核参数。

/sys

Sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理linux设备提供了一种统一模型的借口。

/run

      运行时间变量数据。

自最后一次启动以来运行中的系统信息。替代/var/run.

小结:

尽管LINUX有诸多的发行版,但是所有的版本都遵从同样的文件目录层次结构,即FHS(Filesystem Hierarchy Standard)。有了这个统一的标准,我们在使用不同版本的LINUX时就不会由于版本的不同而找不到相关系统文件的位置,了解FHS有助于我们更好的掌握LINUX的基础构架和文件系统管理。

原创文章,作者:征(_少,如若转载,请注明出处:http://www.178linux.com/52136

(1)
征(_少征(_少
上一篇 2016-10-17 08:35
下一篇 2016-10-17 08:35

相关推荐

  • liunx性能监控工具总结

    1.uptime 1)显示的信息:显示当前时间,系统已启动的时间,当前在线人数,系统平均负载(1分钟、5分钟、10分钟的平均负载,一般不会超过1) 2)系统平均负载:指在特定时间间隔内运行队列中的平均进程数。 3)如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么这台及其的性能有严重问题 4)ruguo…

    Linux干货 2016-09-09
  • Linux网络属性配置,计算机基础

    Linux网络属性配置,计算机基础 Linux网络属性配置(1): 计算机网络通信:TCP/IP 通过流式化数据相互通信,通过双方一致的时钟频率来完成信号传输; 有两种方式传输:同步传输,异步传输; 借助于介质传输:同轴电缆、网线、无线等; 要想相互通信,也要必须遵循一种(复杂)组织机制,就产生了协议; 通过把协议分层,来分别解决传输过程中各种复杂的操作; …

    Linux干货 2016-09-05
  • Linux中的账号管理之命令的使用(中)

    linux中账号管理的命令非常多,我这里主要介绍最常见的几个命令,这些命令分别是针对用户和组的管理 主要介绍对用户管理的命令: 一、用户创建:useradd useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实…

    Linux干货 2016-08-07
  • Linux文本处理及用户组管理命令练习

    一.文本处理基础命令 (1).  列出当前系统上所有已经登录的用户的用户名。           完成命令:who  |  cut  -d’ ‘  -f1  |  uniq  -u 示例: (2).取出最后登录到当前系统对的用户的相关信息。         完成命令:w  |  tail -1 示例: (3).取出当前系统上被用户当作…

    2018-03-11
  • 学习宣言~~

    学如逆水行舟,不进则退。

    Linux干货 2016-12-26
  • CentOS系统详解(启动流程、kickstart)&bash脚本编程之while/函数用法

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区; (1) 为硬盘新建两个主分区;并为其安装grub; (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs; (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件…

    Linux干货 2016-11-28