你可以在维基百科等网站上阅读相关内容。以下是一段摘录:
文件系统层次标准(FHS)定义了Linux操作系统中主要目录及其内容。在很大程度上,它是对传统BSD文件系统层次结构的正式化和扩展。
FHS由Linux基金会维护,该组织是一个由主要软件和硬件供应商组成的非营利性机构,如惠普、红帽、IBM和戴尔。
当前版本为3.0,于2015年6月3日发布。
以下是一个简短描述的可视化表示:
![enter image description here](https://istack.dev59.com/hN4lt.webp)
基本上,Linux根据系统安全所需的最少权限,将目录结构进行了划分。否则,某人就不得不做很多可避免的工作。
请记住,Unix和Linux是为多用户系统而设计的,而Windows则是为单用户而创建的。从这个想法可以解释其他一切。当考虑到它是多用户和安全性时,您可以解释每个目录。
3个例子:
你会注意到,只有管理员才能访问的文件和目录被收集在同一个目录中:`/sbin`,`/usr/sbin`和`/usr/local/sbin`中的`s`代表系统。普通用户甚至不能启动那些在这些目录中的程序。普通用户可以启动的文件位于`/bin`,`/usr/bin`和`/usr/local/bin`中,根据逻辑它们应该放置在哪个目录下。但是,如果它们只限管理员使用,那么应该放置在相应目录的`s`版本中。
有一个著名的实用程序叫做`fuser`。你可以用它来终止进程。如果普通用户能使用它,他就能终止你的会话。
对于`/home`也是一样的情况:`/home/user1`是user1的属性,`/home/user2`是user2的属性。user2没有理由在user1的主目录中操作(反过来也是一样的:user1没有理由在user2的主目录中操作)。如果所有文件都在以用户名为子目录的`/home`下面,你将不得不给每个文件设置权限,并判断谁有权写入/删除这些文件。如果你有数十个用户,那将是一场噩梦。
关于库的问题,请查看
Addition。
`/lib/`,`/usr/lib/`和`/usr/local/lib/`是在多库系统出现之前的原始位置,并且存在的目的是为了避免破坏。而`/usr/lib32`,`/usr/lib64`,`/usr/local/lib32/`和`/usr/local/lib64/`则是32位/64位多库的新发明。
这绝不是一个静态概念。其他Linux发行版对此布局进行了调整。例如,目前你会看到Debian和Ubuntu在FHS的布局中进行了很多变化,因为SSD对只读文件更有优势。有一种趋势是朝着一个新的布局方向发展,其中文件被分成“只读”和“可写”目录/组,这样我们就可以有一个可以以只读方式挂载(SSD的分区)和可写方式挂载(SATA硬盘)的根分区。
用于此目的的新目录(图像中没有显示)是/run/
。