使用 linux 进行各种各样开发的人实在太多了,因此一套统一的“什么文件存放在哪里”的规范应运而生,被称为 FHS(Filesystem Hierarchy Standard)。
FHS 首先将文件分为四类:1)可分享的文件,指可以分享给其他系统拿去共享挂载的目录;不可分享的,指只与本机运行相关的没有分享意义的文件。2)不常变的文件,指随着系统更新一般不会改变的配置文件;可变动的文件,指经常改变的文件。
例子 | 可分享的 | 不可分享的 |
---|---|---|
不变的 | 应用程序 | 配置文件 内核文件 |
变动的 | 邮件 | 程序运行的临时文件 |
FHS 定义了这三个目录:
- /(root 根目录)
- /usr (Unix software resources 软件存放 注意并不是 user 的缩写)
- /var (variable)
根目录 /
根目录是系统最重要的目录,他和系统的开启、运行修复等息息相关。根目录通常需要这些目录:
目录 | 内容 |
---|---|
/bin | 放置 cat,cp这样基本命令的目录,与/usr中的命令的区别是,他们在单人维护模式荏苒能使用 |
/boot | 这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等等。 |
/dev | linux中,目录以特殊文件的形式存在,通过存储这里的文件操控设备 |
/etc | 储存各种配置文件 |
/lib | 储存函数库 |
/media | 放置各种媒体储存设备 |
/mnt | 用于挂载设备 |
/opt | 用于安装第三方软件 |
/run | 储存开机后的运行信息 |
/sbin | 储存系统相关的高级命令,他们用于系统修复管理,一般只有root可以使用 |
/srv | 服务service,用于放置一些服务所需的数据 |
/tmp | 所有程序都可以使用的临时文件目录 |
/home | 存放使用者的主文件夹 |
/lib64 | 储存64位的函数库 |
/root | root 用户的主文件夹 |
/lost+found | 文件系统发生错误时,一些数据会存放到这里 |
/proc /sys | 储存系统核心,网络信息等,这个目录位于内存中,不占用磁盘 |
/var | 第二层 FHS |
/usr | 第二层 FHS |
如果使用救援模式,/etc、 /bin、 /dev、 /lib、 /sbin 通常是最重要的目录,他们要与根目录挂载到一起。
/usr 目录
usr 意为 Unix software resources,即存放程序的地方,相当于 Win 中的C:\Program Files。所有软件都应该把它们的数据安放在这个目录下。一般来说,/usr 下需要这些目录。
目录 | 内容 |
---|---|
/usr/bin | 一般用户能使用的指令,往往与 /bin 链接到一起,他们的内容是相同的 |
/usr/lib/ | 储存函数库,往往与 /lib 链接到一起,他们的内容是相同的 |
/usr/local | 一般来讲,不是通过;应用包管理而自行安装的软件建议集合到这里,local 下同样具有 bin,lib 等目录 |
/usr/sbin | 储存正常运行以外的高级命令,通常链接到 /sbin |
/usr/share/ | 一些可分享的数据,通常是一些文档说明,之下有 man doc 等目录 |
/usr/games/ | 游戏 |
/usr/include/ | 储存 c 和 c++ 的库头文件 |
/usr/libexec | 储存一些不惯用的脚本 |
/usr/src | 存放一些程序的源代码 |
/var 目录
这个目录储存程序运行时的各种数据,包括高速缓存(cache)、登录文件(log file)以及某些软件运行所产生的文件, 包括程序文件(lock file, run file)。通常拥有这些子目录。
目录 | 内容 |
---|---|
/var/cache | 储存程序运行的一些暂存数据 |
/var/lib | 储存程序需要的数据文件,如 Mysql 的数据库 |
/var/lock | 管理上锁的设备文件 |
/var/log | 放置登录文件 |
/var/mail | 储存个人邮箱 |
/var/run | 储存应用运行后的一些信息,链接到/run |
/var/spool | 储存暂未使用,排队等待使用的一些数据 |