服务器设置和教程 · 7 2 月, 2026

Ubuntu 系统目录结构详解与使用场景

Linux(包括 Ubuntu)的目录结构遵循 Filesystem Hierarchy Standard (FHS),是一种约定俗成的层级布局。理解它能帮助你快速定位配置文件、日志、程序、用户数据等,避免“到处找文件”的低效操作。

下面是 Ubuntu Server(以及大多数现代 Linux 发行版)中最核心、最常用的目录,按重要程度和使用频率排序,附带实际生产场景说明。

核心目录速览表

目录英文全称 / 含义是否必须挂载单独分区生产环境常见大小建议核心用途与典型场景
/根目录(一切起点)20–50GB(视业务)所有目录的父目录
/binbinaries(基本命令)通常与 / 一起ls、cp、mv、cat、mkdir 等核心命令
/sbinsystem binaries同上fdisk、reboot、ifconfig 等系统管理命令(root专用)
/usruser programs(用户程序)可选单独10–30GB大部分软件安装在这里(/usr/bin、/usr/lib、/usr/share)
/etcetcetera(配置文件)推荐单独1–5GB几乎所有服务的配置文件(nginx.conf、sshd_config、netplan等)
/varvariable data(可变数据)强烈推荐单独10–100GB+日志、缓存、数据库、邮件队列、临时文件
/home用户家目录强烈推荐单独按需(几十GB到TB)用户文件、.ssh、.bashrc、项目代码
/tmptemporary files可 tmpfs(内存)1–8GB临时文件、编译中间文件(可 noexec、nosuid 挂载)
/boot启动相关推荐单独(尤其加密)1–2GB内核、initramfs、grub 配置
/devdevices(设备文件)自动生成很小/dev/sda、/dev/null 等(udev 动态生成)
/procprocess information虚拟文件系统几乎不占运行时内核与进程信息(cat /proc/cpuinfo)
/syssystem information虚拟文件系统几乎不占硬件、内核参数、电源管理等(sysfs)
/runruntime datatmpfs锁文件、pid 文件、systemd 运行时数据
/mntmount temporary手动挂载点按需临时挂载外部磁盘、光盘等
/mediaremovable media自动挂载点按需U盘、移动硬盘自动挂载位置(桌面版常用)
/optoptional software可选按需第三方非 apt 安装的软件(例如 Google Chrome、某些商业软件)
/rootroot 用户家目录与 / 一起root 的 .bashrc、历史命令、临时脚本
/lost+found文件系统修复恢复目录自动生成极小fsck 修复后丢失文件恢复处

生产环境最值得单独挂载的分区(强烈推荐)

  1. /var(日志、缓存、数据库增长最快的地方)
    • 场景:Nginx/Apache 日志、MySQL/PostgreSQL 数据、Docker 容器数据、mail queue
    • 建议:xfs 或 ext4,预留 50GB+,监控增长
  2. /home(用户代码、密钥、项目文件)
    • 场景:开发人员上传代码、.ssh/authorized_keys、个人脚本
    • 建议:加密挂载(LUKS)或 quota 限制单个用户
  3. /boot(尤其 root 分区加密时)
    • 场景:GRUB 无法读取加密分区,需要 /boot 明文
  4. /tmp(可选 tmpfs)
    • 挂载为内存文件系统:tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    • 好处:速度快、断电自动清空、防止磁盘占满

常见误区与注意事项

  • 不要把 /var/log 单独分区 大部分情况下不推荐,因为 /var/log 只是 /var 的子目录,单独分区管理复杂且收益不大。
  • /usr/local vs /opt
    • /usr/local:自己编译安装的软件(make install 默认路径)
    • /opt:第三方打包好的独立软件(例如 /opt/google/chrome)
  • /snap(Ubuntu 特色) Snap 包全部安装在 /snap 和 /var/lib/snapd,体积可能较大,生产环境可考虑禁用 snapd(如果不使用 snap 软件)。
  • 符号链接常见用法 生产中常把大目录软链到大分区:
    text
    mv /var/lib/docker /data/docker
    ln -s /data/docker /var/lib/docker

快速定位文件的“黄金口诀”

记住这几句,能解决 90% 的“文件在哪”问题:

  • 服务配置文件 → /etc/(几乎全部)
  • 日志 → /var/log/
  • 运行中的进程信息 → /proc/进程号/
  • 已安装软件放哪 → dpkg -L 包名 或 apt show 包名
  • 自己编译的程序 → /usr/local/bin / /usr/local/lib
  • 用户自己的东西 → ~/ 或 /home/用户名/
  • 系统启动报错看 → /var/log/boot.log 或 journalctl -b

生产环境推荐的 fstab 片段示例(简化)

text
# /etc/fstab
UUID=xxx   /          ext4   defaults,noatime        0 1
UUID=yyy   /boot      ext4   defaults                0 2
UUID=zzz   /var       xfs    defaults,noatime        0 2
UUID=aaa   /home      ext4   defaults,noatime,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1   0 2
tmpfs      /tmp       tmpfs  defaults,noatime,mode=1777,size=4G   0 0
掌握 Ubuntu 的目录结构后,你会发现“找东西”从几分钟变成几秒钟,运维效率大幅提升。建议在新服务器上实际走一遍每个目录,敲 ls -l 或 du -sh * 看内容分布,建立直观印象。