FHS全称:Filesystem Hierarchy Standard
由于利用Linux来开发产品的团队和个人实在太多了,如果每个人都以自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。
在这种Linux文件目录配置极其混乱的局面下,FHS出现了,它的主要目的是希望让用户可以了解到已安装软件通常放置于哪个目录下。
遵循FHS标准,这大大方便了独立的软件开发商、操作系统制作者及系统维护者。
我们先了解最基本的四种交互作用的形态:
| 可分享的 | 不可分享的 |
不可变的 | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方软件) | /boot(开机与内核文件) | |
可变动的 | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
根目录(/)含义:
根目录是整个系统最重要的目录,因为不但所有的目录都是由根目录衍生出来的,同时,根目录也与开机、还原、系统修复等操作有关。
FHS建议:根目录所在的分区越小,系统性能就越好,根目录所在的文件系统也较不容易发生问题
下面列出一个表格,总结一些重要目录放置的文件内容:
目录 | 应放置文件内容 |
/bin | 放置一些在单用户维护模式下还能被操作的命令,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等命令 |
/boot | 放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等 |
/dev | 以文件形式存放任何设备与接口设备,比较重要的文件:/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等 |
/etc | 系统主要的配置文件几乎都放置在这个目录内。FHS建议:不要将可执行文件放到这个目录,比较重要的文件:/etc/inittab,/etc/init.d,/etc/modprobe.conf,/etc/X11,/etc/sysconfig等 |
/home | 系统默认的用户主文件夹,~代表当前用户主文件夹 |
/lib | 放置在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库,/lib/modules这个目录放置的驱动程序文件,尤其重要 |
/media | 此目录下的文件都是可删除的设备,www.linuxidc.com常见文件名:/media/cdrom |
/mnt | 用来暂时挂载某些额外设备 |
/opt | 第三方软件放置的目录 |
/root | 系统管理员的主文件夹,/root应该和根目录放在同一个分区中 |
/srv | 存放网络服务所需取用的数据,如:www服务需要的网页数据就可以放置在/srv/www里面 |
/tmp | 任何人都可以访问这个目录,这是用于暂时放置文件的地方,重要的数据都不可以放到这个目录里面,FHS建议:每次开机时都清空一下这个目录 |
/sbin | 放置了开机过程所需的命令,包括开机、修复、还原系统所需的命令 |
注意:
开机过程中,只要根目录会被挂载,其他分区则是在开机完成后才会持续进行挂载,所以在根目录下与开机相关的目录都不能与根目录放到不同的分区中
从上表可以轻易得出,下列五个目录一定不可与根目录分开:
/etc—-配置文件
/bin—-重要执行文件
/dev—-所需要的设备文件
/lib—-执行文件所需要的函数库与内核所需的模块
/sbin—-重要的系统执行文件