FantasticMao 技术笔记
BlogGitHub
  • README
  • C & Unix
    • C
      • 《C 程序设计语言》笔记
      • C 语言中的陷阱
      • CMake 示例
      • GNU make
      • LLVM Clang
      • Nginx 常用模块
      • Vim 常用命令
    • Unix-like
      • 《深入理解计算机系统》笔记
      • 《UNIX 环境高级编程》笔记 - UNIX 基础知识
      • 《UNIX 环境高级编程》笔记 - 文件 IO
      • 《UNIX 环境高级编程》笔记 - 标准 IO 库
      • 《鳥哥的 Linux 私房菜》笔记 - 目录配置
      • 《鳥哥的 Linux 私房菜》笔记 - 认识与学习 bash
      • 《鳥哥的 Linux 私房菜》笔记 - 任务管理
      • OpenWrt 中的陷阱
      • iptables 工作机制
  • Go
    • 《A Tour of Go》笔记
    • Go vs C vsJava
    • Go 常用命令
    • Go 语言中的陷阱
  • Java
    • JDK
      • 《Java 并发编程实战》笔记 - 线程池的使用
      • 设计模式概览
      • 集合概览
      • HashMap 内部算法
      • ThreadLocal 工作机制
      • Java Agent
    • JVM
      • 《深入理解 Java 虚拟机》笔记 - Java 内存模型与线程
      • JVM 运行时数据区
      • 类加载机制
      • 垃圾回收算法
      • 引用类型
      • 垃圾收集算法
      • 垃圾收集器
    • Spring
      • Spring IoC 容器扩展点
      • Spring Transaction 声明式事务管理
      • Spring Web MVC DispatcherServlet 工作机制
      • Spring Security Servlet 实现原理
    • 其它
      • 《Netty - One Framework to rule them all》演讲笔记
      • Hystrix 设计与实现
  • JavaScript
    • 《写给大家看的设计书》笔记 - 设计原则
    • 《JavaScript 权威指南》笔记 - jQuery 类库
  • 数据库
    • ElasticSearch
      • ElasticSearch 概览
    • HBase
      • HBase 数据模型
    • Prometheus
      • Prometheus 概览
      • Prometheus 数据模型和指标类型
      • Prometheus 查询语法
      • Prometheus 存储原理
      • Prometheus vs InfluxDB
    • Redis
      • 《Redis 设计与实现》笔记 - 简单动态字符串
      • 《Redis 设计与实现》笔记 - 链表
      • 《Redis 设计与实现》笔记 - 字典
      • 《Redis 设计与实现》笔记 - 跳跃表
      • 《Redis 设计与实现》笔记 - 整数集合
      • 《Redis 设计与实现》笔记 - 压缩列表
      • 《Redis 设计与实现》笔记 - 对象
      • Redis 内存回收策略
      • Redis 实现分布式锁
      • Redis 持久化机制
      • Redis 数据分片方案
      • 使用缓存的常见问题
    • MySQL
      • 《高性能 MySQL》笔记 - Schema 与数据类型优化
      • 《高性能 MySQL》笔记 - 创建高性能的索引
      • 《MySQL Reference Manual》笔记 - InnoDB 和 ACID 模型
      • 《MySQL Reference Manual》笔记 - InnoDB 多版本
      • 《MySQL Reference Manual》笔记 - InnoDB 锁
      • 《MySQL Reference Manual》笔记 - InnoDB 事务模型
      • B-Tree 简述
      • 理解查询执行计划
  • 中间件
    • gRPC
      • gRPC 负载均衡
    • ZooKeeper
      • ZooKeeper 数据模型
    • 消息队列
      • 消息积压解决策略
      • RocketMQ 架构设计
      • RocketMQ 功能特性
      • RocketMQ 消息存储
  • 分布式系统
    • 《凤凰架构》笔记
    • 系统设计思路
    • 系统优化思路
    • 分布式事务协议:二阶段提交和三阶段提交
    • 分布式系统的技术栈
    • 分布式系统的弹性设计
    • 单点登录解决方案
    • 容错,高可用和灾备
  • 数据结构和算法
    • 一致性哈希
    • 布隆过滤器
    • 散列表
  • 网络协议
    • 诊断工具
    • TCP 协议
      • TCP 报文结构
      • TCP 连接管理
