2. Directory

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 的目录树架构:

2. Directory_第1张图片
directory_tree.gif

6. 绝对路径和相对路径

  • 绝对路径:由根目录开始到目录名或文件名的路径

  • 相对路径:相对于当前路径的文件名写法。也可以认为不以根目录开头的写法

相对路径中使用的两个特殊的目录:

  • . : 代表当前目录,也可以用 ./表示

  • .. :当前目录的上层目录,也可以用 ../表示

更多参考:

FHS
鸟哥的 Linux 私房菜 - Linux 目录配置

你可能感兴趣的:(2. Directory)