Skip to main content
 Web开发网 » 操作系统 » unix系统

UNIX的文件系统有什么特点?

2021年10月25日5400百度已收录

  UNIX 计算机上的文件采用层次结构进行组织。这个层次结构的最高层是 /,一般称其为“斜线”或者“根目录”。

如果您将工作目录更改为 /,并运行 ls,那么您将看见几个具有神秘名称的子目录(如 etc、bin、var、home 和 tmp)。

  尽管 UNIX 现在支持长文件名,但是这些顶层目录名字中的大多数可以追溯到大约 30 年前,即 UNIX 刚刚出现的时候。类似地,根据同样长期存在的约定,包含在 / 中的每个目录都用于某个特殊的目的:

/bin 仅仅是包含应用程序和实用工具的许多目录中的一个。

  然而,/bin 通常包含那些对于系统操作而言基本的实用工具。因此,Shell 文件操作命令如 cp 和 chmod、压缩和解压缩,以及诊断命令都位于 /bin 中。

/sbin 同样包含那些对于系统操作和维护而言至关重要的实用工具。然而,只有超级用户才能够执行 /sbin 中的程序,因此这个目录称为“superuser-bin”或者 /sbin。

/dev 包含您的系统中所安装的所有硬件,包括终端和 USB 设备(以及从物理上连接到这台计算机的其他外围设备)、伪终端(用于与 X 终端窗口进行交互),以及硬盘驱动器,等等。 /etc(常常发音为“etsee”)专门用于系统配置。/etc 目录包含用于系统守护进程、启动脚本、系统参数和更多其他方面的配置文件。

   /home 包含用户的 home 目录。例如,如果您的登录名是 joe,那么目录 /home/joe 就是您的个人文件存储库。 /lib 用于存储基本的系统库文件。在现代 UNIX 中,通常共享系统库,这意味着并不是每个二进制文件都链接和包括这些库(那样的话,至少将会浪费空间),但是当需要该库的时候,按需要加载它,并且同时可以由许多应用程序进行共享。

  因此,与 UNIX 一同安装的核心应用程序和实用工具的运行都需要使用 /lib 中的库,并且您至少需要拥有少量相应的库文件,以便从源代码创建新的可执行文件。其中所有的文件都是至关重要的,损坏或者删除(无论是有意的还是无意的)某个文件就可能使系统变得无法使用。

   /mnt 是“mount”的缩写,是装入硬盘驱动器分区和其他设备的标准位置。如果您希望查看当前装入的并且可访问的所有设备,只需要运行 mount 命令。 /tmp 或者“temporary”,是系统范围的暂存存储区。您的 Web 服务器可能会将会话数据文件保存在这里,并且其他实用工具将使用 /tmp 中的空间对中间结果进行缓存。

  通常认为 /tmp 中的文件在使用后即被丢弃。实际上,您的系统管理员可能会在每天晚上删除其中比某个过期时间更早的所有文件。 /usr 用于存储大量文件。最终用户应用程序(从编辑器、游戏和接口,到系统特性)都位于其中,它是 man 页面和其他更多内容的存储库。

  有些文件很有价值,但并不是系统操作所必须的,那么您很可能会在 /usr 中找到它。 /var 是“variable”的简写,它是用于存储那些大小通常随时间而增大的文件的存储库。可以在 /var 中找到邮箱、日志文件、打印机队列和数据库。通常可以将 Web 站点保存在 /var 中,因为 Web 站点可能会在一段时间后异常地累积大量的数据。

以上是一些最常见的目录名,尽管某些 UNIX 版本之间存在细微的差异。(例如,在基于 FreeBSD® 的 Mac OS X 上,将包含用户的 home 目录的目录命名为 /Users,而不是 /home。)

保持传统

事实上,名称 etc、bin、lib 和 man 在 UNIX 的文化中是如此根深蒂固,以至于在计算机中的其他地方使用相同的名称来标注类似用途的目录已经成为一种传统。

  例如,如果您查看一位专家的 home 目录,您很可能会在其中发现 bin 和 lib 目录分别存储个人应用程序以及脚本和个人库。 UNIX 的命名约定:获取更多关于 UNIX 的命名约定的信息,请参见附录 A:选择一个标准,任何标准部分。

同样地,/usr/local 中通常包括 etc、bin、lib、和 man。

  在历史上,曾将 /usr/local 用于存储来自于您的站点或者仅与您的站点有密切关系的应用程序和数据。/usr/local/bin 目录用于存储本地添加的、新的程序,以及标准系统实用工具的本地修改版本。例如,您的系统管理员可能在 /usr/local/bin/perl 中提供了 Perl 的最新和最好的版本,同时保持 /usr/bin/perl 不变,以便进行引用,并且因为其他的核心实用工具可能仍然依赖于它。

  /usr/local/lib 目录作为 /usr/local/bin 的补充。

/usr/local 目录甚至可能是一个完全独立的分区(甚至是通过网络文件系统从 Network Attached Storage [NAS] 设备装入的分区),这使得可以更容易地对系统进行数据恢复和恢复使用。

  如果系统中发生了某种情况,管理员可以覆盖操作系统的文件,而无需担心会破坏本地数据。

甚至安装包也是用了类似的目录结构。例如 MySQL:如果使用了选项 --prefix=/usr/local/mysql, 进行配置,那么它将在 /usr/local 中创建它自己的根目录,名为 /usr/local/mysql,并创建子目录。

评论列表暂无评论
发表评论
微信