共计 1812 个字符,预计需要花费 5 分钟才能阅读完成。
Linux 文件层级结构标准(FHS)
设计 FHS(Filesystem Hierarchy Standard)的目的主要是为了给 Unix-like 系统的管理员提供一个管理系统以及目录结构的一个参考。
由于利用 Linux 源码开发产品和发行版的企业或组织众多,如果每个组织都按照自己的喜好来组织系统中的文件结构,网络上必然出现各种各样的文件结构。这些产品的用户就不得不为每种不同的文件系统结构花费时间来学习。有了 FHS 之后,几乎所有的 Unix-like 系统的发行商或软件开发者都遵从该建议规范每个特定目录下分别只放哪些文件,方便了文件的组织和查找。
FHS 也根据实际使用的需求持续更新,完整的 FHS 可参考(http://www.pathname.com/fhs/)
/, /usr, /var
FHS 根据文件的可共享、不可共享、静态和动态等特点,将目录树架构分为 /、/usr、/var 三部分。
- / 根目录是整个系统最重要的一个目录,因为在 Linux 系统中所有的目录都必须挂载在根目录下,也即所有的目录都是由根目录衍生出来。系统开机是所需要的开机软件、内核文件、函数库等都必须在根目录下。因此 FHS 也建议根目录不要安装在非常大、数据存取非常活跃的分区上,如此一来就能尽可能地降低系统不必要的错误。建议:根目录越小越好,且应用程序安装目录不要和根目录放置于同一分区。根目录下一般建议由以下耳机子目录:
- /bin 供所有用户使用的基本命令程序文件
- /sbin 系统管理员使用的工具程序
- /boot 引导加载器 (bootloader) 必须用到的静态文件:kernel、initramfs(initrd)、grub 等
- /dev 存储特殊文件或设备文件: 字符设备(线性设备)、块设备(随机设备)
- /etc 系统程序的配置文件(只能为静态的,不能是二进制)
- /lib、/lib64 为系统启动或根文件系统上的应用程序(/bin, /sbin)提供共享库(libc.so.* ld*),以及为内核提供内核模块(modules)
- /media 便携式设备的挂载点,cdrom、floopy 等
- /mnt 其他文件系统的临时挂载点
- /opt 第三方程序的安装位置,可选路径;
- /srv 当前主机为服务提供的数据
- /tmp 为那些会产生临时文件的程序提供的用于存储临时文件的目录
- /usr user hierarchy 全局共享只读数据路径
- /var var hierarchy 存储常发生变化的文件
- /proc 内核级进程存储其相关信息,多为内核参数,例如 net.ipv4.ipforward 虚拟为 net/ipv4/ipforward,存储于 /proc/sys
- /sys sysfs 虚拟文件系统提供了一种比 proc 更为理想的访问内核数据的途径;为管理内核提供了一种统一模型的接口
- /usr 根据 FHS 建议软件安装后将他们的数据合理地分别放置到这个目录下,而不要自行新建该软件自己的独立目录。/usr 放置的数据属于可分享的且不可变动的,/usr 可分享给局域网内的其他主机来使用。
- /usr/bin
- /usr/sbin
- /usr/lib
- /usr/lib64
- /usr/include C 程序头文件
- /usr/share 命令手册页和自带文档等
- /usr/local 另一个层级结构,让系统管理员安装本地应用程序,通常用于安装第三方软件
- /usr/src 程序的源码
- /var 主要存储常变化的文件,包括缓存 (cache)、登录文件(logfile) 以及某些软件运行所产生的文件,包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等。
- /var/cache 应用程序产生的缓存文件
- /var/lib 程序执行过程中,需要用到的数据文件放置的目录。此目录下各自的软件应该要有各自的目录。
- /var/lib 某些设备或者文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该设备时,就可能产生一些错误,因此就得要将该设备或文件上锁(lock),以确保该文件或设备只给一个程序使用。
- /var/log 登录文件 /var/log/messages, /var/log/wtmp
- /var/mail 个人电子邮箱目录,通常与 /var/spool/mail/ 目录互为链接
- /var/run 与运行中的进程相关的数据,PID 等
- /var/spool 存放等待其他程序使用的数据
- /var/tmp 下次启动前会被删除的临时数据
正文完
星哥玩云-微信公众号