与 Windows 操作系统不同,在那里每个周边硬件设备都有独立的名称和图标来标识。在 Linux 中,硬盘、目录甚至设备都被统一视为文件系统的一部分,这个基础被称为根文件系统(Root File System)。
更具体地说,Linux 系统使用目录来对应连接的硬盘设备,这些目录被称为虚拟目录。因此,你在 Linux 中看到的目录,可能是存储实际文件的目录,也可能仅仅是映射到某个特定设备的虚拟入口。
如何查看 Linux 操作系统的目录结构?
我们可以通过多种方式来直观地了解 Linux 的目录结构。最直接的方法是在终端中使用 ls / 命令来查看根目录下的所有内容。例如:
devops@devops-test:~$ ls /
bin etc lib.mnt run srv var
bin.boot-usr-is-merged home lib64 opt sbin sys
dev init lost+found proc sbin.usr-is-merged tmp

对于使用 WSL (Windows Subsystem for Linux) 或通过 Samba 等方式访问 Linux 文件的用户,你同样可以使用熟悉的 Windows 文件资源管理器来浏览。例如,查看 devops 用户的个人目录:

在上图中,你可以通过左侧导航栏选择【Ubuntu】或其他 Linux 发行版名称,从而直接切换到 Linux 文件系统的根目录进行浏览。

根目录 / 下的关键子目录详解
Linux 根目录下的每个文件夹都有其特定的用途和约定,理解它们是高效使用和管理系统的关键。为了获得清晰系统的解释,我们可以借助 AI 工具,例如向 ChatGPT 提问:“我是一位 Ubuntu 专家,请说明 Linux 操作系统根目录 / 下的各子目录是什么?”
根据其回答,我们可以将 18 个主要子目录分为三组来理解:
第 1-6 个子目录:系统核心与基础配置
/bin:存放最基本的系统命令,这些命令在单用户模式或系统修复时至关重要。像 ls、cp、mv、cat 等常用命令通常都位于此处。
/boot:包含启动 Linux 所必需的文件,例如内核映像(vmlinuz)、初始内存盘(initramfs)以及引导加载程序(如 GRUB)的配置文件。
/dev:这是设备文件目录。在 Linux 中,一切皆文件,硬件设备(如硬盘 /dev/sda、终端 /dev/tty)和虚拟设备都在这里以文件形式呈现。
/etc:系统的“配置中心”。几乎所有的全局系统配置文件都存放在这里,包括网络设置、用户账户、服务配置等。修改这里的文件需要谨慎。
/home:普通用户的“家”。每个用户都会在此目录下拥有一个以自己用户名命名的子目录(如 /home/devops),用于存放个人文档、配置文件等私有数据。
/lib:存放系统最基本的共享库文件,这些库是 /bin 和 /sbin 目录下命令运行时所依赖的。在现代化的系统中,你可能还会看到 /lib64(64位库)的目录。
第 7-12 个子目录:挂载点、软件与运行时数据
/media:系统自动挂载可移动媒体(如 U 盘、光盘、SD 卡)的默认位置。当你插入一个 U 盘时,它可能会出现在 /media/username/ 下。
/mnt:供系统管理员手动临时挂载文件系统的目录。比如,你可以在这里挂载另一个硬盘分区或网络共享。
/opt:用于安装“可选”的第三方应用程序。一些商业软件或大型独立软件包(如早期版本的 Google Chrome)常被安装在此处。
/proc:一个非常特殊的虚拟文件系统。它不占用实际磁盘空间,而是内核和进程信息的实时接口。通过读取这里的文件(如 /proc/cpuinfo、/proc/meminfo),可以获取系统和运行中进程的详细信息。这是深入了解计算机基础中操作系统内核工作原理的一个窗口。
/root:系统超级管理员(root 用户)的家目录。注意,它不在 /home 下,而是直接位于根目录。
/run:存储自本次系统启动以来的运行时数据,例如进程的 PID 文件、服务套接字(socket)等。这是一个临时性文件系统,通常在内存中。
第 13-18 个子目录:系统管理、服务与可变数据
/sbin:存放系统管理和维护命令,这些命令通常需要 root 权限才能执行,例如 fdisk(磁盘分区)、ifconfig(网络配置,旧版)、reboot 等。
/srv:用于存放特定服务(Service)提供的数据。例如,Web 服务器的网站文件可能会放在 /srv/www/,FTP 服务器的文件可能放在 /srv/ftp/。
/sys:另一个虚拟文件系统,提供了一种统一的方式来访问和管理内核参数、总线、设备驱动等信息。它与 /proc 类似,但更侧重于硬件设备的层次化视图。
/tmp:临时文件目录。所有用户都可以在这里创建临时文件,但请注意,这些文件在系统重启后通常会被清除。
/usr:“Unix System Resources”的缩写,是系统中第二重要的层级。它包含绝大多数的用户应用程序、库文件、文档和源代码。你可以将其理解为“只读的用户程序资源库”。其内部还有像 /usr/bin(用户命令)、/usr/lib(库)、/usr/share(共享数据)等子结构。
/var:“Variable data”的缩写,存放经常变化的(Variable)数据。例如,系统日志(/var/log)、邮件队列(/var/mail)、打印队列、数据库文件以及网站的动态内容等。这里的文件大小会随着系统运行而增长。
理解这些目录的用途,不仅能帮助你在命令行中快速定位文件,也是进行系统管理、故障排查和软件开发的基础。如果你在学习和实践中遇到了有趣的发现或问题,欢迎到 云栈社区 与更多开发者交流探讨。
|