1. FHS
Filesystem Hierarchy Standard 的主要目的在于,让使用者可以了解到已安装软件通常放置的目录,FHS 的重点在于规范每个特定的目录下应该要放置什么数据。根据 FHS 对目录的定义,可将目录大致进行如下划分:
可共享的(shareable) | 不可共享的(unshareable) | |
---|---|---|
不可变的(static) | /usr、/opt | /etc、/boot |
可变动的(variable) | /var/mail、/var/spool/news | /var/run、/var/lock |
对这四种类型进行简单解释:
-
可共享的:即可以分享给其他系统挂载使用的目录,是能够分享给网络中其他主机挂载的目录
-
不可共享的:自己机器上运行的配置文件或者与程序有关的 socket 文件,由于仅与自身机器相关,因此属于不可共享
-
不变的:有些数据跟随 distribution 而不会改变
-
可变动的:相对不变的数据,有些数据会经常发生改变
在实际应用中,FHS 定义了三层目录结构:
-
/ :根目录,与系统开机启动相关
-
/usr:unix software resource, 与软件安装/执行相关
-
/var:variable, 与系统运行过程相关
2. ' / ' 根目录的意义和内容
根目录是 Linux 系统中最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,而且根目录也与开机/还原/系统修复等操作相关。系统开机时需要的开机软件、核心文件、开机所需程序、函数库和系统修复程序等都存放在根目录下。
FHS 标准建议:根目录所在的分区应该越小越好,且应用程序所安装的软件最好不要和根目录放在同一分区内,保持根目录越小越好。
因为如果分区越大就有可能放入越多的数据,其他数据的增多会导致根目录所在分区出错的概率增大。保持根目录的精简,可以使得系统效能最佳,根目录所在的文件系统也比较不容易出现错误。
FHS 定义的根目录下的次级目录:
目录 | 存放的文件内容 |
---|---|
/bin | 存放常用的命令,这些命令可以在单人维护模式中执行 |
/boot | 存放开机使用的文件,包括 Linux 核心文件及开机所需的配置文件等。 |
/dev | 存放硬件与接口设备文件,存取目录中的某个文件就相当于调用了某个设备 |
/etc | 存放系统中几乎所有的配置文件。FHS 建议不要放置可执行文件在该目录中 |
/home | 系统默认的用户家目录。每个普通用户的家目录都保存在该目录下 |
/lib | 系统开机时会用到的函数库,以及 /bin 和 /sbin 下命令调用的函数 |
/media | 存放可移除的媒体设备,包括软盘、光盘、DVD 等 |
/mnt | 存放需要挂载的额外设备 |
/opt | 存放安装第三方软件 |
/root | root 的家目录 |
/sbin | 开机过程中所需要的命令,包括开机、修复、还原等 |
/srv | service,在一些网络服务启动后,服务所需要取用的数据目录 |
/tmp | 存放普通用户或正在执行程序的临时文件 |
lost+found | 存放当文件系统发生错误时将遗失的部分数据 |
/proc | 虚拟文件系统,该目录下的数据都存储在内存中,主要记录系统运行状态等 |
/sys | 与 /proc 类似,虚拟文件系统,记录与核心相关的信息,存储在内存中 |
其中:/etc /bin /dev /lib /sbin 这五个目录必须与根目录在同一硬盘分区。
3. '/usr' 意义与内容
/usr 存放的数据属于可分享但不可变动,主要用于存放系统软件资源。
/usr 的次级目录主要包括:
目录 | 存放的文件内容 |
---|---|
/usr/bin | 存放绝大部分用户可使用的命令 |
/usr/include | 存放 C/C++ 等语言的 header 和 include |
/usr/lib | 存放软件的函数库等 |
/usr/local | root 在本机自行安装的软件 |
/usr/sbin | 非系统正常运行所需要的系统命令 |
/usr/share | 存放共享文件 |
/usr/src | 存放软件源代码 |
4. /var 意义与内容
/var 主要存放常态性变动的文件,主要包括:缓存、日志文件、数据库文件、软件运行产生的文件等。
/var 的次级目录主要包括:
目录 | 存放的文件内容 |
---|---|
/var/cache | 软件运行时产生的一些文件 |
/var/lib | 软件运行时使用的数据库文件 |
/var/lock | 确保非共享资源的独占性 |
/var/log | 存放日志文件 |
/var/mail | /var/spool/mail 都用于存放电子邮件 |
/var/run | 在程序或服务启动后,存放 PID |
/var/spool | 等待其他程序正在使用的数据 |
5. 目录树
在 Linux 中所有的文件和目录都是由根目录开始,由此产生的目录结构成为目录树。目录树的主要特征包括:
-
目录树的起始点为根目录 /
-
目录包括本地目录和挂载的非本地目录
-
每一个文件在目录树中的路径时独一无二的
Linux 的目录树架构:
directory_tree.gif6. 绝对路径和相对路径
-
绝对路径:由根目录开始到目录名或文件名的路径
-
相对路径:相对于当前路径的文件名写法。也可以认为不以根目录开头的写法
相对路径中使用的两个特殊的目录:
-
.
: 代表当前目录,也可以用./
表示 -
..
:当前目录的上层目录,也可以用../
表示
网友评论