FHS标准的Linux目录


为什么想写这个呢?是因为最近要在unbuntu下面安装java的jdk,将jdk下载后不知道将其解压到哪里去。于是就产生了写这篇博客的冲动了

首先我翻阅了实验楼中的《Linux基础入门》,上面是这样解释的

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

FHS的作用

  • 去预测软件的安装位置
  • 去预测已经安装了的软件的位置

意思是Unix/linux大多数都是遵守这个标准的(也就是大多数系统unbunt、centos、redHat的目录结构都是这样的)。所以我们知道这个标准,就知道FHS定义的每个目录该放什么东西了。

首先给出FHS官方文档


一、概述

首先来自实验楼的一张图片,大致介绍各个目录的作用:
FHS标准的Linux目录

接下来,具体介绍一下各个目录的作用。

二、具体介绍

2.1 /bin :存放重要的用户命令二进制文件(所有用户都可以使用)

2.2 /boot:存放引导加载程序的静态文件

2.3 /dev : 存放设备文件

2.4 /etc : 主机配置文件

/etc/opt : 附加的应用程序的配置文件必须放在这个目录里面
/etc/

2.5 /home:用户主目录

2.6 /lib: 存放基本共享库和内核模块

2.7 /media : 移动媒体的挂载点

2.8 /mnt : 临时安装的文件系统的挂载点

比如我的宿主机(window)和ubunt的共享文件,就放在这里。如下:
FHS标准的Linux目录

2.9 / opt:用于存放附加应用程序软件包

比如我的在unbuntu中安装的idea,其安装包就放在这个位置。如下:
FHS标准的Linux目录

2.10 / root:root用户的主目录(可选)

2.11 / sbin:系统二进制文件,存放root用户命令

2.12 /srv: 存放系统提供的服务数据

2.13 / tmp:临时文件

2.14 /usr

/ usr是文件系统的第二个主要部分。 / usr是可共享的只读数据。这意味着/ usr应该可以在各种符合FHS的主机之间共享,并且不得写入。任何特定于主机或随时间变化的信息都存储在其他位置。

目录(Directory) 描述(Description)
/usr/bin 大多数用户命令
/usr/include C程序包含的头文件
/usr/lib 存放库文件(Libraries),java jdk就放在这里
/usr/local 本地层次(empty after main installation)
/usr/sbin 非必要的标准系统二进制文件目的
/usr/share 与架构无关的数据

2.15 / var包含可变数据文件。这包括假脱机目录和文件,管理和日志记录数据以及临时文件。

目录(Directory) 描述(Description)
/var/cache 应用缓存数据
/var/lib 可变的状态信息
/var/local /usr/local 的可变数据
/var/lock 锁文件
/var/log 日志文件和目录
/var/opt /opt的可变数据
/var/run 和正在运行的进程相关的数据
/var/spool 应用假脱机数据
/var/tmp 系统重启时保存的临时文件