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

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

真正阻碍我掌握 Linux 的原因之一是 Linux 与 Windows 中文件系统之间的巨大差异。直到最近 3-4 年我只使用 Windows 系统,直到最近 2-3 个月我才真正开始习惯 Linux。我认为此时真正困扰我的事情之一是,当我开始挖掘 Windows 中的各个文件夹时,我觉得我几乎可以找到任何我想要的东西。我已经习惯了什么东西放在什么地方、什么时间。我的 Linux 没有这个功能。我正在学习一些东西,例如 /opt 文件夹是大多数第三方程序的安装位置......但我的理解是有限的。要真正理解文件系统并能够定位不同的文件和程序等,需要了解哪些重要知识?

答案1

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

答案2

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

$ man hier

当然,这会根据平台以及手册页的最新程度而有所不同。手册页(在 Ubuntu 上)还引用了之前指出的文件系统层次结构标准。

我在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 时所做的那样,破坏、修复它们,并在此过程中提出问题。

答案3

在 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/文件夹,也可能没有。

相关内容