1、Linux目录的标准配置:FHS
根据 FHS(Filesystem Hierarchy Standard 文件系统层次结构标准)(http://www.pathname.com/fhs/)的官方文件指出,其主要目的是希望让用户可以了解到已安装软件通常放置的那个目录下,所以其希望独立的软件开发商、操作系统制定者以及想要维护系统的用户,都能够遵循FHS的标准。
可分享的:可以分享给其他系统挂载使用的目录,使能够分享给网络上的其他主机挂载用的目录;
不可分享的:由于仅于自身机器有关,所以当然就不适合分享给其他主机了;
不变的:有些数据是不会经常变动的,跟随着Distribution而不变动。如函数库、文件说明、管理员所做的主机配置等;
可变动的:经常改变的数据,如登陆文件等;
事实上,FHS针对目录树架构仅定义出三层目录下面应该放置什么数据而已,这三场目录下面所应该放置的目录也都又特定的规定。分别是下面这三个目录的定义:
/(根目录):与开机系统有关;
/usr :Unix Software Resource,与软件安装/执行有关;
/var:Variable,与系统运作过程有关;
根目录(/)的意义与内容:
根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等操作有关。若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。因为根目录是这么重要,所以在FHS的要求方面,其希望根目录不要放在非常大的分区内,因为越大的分区你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。
因此FHS标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一分区内,保持根目录越小越好,如此不但性能较好,根目录所在的文件系统也较不容易发生问题。
鉴于上述说明,FHS定义出根目录(/)下应该有这些子目录的存在才好,但不是唯一的。
事实上FHS针对根目录所定义的标准就仅有上面列举的数据,不过我们的Linux下面还有许多目录你也必须了解一下的。下面几个目录也是非常重要的。
另外要注意的是,因为根目录根开机有关,开机过程中仅有根目录会被挂载,其他分区则是在开机完成之后才会持续进行挂载的行为。因此根目录下与开机过程有关的目录就不能放到不同的分区去。如下面这些:
/etc:配置文件;
/bin:重要的执行文件;
/dev:所需要的设备文件;
/lib:执行文件所需的函数库与内核所需的模块;
/sbin:重要的系统执行文件;
这五个目录千万不可与根目录分开放在不同的分区。
/usr的意义与内容:
依据FHS的基本定义,/usr 里面放置的数据数据可分享的与不可变动的(shareable,static),如果你知道如何通过网络进行分区的挂载(例如NFS服务器),那么/usr确实可以分享给局域网内的其他主机来使用。
FHS建议所有软件开发者因该将他们的数据合理地分别放置在这个目录下的子目录,而不要自行新建该软件自己独立的目录。
/var 的意义与内容:
如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是系统运行后才会渐渐占用硬盘容量的目录。因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登陆文件(log)以及某些软件运行时所产生的文件。
建议你在读完此文章之后,可以查看FHS官方英文文档,相信会让你对Linux操作系统的目录有更深入的了解。