Linux 目录规范速查表

系统整洁之道:FHS 标准与现代化运维最佳实践

Ver 2025.11

系统地图

/ (Root)
usr/bin, lib

系统领地。包管理器 (apt/yum) 的家。手动禁止写入。

etc

系统级配置文件。

opt

大型第三方软件 (Chrome, PyCharm)。

usr/local

单二进制文件 (Caddy, Kubectl)。

var

日志(log), 数据库(lib), 网站(www)。

data 推荐创建

非标准但强烈推荐。挂载大硬盘,存放所有业务数据、Docker卷。

我有个软件,该放哪?

大型商业软件 / 全家桶

特征:解压后有一堆文件夹 (bin, lib, conf)

例子: IntelliJ IDEA, Tomcat, MinIO

/opt/{软件名}

单文件服务端 / 工具

特征:仅仅是一个二进制文件,无需依赖

例子: Caddy, kubectl, ripgrep

/usr/local/bin

系统级基础服务

特征:复杂的数据库、Web服务器

例子: PostgreSQL, Nginx, Redis

apt/yum (默认路径)
Docker (推荐)

※ 不要手动安装二进制,维护极其困难。

Docker 最佳实践

防止系统盘爆炸,请修改 data-root
此设置会自动将以下内容全部迁移:

  • Images (镜像):动辄几个G的大文件
  • Containers (容器层):容器运行时产生的数据
  • Local Volumes (卷):docker volume create 的数据
/etc/docker/daemon.json
{
  "data-root": "/data/docker-data",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

*修改后需重启:systemctl restart docker

推荐的项目结构

不要散养容器。以项目为单位在 /data 中管理。

/data/my-web-app/
docker-compose.yml
.env
config/
└── nginx.conf (挂载到容器)
db_data/
└── (挂载 /var/lib/mysql)