由 GitBook 提供支持
在本页
  • 目录配置的依据 FHS
  • 根目录的意义与内容
  • 参考资料
  1. C & Unix
  2. Unix-like

《鳥哥的 Linux 私房菜》笔记 - 目录配置

目录配置的依据 FHS

FHS(Filesystem Hierarchy Standard)是独立于软件开发商、操作系统开发者、操作系统维护者的一套标准,可以让操作系统的用户可以了解到已安装的软件通常放置于哪个目录下。

根目录的意义与内容

根目录是整个系统中最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。

FHS 标准建议:根目录所在分隔槽应该越小越好,且应用程序所安裝的软件最好不要与根目录放在同一個分隔槽内,保持根目录越小越好。

目录
放置内容

第一部分:FHS 要求必须存在的目录

/bin

放置单人维护模式下还能被操纵的命令。在 /bin 目录下的命令可以被 root 与一般账号使用,例如:cat、chmod、chown、date、mv、mkdir、cp、bash 等等常用的命令。

/boot

放置开机时会使用到的文件。

/dev

在 Linux 中,任何装置与外围设备都是以文件的形式被放置于这个目录中。只要通过存取这个目录底下的某个文件,就等于存取某个外围设备了。比较重要的文件有:/dev/null、/dev/zero、/dev/loop*,/dev/sd* 等等。

/etc

放置系统的主要设置文件,例如用户的账号密码,各种服务的配置文件等等。比较重要的文件有:/etc/modprobe.d、/etc/passwd、/etc/fstab、/etc/issue 等等。

/lib

放置开机时会用到的函数库,以及在 /bin 和 /sbin 目录下会被调用的函数库。

/media

放置可移除的装置,包括光碟、DVD 等等都是在这个目录下挂载。常见的文件有:/media/floppy、/etc/cdrom 等等。

/mnt

放置用于挂载某些额外的装置

/opt

放置第三方软件的目录。

/run

放置系统开机后所产生的各项资讯。

/sbin

s 是 super 的缩写,放置开机时所需要的命令,包括了开机、修复、还原系统所需要的系统命令。

/srv

srv 是 service 的缩写,放置一些基于网络的服务在运行时所需要的资料目录。常见的网络服务例如 WWW、FTP 等等。

/tmp

tmp 是 temporary 的缩写,放置正在运行的程序所创建的临时文档。重要的资料不能放置于这个目录,因为 FHS 标准甚至建议操作系统在开机时要清除 /tmp 目录下的文件。

/usr

usr 是 unix software resource 的缩写,放置 Unix 操作系统软件资源的目录。

/var

var 是 variable 的缩写,放置经常变动的文件,包括缓存(cache)、登陆文件(log file)以及某些软件运行时所产生的文件,包括程序文件(lock file、run file)或者 MySQL 资料库的文件等等。

第二部分:FHS 建议可以存在的目录

/home

系统预设的用户家目录,~ 代表当前使用者的家目录,~${foo} 代表用户 foo 的家目录。

/lib<qual>

放置与 /lib 不同格式的二进制函数库,例如支持 64 位的 /lib64 函数库等等。

/root

root 用户的家目录。

FHS 未定义的目录

/lost+found

这个目录是使用标准的 ext2/ext3/ext4 文件系统格式才会产生的一个目录,用于在文件系统发生错误时,将一些丢失的片段放置到这个目录下啊。如果使用的是 xfs 文件系统的话,就不会存在这个目录。

/proc

proc 是 processes 的缩写,这个目录是一个虚拟文件系统(virtual file system),目录底下的资料都是在内存当中,例如系统内核、进程资料、周边装置的状态以及网络状态等等。因为这个目录底下的资料都是在内存当中的,所以它本身并不占用任何硬盘空间。比较重要的文件有:/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net/* 等等。

/sys

这个目录和 /proc 类似,也是一个虚拟的文件系统,也是放置内核和系统硬件相关的资料。

参考资料

最后更新于1年前

《鸟哥的 Linux 私房菜》- Linux 目录配置