Linux 文件系统/组织与 Windows 有何不同?

Ken*_*eth 9 directory-structure

真正让我无法适应 Linux 的一件事是 Linux 与 Windows 中的文件系统之间的巨大差异。直到最近 3-4 年,我只使用 Windows 系统,而且只有在过去的 2-3 个月里,我才真正习惯了 Linux。我认为此时真正困扰我的一件事是,当我开始在 Windows 中的各种文件夹中进行挖掘时,我觉得我几乎可以找到任何我想要的东西。我已经习惯了在何时何地放置什么样的东西。我在 Linux 上没有。我正在学习一些东西,比如 /opt 文件夹是安装大多数第三方程序的地方……但我的理解是有限的。

tsh*_*ang 15

查看文件系统层次结构标准(FHS),这是组织目录结构的标准。我强烈怀疑大多数(全部?)基于 Linux 的系统或多或少都遵循它。


gab*_*be. 11

在某些 *nix 发行版(在 OpenBSD 和 Ubuntu 上测试)中,文件系统层次结构的手册页可能很有用。

$ man hier
Run Code Online (Sandbox Code Playgroud)

当然,这将根据平台和手册页的最新情况而有所不同。手册页(在 Ubuntu 上)还引用了之前提到的 Filesystem Hierarchy Standard。

我在solaris 上没有找到类似的手册条目。

一般来说,不同的 linux 发行版可以随意将东西放在任何他们想要的地方,所以它很快就会变得混乱。系统安装的大多数可执行文件(作为基本系统的一部分或通过包管理器)将在您的默认路径中的某个位置结束(通常在 /usr/bin /usr/sbin /usr/local/bin /usr/local/ sbin),尽管有些发行版使用 /opt、/usr/share/bin 等。可以在 Windows 中的“Program Files”文件夹中绘制一个平行线。“Windows”文件夹可能有点像 /usr/lib /usr/include /usr/share 等。您的“我的文档”文件夹与您在 linux 上的主目录 (/home/user) 有点平行,另外还有一个很好的补充,即 firefox、thunderbird 等程序的大多数用户特定配置都在这里,这使得迁移到新系统相当容易。

这些相似之处的问题在于它们并不完全准确。Windows 和 linux 在这方面是不同的。

最好的方法是继续探索系统,就像你第一次开始使用 Windows 时所做的那样,打破东西,修复它们,一路上提出问题。


jon*_*scb 5

在 Windows 中,当您安装程序时,它会在 Program Files 中创建一个包含所有内容的文件夹。它有二进制文件、库文件、资源文件等。在 Linux 中,二进制文件通常放入/usr/bin,库放入/usr/lib,资源放入/usr/share。特别是像一个图标文件,它会进入/usr/share/icons. 字体可以在/usr/share/fonts. 开发头文件进入/usr/include,最后,配置文件进入/etc.

这种布局有一些很酷的优势。通过将库放入 中/usr/lib,可以更轻松地在应用程序之间共享库。在 Windows 中,通常会看到每个程序都将自己的一组库安装到 Program Files 中,而另一个应用程序可能会安装完全相同的库,因此现在您有两个完全相同的 .dll 文件副本。它还为文件系统布局增加了一些一致性。在 Windows 中,您知道该程序将在 Program Files 中有一个文件夹,但不能保证它在该文件夹中的布局方式。也许可执行文件会在一个bin/文件夹中,也许不会。也许它会有一个conf/文件夹,也可能没有。