如果您考虑深入了解 Linux,但被斜杠、点、根目录、挂载和终端的奇怪特性所吓到,那么这个关于 Linux 文件系统结构的介绍将从 DOS/Windows 的角度对其进行解释。我做出的唯一假设是您对 Windows 文件系统布局以及一些 DOS 或命令行(CMD)窗口导航有一定了解。您会发现,在许多方面,Linux 并不与 Windows 有太大差异。我们甚至不会触及到谁从谁那里抄袭了什么,因为显然灵感来自多个地方。
为了明确起见,我知道 Windows 不再基于 DOS。但是 Linux 和 Windows 都有命令行界面(CLI),而且与其称之为 CMD、命令行窗口或其他名称,更容易使用传统术语,即将 Windows 的 CLI 称为 DOS。我还将"文件系统"和"文件系统结构"这两个术语互换使用。我指的是文件、目录、配置、分页等的布局,而不是文件系统的位级格式,比如 NTFS 或 XFS。
首先,Linux 和 Windows(以及 Mac)都具有分层的文件系统布局,这意味着有一个单独的"根"目录,其他所有目录都从根目录分支出来。在 Windows 中,根目录用字母指定,例如 C: 或 D:。Windows 可以有多个根目录。而在 Linux 中,根目录被指定为/,每台 Linux 计算机只有一个根目录。有些参考资料称这种布局为"树"结构:当所有目录和子目录都展开时,视觉上类似于倒置的树。
下面是两种布局的比较。左边是 Red Hat Enterprise Linux 8,右边是 Microsoft Windows Server 2012 R2。请注意两者之间的相似之处和不同之处:
Linux 的根目录(/)下有多个目录,而 Windows 的根目录下相对较少。这是因为 Windows 将除了应用程序以外的所有内容都保存在 C:\Windows 目录下。应用程序位于 Program Files 或 Program Files (x86)目录下。Linux 将其应用程序保存在 /usr 目录下。Linux 的 /home 目录对应于 Windows 的 C:\Users 目录。
以下表格显示了重要的 Linux 文件目录及其功能(->是一个符号链接或快捷方式,在 Windows 术语中):
请注意,当在 Linux 中编写目录名称时,您总是包括根目录(/),类似地,您在 Windows 中包括(C:\)。在这两个操作系统中,包括根目录引用是重要的。例如,在 Linux 中,有诸如 /usr/bin、/usr/sbin 和 /tmp 之类的目录。Windows 可以有多个根目录,因此在同一系统上可能有 C:\Temp、D:\Temp 和 E:\Temp。您可以看到,仅仅引用 Linux 中的 tmp 或 Windows 中的 Temp 是令人困惑的,并且不足以明确地指代特定的目录。
您还可以注意到,在 Linux 文件系统中,反斜杠是斜线,而在 Windows 目录中是正斜杠或"whack"。您是否想知道为什么反斜杠是一个词,而正斜杠是两个词?在 Linux 中,反斜杠是一个操作符,表示忽略下一个字符,否则会导致文件路径出现问题。因此,您会发现在与这两个操作系统的交互方式、导航方式、位置和 PATH 指示中存在一些差异,但同时也存在一些相似之处。
尽管 Windows 在许多不同的位置存储配置文件,但它们大多数都位于 C:\Windows 目录及其数十个子目录的某个位置。Linux 几乎专门使用 /etc 目录进行配置。Linux 中的应用程序通常将其配置文件存储在自己的 etc 子目录下(etc 的发音类似于 et-see)。在讨论中,如果提到 /etc 目录、/tmp、/home 或任何其他一级目录,您不必说"slash"。只需说"etc"、"home"或"tmp"目录即可。如果您要引用一个子目录,可以说"usr bin"(/usr/bin)或"usr local bin"(/usr/local/bin)。而 usr 的发音类似于"user"。这类似于您称为 C:\Windows 目录时说"the Windows directory"(C:\Windows),或称为 C:\Windows\System32 时说"the Windows System32 directory"。
顺便提一下,Windows 也有一个 etc 目录,但它被隐藏在 C:\Windows\System32\drivers\etc 中。在此 etc 目录中,您会找到两个操作系统共有的文件,例如 hosts、lmhosts、protocol、networks和services。
在命令行中,您可以使用 cd 命令在两个系统之间进行导航。您唯一需要记住的是斜杠的方向。当您转向 Linux 时,您会发现导航自然而然,而/键比\键更方便地定位。虽然斜杠的方向不会是您面临的最大问题。等到您在 C:> 提示符下键入 ls,并意识到当您看到'ls' is not recognized as an internal or external command, operable program, or batch file 错误时所犯的错误时,就会明白这一点。在 Linux 命令提示符下键入 dir 要少受创伤得多。
提示:在 Linux 中,dir 是 ls 的别名。
我觉得您会发现 Linux 文件系统组织有序,易于导航,并且管理起来很愉快。
看完这篇文章之后你了解 Linux 文件系统中的目录与 Windows 去区别了吗,读完文章之后你应该对 Linux 系统有了新的认知,希望文章对你有所帮助。
本文编辑:@ 小淙
©本文著作权归电手所有,未经电手许可,不得转载使用。