博客 / Linux/ Linux 系统核心目录结构详解( 更新版)

Linux 系统核心目录结构详解( 更新版)

Linux 系统的文件系统采用层次化的目录结构,理解这些核心目录的用途是掌握 Linux 系统管理的基础。下图展示了典型的 Linux 目录树结构:

Linux 系统文件目录结构示意图

核心系统目录

/bin

binBinary 的缩写。此目录存放系统启动和单用户模式下维护所必需的最基础的用户命令(如 ls, cp, bash)。在大多数现代发行版中,/bin 通常是 /usr/bin 的符号链接。

/boot

存放启动加载器(如 GRUB)和 Linux 内核镜像(vmlinuz-*)以及初始 RAM 磁盘镜像(initramfs-*)等启动过程必需的核心文件。

/dev

devDevice 的缩写。该目录包含所有的设备文件(如 /dev/sda, /dev/tty, /dev/null),遵循“一切皆文件”的哲学,应用程序通过读写这些文件来与硬件设备交互。

/etc

系统范围的配置文件目录。几乎所有系统服务和应用程序的全局配置都存放在此(如 /etc/passwd, /etc/fstab, /etc/nginx/nginx.conf)。

/home

普通用户的个人主目录。每个用户通常拥有一个以用户名命名的子目录(如 /home/alice),用于存放个人文件、配置和桌面环境设置。

/lib, /lib64

存放系统启动和运行 /bin/sbin 中命令所必需的最基础的系统库(如 C 库 libc.so.*)和内核模块。64位系统通常将64位库单独放在 /lib64

/root

系统管理员(root 用户)的个人主目录,而非 / 根目录本身。

/sbin

s 代表 System。存放系统管理、修复和启动所必需的命令(如 fdisk, ifconfig, init)。通常需要 root 权限才能执行。

/tmp

供系统和应用程序存放临时文件的目录。该目录下的文件可能会在系统重启时被清除(取决于发行版配置)。

/usr

Unix System Resources 的缩写,是占用空间最大、最重要的目录之一,存放系统主要的应用程序、库、文档和源代码。它是一个相对独立的层级。

  • /usr/bin: 绝大多数用户命令和非关键系统命令。
  • /usr/sbin: 非关键的系统管理命令。
  • /usr/lib: 应用程序和系统服务所需的库文件。
  • /usr/local: 系统管理员本地安装的软件,不会被系统包管理器自动管理。
  • /usr/share: 架构无关的只读数据,如文档、图标、字体。
  • /usr/src: 内核源代码的存放位置(如果安装)。
  • /usr/include: C/C++ 等编程语言的标准头文件。

/var

varVariable 的缩写。存放经常变化的(variable)数据,如日志、缓存、假脱机(spool)文件和数据库。

  • /var/log: 系统日志和应用程序日志。
  • /var/cache: 应用程序缓存数据。
  • /var/spool: 排队等待处理的数据,如打印队列和邮件队列。
  • /var/www: Web 服务器(如 Apache)的默认网站根目录(常见于一些发行版)。

特殊虚拟目录

/proc

一个虚拟文件系统,是内核和进程信息的实时接口。文件内容存在于内存中,而非硬盘。例如,可以通过修改 /proc/sys/net/ipv4/icmp_echo_ignore_all 的值来临时禁用 ICMP Echo 响应(即 ping):

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

注意: 此修改在重启后会失效,永久修改需通过 /etc/sysctl.conf 配置文件。

/sys

另一个虚拟文件系统(2.6内核引入),以更结构化的方式向用户空间导出内核对象(设备、驱动、模块)的信息和配置接口,是 /proc 的补充。

/mnt 与 /media

用于临时挂载文件系统的通用挂载点。/mnt 通常用于管理员手动挂载(如网络存储),而 /media 通常用于自动挂载可移动介质(如 U 盘、光盘)。

/opt

用于安装第三方或大型附加应用程序的目录,每个软件通常拥有自己的子目录(如 /opt/google/chrome)。

/lost+found

每个文件系统(分区)在根目录下可能都有一个 lost+found 目录。当文件系统发生错误(如非法关机)并通过 fsck 工具修复后,找回的碎片文件会存放在这里。

总结与最佳实践

理解 Linux 文件系统层次结构标准(FHS)有助于高效地进行系统管理和故障排查。关键要点:

  1. /etc 管配置,/var 管变化数据,/usr 管静态程序。
  2. 用户数据放 /home,临时文件放 /tmp,第三方软件可选 /opt/usr/local
  3. 不要随意删除你不了解的文件,尤其是 /lib, /bin, /sbin 下的内容。
  4. 现代发行版中,/bin, /sbin, /lib 可能与 /usr 下的对应目录合并(通过符号链接),这是“usr merge”趋势。

发表评论

您的邮箱不会公开。必填项已用 * 标注。