Linux 文件系统层次结构标准(FHS)

Linux 文件系统层次结构标准(FHS)



一、FHS 是什么?

FHS

linux 系统一切皆文件。

文件系统层次结构标准(英语:Filesystem Hierarchy Standard,FHS)定义了Linux操作系统中的主要目录及目录内容。FHS由Linux基金会维护。 当前版本为3.0版,于2015年发布。

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

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

二、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操作系统中存在,并且一般都以大致类似的方法使用;然而,这里的描述是针对于FHS的,并未考虑除了Linux平台以外的权威性。

目录描述
/第一层次结构 的根、 整个文件系统层次结构的根目录。
/bin/需要在单用户模式可用的必要命令(可执行文件);ubuntu上链接到/usr/bin/;面向所有用户,例如: cat、 ls、 cp。
/boot/引导程序文件,例如: kernel、initrd;时常是一个单独的分区
/dev//dev/包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。它实际上是一个访问这些外部设备的端口。/dev/shm/是一个设备文件,它使用就是tmpfs文件系统,在Ubuntu系统下tmpfs文件系统对应的是/run/shm目录,可以使用df命令查看。/dev/null是一个空设备。
/etc/特定主机,系统范围内的配置文件。关于这个名称目前有争议。在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为etcetera, 这是由于过去此目录中存放所有不属于别处的所有东西(然而,FHS限制/etc只能存放静态配置文件,不能包含二进制文件)。自从早期文档出版以来,目录名称已被以各种方式重新称呼。最近的解释包括逆向首字母缩略词如:“可编辑的文本配置”(英文 “Editable Text Configuration”)或"扩展工具箱"(英文 “Extended Tool Chest”)。
/etc/opt//opt/的配置文件
/etc/X11/X窗口系统(版本11)的配置文件
/etc/sgml/SGML的配置文件
/etc/xml/XML的配置文件
/etc/bashrc用来定义系统范围内的函数和别名
/etc/crontab计划任务的配置文件
/etc/fstab记录系统中开机启动时所要自动挂载的相关文件系统列表
/etc/group记录系统用户组的基本信息
/etc/gshadow记录用户组密码
/etc/hosts记录主机名和ip
/etc/issue用户在登陆系统前显示的信息
/etc/passwd用户的基本信息
/etc/shadow用户的密码信息
/etc/login.defs设置用户账号的设置信息,在添加新用户时根据这个文件生成相应的显示内容
/etc/skel添加新用户时将此目录中拷贝/home中并修改目录名为用户名
/etc/profile每个用户的环境变量信息
/etc/profile.d包含/etc/pfofile中需要执行的脚本
/etc/sshssh服务配置文件
/etc/apt/apt仓库配置文件目录
/home/用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。
/lib//bin/ 和 /sbin/中二进制文件必要的库文件。ubuntu上链接到/usr/lib/。
/media/可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。
/mnt/临时挂载的文件系统 。
/opt/可选应用软件包。
/proc/虚拟文件系统,将内核与进程状态归档为文本文件。例如:uptime、 network。在Linux中,对应Procfs格式挂载。
/root/超级用户的家目录
/run/代替/var/run目录。/run/ 被识别为 “tmpfs”(临时文件系统),因此我们知道 /run 中的文件和目录没有存储在磁盘上,而只存储在内存中。它们表示保存在内存(或基于磁盘的交换空间)中的数据,它看起来像是一个已挂载的文件系统,这个可以使其更易于访问和管理。/run/user/下的每个目录与当前登录的用户或显示管理器 gdm 相关。数字代表他们的 UID。/run/user/0 表示root用户,/run/user/1000 表示某个普通用户
/sbin/必要的系统二进制文件,例如: init、 ip、 mount。 ubuntu上链接到/usr/sbin/ 。
/srv/站点的具体数据,由系统提供。
/sys//sys 目录作为虚拟文件系统(类似于 /proc),它存储且允许修改连接到系统的设备。/sys/fs/cgroup 目录Cgroup是将任意进程进行分组化管理的Linux内核功能,cgroup本身提供将进程进行分组化管理的功能和接口的基础结构
/tmp/临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。
/usr/用于存储只读用户数据的第二层次; 包含绝大多数的(多)用户工具和应用程序
/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/.
/var/变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。
/var/cache/应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。
/var/lib/状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。
/var/lock/锁文件,一类跟踪当前使用中资源的文件。
/var/log/日志文件,包含大量日志文件,为了防止日志占满根分区,生产环境中一般是单独分区。
/var/mail/用户的电子邮箱。
/var/run/自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程、一些守护进程的pid文件、socket文件。现已经被/run代替。
/var/spool/等待处理的任务的脱机文件,例如:打印队列和未读的邮件。
/var/spool/mail/用户的邮箱(不鼓励的存储位置)
/var/tmp/在系统重启过程中可以保留的临时文件。

三、linux 其他文件目录

目录描述
/snap/snap 命令挂载的系统目录,只读squash文件系统。

四、总结

linux 下一切皆文件,需要对文件系统层次结构标准(FHS)有一定的认知才能更好对其理解。

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yusq77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值