我已经使用 Linux 几年了,但我仍然不明白 Unix 和类 Unix 系统上的某些目录名称的起源或含义。例如etc
或 代表什么var
?这个opt
名字从何而来?
既然我们已经讨论过这个话题,有人能清楚地解释一下哪个目录最适合做什么吗?我有时会搞不清楚某些软件安装在哪里,或者哪个目录最适合安装软件。
答案1
有关 Linux 文件系统布局的更多数据,请查看文件系统层次标准(现在是 3.0 版)。它确实解释了一些名字的由来:
- /垃圾桶-垃圾桶白羊座。
- /启动- 所需文件引导英國。
- /dev-开发冰文件。
- /ETC-ETC埃特拉。这个名字继承自最早的 Unix,当时它成为放置配置文件的地方。
- /家- 在哪里家目录被保留。
- /lib- 代码在哪里库稀有度得以保留。
- /媒体- 更现代的目录,但可以移动媒体被安装。
- /mnt- 临时文件系统的位置米欧nt编辑
- /选择- 在哪里选择安装了附加软件。这与安装无关,
/usr/local/
原因我稍后会讲到。 - /跑步- 在哪里跑步时间变量数据被保留。
- /sbin- 在哪里s上垃圾桶aries 已存储。这些通常仅适用于 root。
- /srv- 代表 ”s埃房车e”。此目录用于存放提供的静态文件。
/srv/http
适用于静态网站、/srv/ftp
FTP 服务器。 - /tmp- 在哪里吨埃议员可能会存储 orary 文件。
- /usr- 另一个从旧 Unix 继承的目录,它代表“乌尼克斯年代系統R确实如此不是代表“用户”(参见Debian 维基)。此目录应可在主机之间共享,并可以安全地以 NFS 方式挂载到多台主机。它可以安全地以只读方式挂载。
- /var- 另一个从旧 Unix 继承的目录,它代表“变量iable”。这里存储着各种系统数据。假脱机和缓存目录等内容可能位于此处。如果程序需要写入本地文件系统,但不直接向某人提供该数据,则它将存储在此处。
/opt 与 /usr/local
我见过的经验法则最好描述如下:
用于
/usr/local
通常会进入 的内容/usr
,或覆盖 中已有的内容/usr
。用于/opt
安装在一个目录中的内容,或其他特殊内容。
/usr/lib 与 /lib 的区别
一些 Linux 发行版已采取措施,建立/lib
指向/usr/lib
(Fedora 于 2012 年推出,Ubuntu 19.04 版,OpenSUSE 于 2020 年开始)。这一举措引起了争议,因为它违背了将这两个目录分开的初衷之一:您应该能够仅使用 中的内容来启动系统/lib
。这一指导原则起源于系统上有许多磁盘和分区的时代,允许管理员将进入 和 类似目录的内容分开/lib
。/usr/lib
过去几十年的做法已经不再单独管理这些目录,因此发行版决定从用户的角度出发,有效地统一它们。这种统一使软件包维护者的工作变得更加轻松,因为管理文件的地方更少了。
答案2
很抱歉重新提起旧话题,但我觉得这个细节对于所有未来寻求此信息的人来说都是一个重要的澄清:
- /选择代表可选(如可选附加包)。
- /垃圾桶代表二进制(包含操作系统使用的可执行文件)。
- /lib代表库(包含文件系统和引导使用的共享库,可能由 bin 中的可执行文件使用)
- /进程代表流程。
- /根表示 root 用户。
- /家保存非 root 用户的主子目录。
- /dev代表设备(保存特殊文件和设备文件)。
- /tmp代表临时的。
- /srv代表发球。
- /mnt代表挂载点(在此挂载临时文件系统)。
- /包括包含#include 文件,即头文件(例如,stdio.h)。
- /var代表变量
/ETC代表等等
/usr代表 Unix 系统资源(来源)
答案3
尝试这个:
$ man hier
答案4
查找此信息的最佳位置是文件系统层次结构标准 (FHS)。最新版本是 2.3,可从以下位置获取:http://www.pathname.com/fhs/pub/fhs-2.3.html。