为初学者解释的 Linux 目录结构

如果您对 Linux 稍有了解,您可能已经听说过 root、lib、bin 等术语。这些是您可以在所有 Linux 发行版中找到的各种目录。

事实上,Linux 基金会维护着一个 文件系统层次标准 (FHS)。 该 FHS 定义了 Linux 发行版中目录的目录结构和内容/用途。 多亏了这个 FHS,你会在(几乎)所有 Linux 发行版中找到相同的目录结构。

下面我们来详细看看Linux的目录结构。

Linux目录结构

Linux 基于 UNIX,因此它借用了 UNIX 的文件系统层次结构。 您可以在类 UNIX 操作系统(如 BSD 和 macOS)中使用类似的目录结构。 不过,我以后将使用术语 Linux 而不是 UNIX。

/ – 根目录

Linux 中的所有文件和目录都位于以“/”表示的“root”下。 如果您查看目录结构,您会发现它类似于植物的根。

Linux 目录结构

由于所有其他目录或文件都是从 root 继承的,因此任何文件的绝对路径都通过 root 遍历。 为了 example,如果你在/home/user/documents中有一个文件,你可以猜测目录结构是从root->home->user->documents。

残酷的 rm -rf / 笑话

您可能在互联网上遇到过一些提到“rm -rf /”的笑话。 rm 命令用于在 Linux 中删除文件和目录。

使用 rm -rf /,您可以要求系统强制并递归地删除根目录的内容。 由于根目录下面包含所有内容,因此您最终会删除所有内容,而您的 Linux 系统就会消失(理论上)。

大多数 Linux 发行版不会运行此命令,除非您提供 –no-preserve-root。 无论怎样,不​​要好奇运行这个命令。 毕竟,好奇害死猫。

/bin – 二进制文件

‘/bin’ 直接包含许多基本 shell 命令的可执行文件,如 ls、cp、cd 等。这里的程序大多是二进制格式,Linux 系统中的所有用户都可以访问。

/dev – 设备文件

该目录仅包含特殊文件,包括与设备相关的文件。 这些是虚拟文件,而不是物理上的磁盘。

这些文件的一些有趣示例是:

  • /dev/null:可以发送销毁任何文件或字符串
  • /dev/zero:包含无限序列 0
  • /dev/random: 包含无限序列的随机值

/etc – 配置文件

/etc 目录包含系统的核心配置文件,主要供管理员和服务使用,例如密码文件和网络文件。

如果您需要更改系统配置(对于 example 更改主机名),您可以在此处找到相应的文件。

/usr – 用户二进制文件和程序数据

在’/usr’ 中包含大多数系统程序的所有可执行文件、库和源代码。 因此,其中包含的大部分文件都是只读的(对于普通用户)

  • ‘/usr/bin’ 包含基本的用户命令
  • ‘/usr/sbin’ 包含管理员的附加命令
  • ‘/usr/lib’ 包含系统库
  • ‘/usr/share’ 包含文档或所有库的通用文件,例如 example ‘/usr/share/man’ 包含联机帮助页的文本

/home – 用户个人数据

主目录包含用户的个人目录。 主目录包含用户数据和用户特定的配置文件。 作为用户,您会将您的个人文件、笔记、程序等放在您的主目录中。

在 Linux 系统上创建用户时,通常的做法是为用户创建主目录。 假设您的 Linux 系统有两个用户,Alice 和 Bob。 他们将在 /home/alice 和 /home/bob 位置拥有自己的主目录。

请注意,Bob 将无法访问 /home/alice,反之亦然。 这是有道理的,因为只有用户才能访问他/她的家。 您可以阅读 Linux 中的文件权限以了解有关此主题的更多信息。

/lib – 共享库

库基本上是可执行二进制文件可以使用的代码。 /lib 目录包含 /bin 和 /sbin 目录中的二进制文件所需的库。

/usr/bin 和/usr/sbin 中的二进制文件所需的库位于目录/usr/lib 中。

/sbin – 系统二进制文件

这类似于 /bin 目录。 唯一的区别是它包含只能由 root 或 a 运行的二进制文件 sudo 用户。 您可以将 ‘sbin’ 中的 ‘s’ 视为 super 或 sudo.

/tmp – 临时文件

顾名思义,该目录保存临时文件。 许多应用程序使用此目录来存储临时文件。 甚至可以使用目录来存储临时文件。

但请注意,当您的系统重新启动时,/tmp 目录中的内容将被删除。 一些 Linux 系统也会自动删除旧文件,所以不要在这里存储任何重要的东西。

/var – 变量数据文件

Var 是 variable 的缩写,是程序存储运行时信息的地方,例如系统日志记录、用户跟踪、缓存以及系统程序创建和管理的其他文件。

此处存储的文件不会自动清除,因此它为系统管理员提供了一个查找有关其系统行为信息的好地方。 为了 example, 如果你想在你的 Linux 系统中查看登录历史,只需查看 /var/log/wtmp 中的文件内容即可。

/boot – 引导文件

除了 LILO 和 Grub 之外,“/boot”目录还包含内核和引导映像的文件。 通常建议将目录驻留在光盘开头的分区中。

/proc – 进程和内核文件

‘/proc’ 目录包含有关当前运行的进程和内核参数的信息。 许多工具使用 proc 目录的内容来获取运行时系统信息。

为了 example,如果你想在Linux中查看处理器信息,你可以简单地参考文件/proc/cpuinfo。 你想检查你的 Linux 系统的内存使用情况,只需查看 /proc/meminfo 文件的内容。

/opt – 可选软件

传统上,/opt 目录用于安装/存储发行版存储库中不可用的第三方应用程序的文件。

通常的做法是将软件代码保持在 opt 中,然后将二进制文件链接到 /bin 目录中,以便所有用户都可以运行它。

/root – 根的主目录

还有 /root 目录,它作为 root 用户的主目录。 因此,root 的家位于 /root,而不是 /home/root。 不要将其与根目录 (/) 混淆。

/media – 可移动媒体的挂载点

当您连接可移动媒体如 U 盘、SD 卡或 DVD 时,会自动在 /media 目录下为它们创建一个目录。 您可以从此目录访问可移动媒体的内容。

/mnt – 挂载目录

这类似于 /media 目录,但不是自动挂载可移动媒体,系统管理员使用 mnt 手动挂载文件系统。

/srv – 服务数据

/srv 目录包含系统提供的服务的数据。 为了 example,如果您运行 HTTP 服务器,最好将网站数据存储在 /srv 目录中。

我想这么多信息足以让您了解Linux目录结构及其用法。

最后,如果您愿意,可以下载并保存此图像,以便快速参考 Linux 系统中的目录结构。

Linux 系统目录

相关阅读:

Posted in: LinuxTags: