0%

linux目录结构

Linux 目录结构详解:深入理解文件系统的组织逻辑

Linux 系统采用单根目录结构(以 / 为根节点),所有文件和目录都从根目录衍生而来。这种标准化的目录布局确保了不同 Linux 发行版(如 CentOS、Ubuntu)的一致性,方便用户和程序定位资源。本文将详细解析 Linux 主要目录的功能和用途,帮助你快速掌握文件系统的组织逻辑。

目录结构概览

Linux 目录结构遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),核心目录按功能可分为系统核心目录用户数据目录临时 / 可变数据目录三大类。以下是最常用的目录及其功能:

目录路径 功能分类 核心功能描述
/ 根目录 整个文件系统的起点,所有目录都是其子孙目录。
/bin/usr/bin 命令目录 存放普通用户和超级用户均可执行的基础命令(如 lscpmkdir)。
/sbin/usr/sbin 系统命令目录 存放仅超级用户(root)可执行的系统管理命令(如 rebootifconfig)。
/boot 启动目录 存放系统启动必需的文件(如内核 vmlinuz、引导程序 grub)。
/dev 设备文件目录 所有硬件设备的抽象文件(如硬盘 sda、终端 tty、鼠标 mouse0)。
/etc 配置文件目录 系统和应用程序的配置文件(如网络配置 network、用户配置 passwd)。
/home 用户主目录 普通用户的个人数据目录(如 /home/user1/home/zhang)。
/lib/lib64 函数库目录 系统和程序依赖的共享库文件lib64 为 64 位系统专用)。
/lost+found 恢复目录 系统崩溃后,fsck 工具修复的文件碎片存放处(通常为空)。
/mnt/media 挂载目录 临时挂载外部设备(如 U 盘、光盘)的挂载点(/media 更偏向自动挂载)。
/proc 进程信息目录 虚拟目录,存放内存中的进程和系统状态信息(如 /proc/cpuinfo 显示 CPU 信息)。
/opt 第三方软件目录 存放手动安装的第三方软件(如 /opt/google/opt/java)。
/usr 系统资源目录 存放应用程序、文档、库文件等(相当于 Windows 的 Program Files)。
/tmp 临时文件目录 存放系统和用户的临时文件(重启后可能被清空)。
/var 可变数据目录 存放动态变化的数据(如日志 /var/log、缓存 /var/cache、邮件 /var/mail)。

核心目录详解

命令与系统工具目录

/bin/usr/bin
  • 功能:存放所有用户可执行的基础命令,是系统运行的核心依赖。
  • 特点/bin/usr/bin 的软链接(部分发行版),确保命令路径的兼容性。
  • 常见命令ls(列目录)、cp(复制)、mv(移动)、sh(Shell 解释器)。
/sbin/usr/sbin
  • 功能:存放系统管理命令,通常需要 root 权限执行。
  • 常见命令reboot(重启)、ifconfig(网络配置)、fdisk(磁盘分区)。

系统启动与配置目录

/boot
  • 核心文件:
    • 内核文件:vmlinuz-<版本号>(Linux 内核)。
    • 引导程序:grub/(GRUB 引导加载器配置)。
    • 初始化内存盘:initramfs-<版本号>.img(启动时加载的临时根文件系统)。
  • 重要性:删除或损坏此目录下的文件会导致系统无法启动。
/etc
  • 核心配置文件:
    • 系统配置:/etc/profile(环境变量)、/etc/fstab(文件系统挂载配置)。
    • 网络配置:/etc/sysconfig/network-scripts/(网卡配置)、/etc/resolv.conf(DNS 配置)。
    • 用户配置:/etc/passwd(用户列表)、/etc/group(用户组)。
    • 服务配置:/etc/httpd/(Apache 配置)、/etc/mysql/(MySQL 配置)。
  • 注意:修改此目录下的文件通常需要 root 权限,错误配置可能导致服务失效。

设备与硬件相关目录

/dev
  • 设备文件类型:
    • 块设备:以 sd 开头(如 /dev/sda 表示第一块硬盘,/dev/sda1 表示其第一个分区)。
    • 字符设备:如 /dev/tty1(第一个终端)、/dev/null(黑洞设备,接收所有写入数据并丢弃)。
    • 虚拟设备:/dev/random(随机数生成器)、/dev/zero(生成空字节流)。
  • 使用示例mount /dev/sdb1 /mnt/usb(挂载 U 盘到 /mnt/usb)。
/proc
  • 虚拟文件系统:不占用磁盘空间,数据存于内存,实时反映系统状态。
  • 常用文件:
    • /proc/cpuinfo:CPU 型号、核心数等信息。
    • /proc/meminfo:内存使用情况(总内存、空闲内存等)。
    • /proc/1:进程 ID 为 1 的进程(systemdinit)的详细信息。
    • /proc/version:Linux 内核版本信息。

用户与数据目录

/home
  • 结构:每个普通用户拥有独立的子目录(如 user1 的主目录为 /home/user1),权限为用户私有(默认 700)。
  • 用户数据:存放文档、下载、配置文件(如 .bashrc.ssh/)等。
  • root 用户:root 的主目录为 /root(不在 /home 下),确保系统故障时仍可访问。
/tmp/var/tmp
  • /tmp:存放临时文件,所有用户可读写,系统重启后可能自动清理(依赖发行版配置)。
  • /var/tmp:与 /tmp 类似,但文件保留时间更长(通常用于需要跨重启保存的临时数据)。
  • 示例:程序编译过程中生成的临时文件、用户下载的临时安装包。

软件与资源目录

/usr
  • 子目录功能:
    • /usr/bin:用户命令(与 /bin 重复,FHS 标准统一至此)。
    • /usr/sbin:系统命令(与 /sbin 重复)。
    • /usr/lib:共享库文件。
    • /usr/share:架构无关的数据(如文档、图标、字体)。
    • /usr/local:手动安装的软件(如 make install 默认路径),与系统自带软件分离。
/opt
  • 用途:存放大型第三方软件(如 Oracle、Java、浏览器等),避免污染系统默认目录。
  • 示例/opt/google/chrome(Chrome 浏览器)、/opt/jdk1.8(Java 开发环境)。

目录结构的设计原则

  1. 层次化与标准化:所有目录从根目录 / 衍生,遵循 FHS 标准,确保不同发行版的一致性。
  2. 功能分离:
    • 静态文件(如命令、配置模板)与动态文件(如日志、缓存)分离(/usr/var)。
    • 系统文件与用户文件分离(//home)。
  3. 安全性:
    • 关键目录(如 /boot/etc)仅 root 可修改,普通用户无写入权限。
    • 用户主目录默认权限为 700,确保数据私有。

实用技巧:快速定位目录

  1. 通过命令记忆目录

    • 找命令:/bin/usr/bin/sbin
    • 找配置:/etc
    • 找日志:/var/log
    • 找用户文件:/home/用户名~(当前用户主目录)。
  2. 查看目录占用空间

    1
    2
    3
    4
    5
    # 查看根目录下各子目录的大小
    du -sh /*

    # 查看 /var/log 目录的总大小
    du -sh /var/log
  3. 快速导航常用目录

    1
    2
    3
    cd /etc    # 配置文件
    cd /var/log # 日志文件
    cd ~ # 个人主目录

欢迎关注我的其它发布渠道