为初学者解释的 Linux 目录结构
本教程解释了 Linux 目录结构。您将了解 Linux 文件系统层次结构以及 Linux 系统上各个目录的用途。
如果您对 Linux 稍有了解,您可能听说过 root、lib、bin 等术语。这些是您在所有 Linux 发行版中都会找到的各种目录。
事实上,Linux 基金会维护着文件系统层次结构标准 (FHS)。此 FHS 定义了 Linux 发行版中的目录结构和目录的内容/用途。多亏了这个 FHS,您将在(几乎)所有 Linux 发行版中找到相同的目录结构。
让我们详细看看Linux的目录结构。
Linux目录结构
Linux 基于 UNIX,因此它借用了 UNIX 的文件系统层次结构。您将在类 UNIX 操作系统(例如 BSD 和 macOS)中建立类似的目录结构。不过,此后我将使用术语“Linux”而不是“UNIX”。
/ – 根目录
Linux 中的所有内容、所有文件和目录都位于由“/”表示的“root”下。如果你看一下目录结构,你会发现它类似于植物的根。
由于所有其他目录或文件都是从 root 继承的,因此任何文件的绝对路径都会通过 root 遍历。例如,如果 /home/user/documents 中有一个文件,您可以猜测目录结构是从 root->home->user->documents。
残酷的 rm -rf/笑话
您可能在互联网上遇到过一些提到“rm -rf/”的笑话。 rm 命令用于在 Linux 中删除文件和目录。
使用 rm -rf /,您可以要求系统强制递归地删除根目录的内容。由于根目录下包含所有内容,因此您最终会删除所有内容,并且您的 Linux 系统会消失(理论上)。
除非您提供 –no-preserve-root,否则大多数 Linux 发行版不会运行此命令。无论如何,不要好奇地运行这个命令。毕竟,好奇害死猫。
/bin – 二进制文件
“/bin”直接包含许多基本 shell 命令的可执行文件,如 ls、cp、cd 等。这里的程序大多数都是二进制格式,Linux 系统中的所有用户都可以访问。
/dev – 设备文件
该目录仅包含特殊文件,包括与设备相关的文件。这些是虚拟文件,不在磁盘上。
这些文件的一些有趣的示例是:
/dev/null:可以发送来销毁任何文件或字符串
/dev/zero:包含无限序列0
/dev/random:包含无限序列的随机值
/etc – 配置文件
/etc 目录包含系统的核心配置文件,主要由管理员和服务使用,例如密码文件和网络文件。
如果您需要更改系统配置(例如,更改主机名),您可以在此处找到相应的文件。
/usr – 用户二进制文件和程序数据
在“/usr”中包含所有可执行文件、库、大多数系统程序的源代码。因此,其中包含的大多数文件是只读的(对于普通用户)
‘/usr/bin’包含基本的用户命令
‘/usr/sbin’包含管理员的附加命令
‘/usr/lib’包含系统库
‘/usr/share’包含文档或所有库共有的文档,例如‘/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 或 sudo 用户运行的二进制文件。您可以将“sbin”中的“s”视为 super 或 sudo。
/tmp – 临时文件
顾名思义,该目录保存临时文件。许多应用程序使用此目录来存储临时文件。甚至您可以使用目录来存储临时文件。
但请注意,当系统重新启动时,/tmp 目录中的内容将被删除。一些 Linux 系统还会自动删除旧文件,因此不要在此处存储任何重要的内容。
/var – 可变数据文件
Var 是变量的缩写,是程序存储运行时信息的地方,例如系统日志记录、用户跟踪、缓存以及系统程序创建和管理的其他文件。
此处存储的文件不会自动清除,因此它为系统管理员提供了一个查找有关其系统行为的信息的好地方。例如,如果您想检查Linux系统中的登录历史记录,只需检查/var/log/wtmp中的文件内容即可。
/boot – 启动文件
“/boot”目录包含内核和启动映像的文件,以及 LILO 和 Grub。通常建议目录位于光盘开头的分区中。
/proc – 进程和内核文件
“/proc”目录包含有关当前运行的进程和内核参数的信息。许多工具使用 proc 目录的内容来获取运行时系统信息。
例如,如果要查看Linux中的处理器信息,只需参考文件/proc/cpuinfo即可。你想检查Linux系统的内存使用情况,只需查看/proc/meminfo文件的内容即可。
/opt – 可选软件
传统上,/opt 目录用于安装/存储发行版存储库中无法提供的第三方应用程序的文件。
通常的做法是将软件代码保留在opt中,然后将二进制文件链接到/bin目录中,以便所有用户都可以运行它。
/root – 根目录的主目录
还有 /root 目录,它作为 root 用户的主目录。因此,root 的主目录位于 /root,而不是 /home/root。不要将其与根目录 (/) 混淆。
/media – 可移动媒体的安装点
当您连接可移动媒体(例如 USB 磁盘、SD 卡或 DVD)时,会在 /media 目录下自动为它们创建一个目录。您可以从此目录访问可移动媒体的内容。
/mnt – 挂载目录
这与 /media 目录类似,但系统管理员使用 mnt 手动挂载文件系统,而不是自动挂载可移动媒体。
/srv – 服务数据
/srv 目录包含系统提供的服务的数据。例如,如果您运行 HTTP 服务器,则最好将网站数据存储在 /srv 目录中。
我想这么多的信息足以让你了解Linux的目录结构及其用法。
最后,如果需要,您可以下载并保存此映像,以便快速参考 Linux 系统中的目录结构。