3.5.目录结构 ============ 认识 FreeBSD 的目录结构是对系统整体理解的基础。最重要的目录是根目录即“/”。这个目录是启动时挂载的第一个目录,它包含了为多用户操作准备的基本系统。根目录还包含其他文件系统的挂载点,这些文件系统在过渡到多用户操作时被挂载。 挂载点是一个目录,其他文件系统可以挂载到一个父文件系统(通常是根文件系统)上。这将在\ `磁盘结构 `__\ 中进一步说明。标准挂载点包括 ``/usr/``\ 、\ ``/var/``\ 、\ ``/tmp/``\ 、\ ``/mnt/`` 和 ``/cdrom/``\ 。这些目录通常被记录到 ``/etc/fstab`` 的条目中。这个文件是一个包含各种文件系统和挂载点的表格,由系统读取。\ ``/etc/fstab`` 大多数文件系统都是在启动时由脚本 `rc(8) `__ 自动挂载的,除非它们设置了 ``noauto`` 参数。详细内容可以在 `fstab 文件 `__\ 中找到。 关于文件系统层次结构的完整介绍可在 `hier(7) `__ 中找到。下表提供了最常见的目录的简要概述。 =================== ============================================================================================================================================================================================================================================================================================================================================== 目录 说明 =================== ============================================================================================================================================================================================================================================================================================================================================== **/** 文件系统的根目录。 **/bin/** 对单用户和多用户环境都很重要的用户工具。 **/boot/** 操作系统启动时使用的程序和配置文件。 **/boot/defaults/** 默认的启动配置文件。详情请参考 `loader.conf(5) `__\ 。 **/dev/** 设备节点。详情请参考 `intro(4) `__\ 。 **/etc/** 系统的配置文件和脚本。 **/etc/defaults/** 默认的系统配置文件。详情请参考 `rc(8) `__\ 。 **/etc/periodic/** 通过 `cron(8) `__ 每日、每周和每月需要运行的脚本。详情请参考 `periodic(8) `__\ 。 **/lib/** ``/bin`` 和 ``/sbin`` 中的二进制文件需要的关键系统库 **/libexec/** 关键的系统文件 **/media/** 包含子目录,用作可移动媒体(如 CD、USB 驱动器和软盘)的挂载点。 **/mnt/** 空目录,通常由系统管理员作为临时挂载点使用。 **/net/** 自动安装的 NFS 共享,见 `auto_master(5) `__ **/proc/** 进程文件系统。详情请参考 `procfs(5) `__\ ,\ `mount_procfs(8) `__\ 。 **/rescue/** `rescue(8) `__ 中说明的用于紧急恢复的静态链接程序。 **/root/** ``root`` 用户的主目录。 **/sbin/** 对单用户和多用户环境都很重要的系统程序和管理实用程序。 **/tmp/** 临时文件,通常在系统重启时会被清空。基于内存的文件系统通常被挂载在 **/tmp**\ 。这可以通过 `rc.conf(5) `__ 的 tmpmfs 相关变量或 **/etc/fstab** 中的条目来自动实现;详情请参考 `mdmfs(8) `__\ 。 **/usr/** 大多数用户的实用程序和应用程序。 **/usr/bin/** 常用的实用程序、编程工具和应用程序。 **/usr/include/** 标准的 C 语言头文件。 **/usr/lib/** 库文件。 **/usr/libdata/** 杂项工具数据文件。 **/usr/libexec/** 由其他程序执行的系统守护程序和系统实用程序。 **/usr/local/** 本地可执行文件和库。也被用作 FreeBSD ports 框架的默认路径。在 **/usr/local** 中,应使用 `hier(7) `__ 为 **/usr** 预设的一般布局。man 目录则是例外,它直接位于 **/usr/local** 而不是 **/usr/local/share** 下,而 ports 文档则于 **share/doc/port**\ 。 **/usr/obj/** 通过编译 **/usr/src** 产生的特定架构目标文件。 **/usr/ports/** FreeBSD ports(可选)。 **/usr/sbin/** 由用户执行的系统守护程序和系统实用程序。 **/usr/share/** 各个架构的通用文件。 **/usr/src/** BSD 或本地源代码文件。 **/var/** 多用途的日志、临时、暂存和 spool 文件。 **/var/log/** 杂项系统日志文件。 **/var/tmp/** 除非 **/var** 是一个基于内存的文件系统,否则临时文件通常会在系统重启后保留下来。 =================== ==============================================================================================================================================================================================================================================================================================================================================