Linux的FHS(文件系统结构标准)剖析

     我们平时所说的Linux系统并不是说的某一个操作系统,而是指使用了由Linus Torvalds(林纳斯·托瓦兹)发明并领衔开发的Linux内核的所有操作系统,Linux仅仅指的是该系统的内核,单独的一个Linux基本上是无法运行任何程序的。

由于Linux内核是自由、免费的,所以有很多人开发了基于Linux的操作系统,开发这样一个系统的大环境是GNU计划,该计划倡导软件自由、免费!很多人接受了这样一种思维并开始开发一些免费的软件,而这些软件当时正好苦于找不到一个好的内核,而由Linus Torvalds开发的Linux内核也同样需要运行于该内核的软件,于是GNU计划与Linux内核有了一个完美的结合。不同的人把不同的免费软件与Linux内核结合打包成完整的操作系统,并逐步形成了自己的品牌。这里比较有影响力的有Redat Linux、Ubuntu Linux、openSUSE、Mandriva、Centos等!
    但是这样开发出来的系统就会有一些缺点,由不同的团队开发出来的基于Linux系统自然有很多地方是无法统一的,想想如果每个开发人员都独自开发自己的系统,并且计算机配置与使用方法完全不统一,那么结果就是你学习了其中一个版本的Linux系统,但当你学成结业,携带自己的技艺进入职场后,你傻啦!因为新的Linux系统与你学的完全不同,界面不同、文件结构不同、命令不同、使用习惯不同… …
由于种种这些原因,于是LSB(Linux Standard Base)出现了,它是由Linux基金会发布的Linux标准规范,以实现天下Linux的大统一!在这份关于Linux标准文档中就规定了Linux的文件系统机构标准(FHS)。
    FHS定义了在/(根目录)下各个主要目录应该存放的主要文件内容,此外还专门定义了/usr和/var两个目录及其子目录的结构。这样当我们使用来自不同公司开发的Linux系统时,你就可以很快的在某个地方找到你想要的文件了。
Linux系统采用的是树状存储结构,在Linux中所有文件与目录都是由/(根)开始的。就想你使用Windows是如果想要打开C盘Windows目录里的fonts文件夹下的某个文件,你必须从C盘开始去找!
    以下是Linux各个目录及其存放的主要内容的说明:
/ 根目录,所有文件、文件夹的入口
/bin 一般用户使用的命令
/sbin 管理员使用的命令
/boot 存放启动文件及Linux内核的地方
/dev 设备目录,在Linux所有设备也都是以文件的形式出现的,打开/dev/sda1,就是打开了你硬盘的第一个分区
/etc 系统配置文件,在这里你可以修改系统的很多东西,关键是你得熟悉这些文件
/home 每个用户自己的个人空间
/lib 库文件
/media 以前是挂接外部存储器的,现在都改到/mnt下了,光盘的内容在该目录下
/mnt 外接设备目录,如移动硬盘、U盘的内容在次目录下存放
/opt 部分软件的存放地点
/root 超级管理员的个人空间
/tmp 临时文件
/usr 绝大多数程序默认会安装在该目录下的某个子目录中
/var 系统日志文件夹
这些是最主要的主目录,如果你想深入研究各个子目录的定义可以去http://www.pathname.com/fhs/下载全部文档说明。
有个这样一个标准我们可以快速的由某个Linux的发行版迁移到另一个发行版,当然FHS仅是一个参考,每个不同的发行版还是会有自己的一些独特设计。