FHS
Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
最基本的四种交互作用的形态:
| 可共享(shareable) | 不可共享(unshareable) |
静态(static) | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方软件) | /boot(开机与内核文件) | |
可变(variable) | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(文件锁相关) |
对于文件之间的区别,有两种定义:可共享与不可共享文件、可变与静态文件。通常,在这些方面有区别的文件应该放置在不同的文件夹中。这样在不同的文件系统上保存不同用途的文件会很方便。
可共享:文件是可以保存在一个主机上而在另外的主机上使用的文件。
不可共享:是那些不能共享的文件。例如,用户主文件夹下的文件是可共享的,而设备锁文件是不可共享的。
静态文件:包括二进制文件、库文件、文档和其他在系统管理员不介入就不会变动的文件。
可变文件:是非静态的文件。
目录结构图
常用目录说明表
目录 | 描述 |
/ 根文件系统 | |
bin | 存放普通用户可以使用的命令的二进制文件 |
boot | 启动Linux时使用的一些核心文件 |
dev | 设备文件 |
etc | 主机特定的系统配置文件 |
home | 用户主文件夹 |
lib | 动态链接共享库,作用类似windows里的.dll文件 |
media | 可移动设备的挂载点,当前的操作系统通常会把U盘等设备自动挂载到该文件夹下 |
mnt | 临时用于挂载文件系统的地方 |
opt | 多数第三方软件默认安装到此位置 |
proc | 它是存在于内存中的虚拟文件系统。里面保存了内核和进程的状态信息 |
root | root 用户的主文件夹 |
sbin | 供超级用户使用的可执行文件,里面多是系统管理命令 |
tmp | 临时文件 |
usr | 二级层次结构 |
var | 变量数据 |
/usr层次结构 | |
bin | 绝大多数用户命 |
include | C 程序包含的头文件 |
lib | 库 |
local | 本地层次结构(整个系统安装后为空) |
sbin | 非紧要的系统二进制文件 |
share | 独立与系统架构的数据,放置的数据几乎是不分硬件架构均可读取的数据 |
/var层次结构 | |
cache | 应用程序缓存数据 |
lib | 可变状态信息 |
local | /usr/local 的可变数据 |
lock | 锁文件 |
log | 日志文件和文件夹 |
opt | /opt 的可变数据 |
run | 有关正在运行进程的数据 |
spool | 应用程序spool 数据 |
tmp | 系统两次启动之间保留的临时文件 |
/usr 是文件系统中的第二个重要的部分。/usr 是可共享的只读数据。就是说/usr 应该可以在各种FHS 兼容的主机之间共享并且禁止写入。任何主机特有的信息或随时间变化的量都保存在其他地方。大型的软件包禁止在/usr 层次结构中使用直接的子文件夹。
/var 包含可变数据文件。这包括spool 文件夹和文件、管理和日志数据,及过渡和临时文件。
/var 中有一些部分不能在不同的系统间共享。例如,/var/log、/var/log 和/var/run。另外的部分可以共享,尤其像/var/mail、/var/mail、/var/cache/man、/var/cache/font和/var/spool/news。
建议:
1、根系统应尽量小。
2、应用程序任何时候都不能创建或要求在根文件夹下保存特殊文件或子文件夹。