代码改变世界

详细介绍:Linux的目录结构

2026-01-25 21:01  tlnshuju  阅读(0)  评论(0)    收藏  举报

Linux 的目录结构是理解 Linux 系统的核心基础,我会从设计原则、核心目录功能、新手易混点三个维度,用“通俗比喻+实战举例”的方式讲清楚,让你不仅知道“是什么”,还知道“为什么这么设计”“实际怎么用”。

一、Linux 目录结构的核心设计原则

首先要明确 Linux 目录的两个关键特性,这是和 Windows 最大的区别:

  1. 单根目录结构:Linux 只有一个根目录 /(读作“根”),所有文件/目录都挂载在 / 下,没有 Windows 里的 C 盘、D 盘概念(Windows 是多根结构);
  2. FHS 标准:Linux 遵循《文件系统层次结构标准(Filesystem Hierarchy Standard)》,规定了各目录的用途,保证不同 Linux 发行版(CentOS、Ubuntu、Debian)的目录结构一致;
  3. 目录分类逻辑:按“文件用途”分类,而非“文件类型”——比如配置文件全在 /etc,可执行命令全在 /bin//sbin,日志全在 /var/log
通俗比喻

把 Linux 系统比作一栋大楼:

  • /:大楼的“一楼大厅”,是所有房间(目录)的入口;
  • 各子目录(/etc//var//usr 等):大楼的不同功能区(比如“配置室”“数据室”“软件室”);
  • 文件:功能区里的具体文件(比如配置室里的“网络设置单”、数据室里的“日志本”)。

二、核心目录详解(按重要性排序)

下面是 / 下最核心的目录,每个目录都标注“功能+通俗解释+实战举例”,新手重点掌握前10个即可:

目录路径英文全称核心功能通俗解释实战举例
/Root所有目录的顶级父目录,整个文件系统的起点大楼大厅cd / 回到根目录;ls / 查看所有核心目录
/binBinary存放所有用户可执行的基础命令(如 ls、cd、cp、rm)公共命令室(所有人都能用)ls /bin 能看到 lscd 等命令;/bin/lsls 命令的实际路径
/sbinSystem Binary存放管理员(root) 专用的系统命令(如 reboot、ifconfig、fdisk)管理员命令室(只有管理员能用)reboot 实际是 /sbin/reboot;普通用户执行会提示“权限不足”
/etcEtcetera(等等)存放系统/应用的配置文件(纯文本,可编辑)系统配置室/etc/passwd(用户账号)、/etc/docker(Docker 配置)、/etc/ssh(SSH 配置)
/homeHome普通用户的“家目录”(每个用户有独立子目录,如 /home/zhangsan普通员工办公室cd ~ 直接回到当前用户的 /home 目录;/home/user1 是 user1 的专属目录
/rootRoot User Home管理员(root)的家目录(普通用户无权限访问)老板办公室cd /root 只有 root 能进入;/root/.bashrc 是 root 的个性化配置
/varVariable存放可变数据(日志、缓存、数据库、邮件)——数据会随系统运行动态变化动态数据室/var/log/messages(系统日志)、/var/log/docker(Docker 日志)、/var/lib/mysql(MySQL 数据)
/usrUnix Shared Resources存放用户安装的软件/程序(系统预装+手动安装),相当于 Windows 的 Program Files软件安装室/usr/bin(用户安装的命令,如 docker)、/usr/lib(软件依赖库)、/usr/local(手动编译安装的软件)
/tmpTemporary存放临时文件(所有用户可读写),系统重启后会清空临时文件回收站程序运行时生成的临时文件;/tmp/test.txt 重启后会消失
/devDevice存放硬件设备文件(Linux 中“一切皆文件”,硬件也以文件形式表示)硬件设备室/dev/sda(第一块硬盘)、/dev/null(空设备,相当于“回收站”)、/dev/tty(终端)
/procProcess存放进程/系统状态的虚拟文件(内存中生成,非磁盘文件)系统状态监控室/proc/cpuinfo(CPU 信息)、/proc/meminfo(内存信息)、/proc/1(PID=1 的进程信息)
/mntMount临时挂载外部存储设备(如 U 盘、移动硬盘、NFS 共享目录)临时挂载点mount /dev/sdb1 /mnt/usb 把 U 盘挂载到 /mnt/usb
/mediaMedia自动挂载可移动设备(如光盘、U盘),比 /mnt 更“自动化”自动挂载点插入 U 盘后,系统可能自动挂载到 /media/usb
/optOptional存放大型独立软件(如 Oracle、Tomcat)——软件所有文件都在该目录下大型软件专属室/opt/tomcat(Tomcat 完整安装目录)、/opt/mysql(MySQL 独立安装)
/libLibrary存放系统/命令的依赖库文件(32位系统),64位系统是 /lib64系统库文件室/lib64/libc.so.6(C 语言核心库)、/lib/systemd(系统启动服务库)
/sysSystem存放内核相关的系统信息(硬件参数、内核配置),和 /proc 类似但更聚焦硬件内核硬件信息室/sys/class/net/eth0(网卡 eth0 信息)、/sys/fs/cgroup(容器资源限制)

三、新手易混目录对比(避坑重点)

很多新手会混淆相似目录,这里专门对比:

1. /bin vs /sbin vs /usr/bin vs /usr/sbin
  • /bin:系统核心命令(所有用户可用,如 ls、cd),开机时就会加载;
  • /sbin:系统管理命令(仅 root 可用,如 reboot、fdisk);
  • /usr/bin:用户安装的软件命令(如 docker、python),非系统核心;
  • /usr/sbin:用户安装的管理命令(如 docker daemon、httpd)。
2. /usr vs /usr/local vs /opt
  • /usr:系统预装软件(yum/apt 安装的),比如 yum install docker 会装到 /usr/bin/docker
  • /usr/local:手动编译安装的软件(make && make install),比如编译安装 Nginx 会到 /usr/local/nginx
  • /opt:独立完整的软件包,比如解压 Tomcat 压缩包到 /opt/tomcat,所有文件都在该目录下。
3. /var vs /tmp
  • /var:长期存储的可变数据(日志、数据库),不会自动清空;
  • /tmp:临时文件,系统重启/定期清理,不能存重要数据。
4. /mnt vs /media
  • /mnt:手动挂载(需要执行 mount 命令),适合临时挂载服务器共享目录;
  • /media:自动挂载(系统识别设备后自动挂载),适合桌面版 Linux 的 U 盘/光盘。

四、实战小技巧(新手必学)

  1. 快速查看目录结构

    # 以树形结构显示根目录下的一级目录(需先装 tree 工具:yum install tree -y)
    tree -L 1 /

    输出示例:

    /
    ├── bin -> usr/bin
    ├── etc
    ├── home
    ├── root
    ├── tmp
    ├── usr
    └── var

    注意:很多目录(如 /bin)是软链接到 /usr/bin,这是 Linux 系统的优化,无需在意。

  2. 判断目录是否为虚拟目录
    虚拟目录(/proc//sys)存储在内存中,不是磁盘文件,可用 df -h 查看:

    df -h  # 只显示磁盘挂载的目录,/proc/ /sys/ 不会出现在列表中
  3. 核心目录权限原则

    • /etc//sbin//root:只有 root 可写,普通用户只读;
    • /home//tmp:普通用户可读写(/tmp 所有用户都能写);
    • /usr:root 可写,普通用户只读(安装软件需要 sudo)。

总结

  1. Linux 是单根目录结构,所有文件都在 / 下,遵循 FHS 标准,不同发行版目录结构一致;
  2. 核心目录按“用途”分类:/etc 存配置、/bin//sbin 存命令、/var 存动态数据、/usr 存软件、/home//root 存用户目录;
  3. 新手重点掌握 /etc//var//usr//home//tmp 这5个目录,能解决80%的日常操作问题。

记住:Linux 目录的设计逻辑是“让文件有固定位置”,比如无论你用 CentOS 还是 Ubuntu,Docker 的配置永远在 /etc/docker,日志永远在 /var/log/docker,这也是 Linux 易管理的核心原因。