弄懂 *Nix 文件夹

一直以来对类 Unix 系统都没有太深入的研究过, 许多问题不求甚解.

例如这个关于文件系统目录结构的问题:

  • /bin 和 /sbin 的区别是什么?

  • /bin 和 /usr/bin 有什么区别?

  • /lib 和 /var/lib 又有什么区别?

更奇怪的是为什么 /usr/local 里面又有一套 bin lib?

今天无意间在 hivelogic 的博客里找到了答案:

http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

以下标准不是硬性的, 也就是说每个变种都或多或少的有所违背, 但总体上还是保持尊重.

  • / 根目录, 文件体系的入口.

  • /home 用户自己的根目录.

  • /root root 帐户的 home.

  • /bin binary 单用户模式必需的可执行文件, 也就是所有用户都要用到的.

  • /sbin system binary 系统必需的可执行文件.

  • /lib library 一些库文件, 供 /bin 和 /sbin 使用.

  • /etc 存放系统级别的配置文件. (et cetera 其他, 等等… 貌似是法文)

  • /boot 启动和初始化所需的文件.

  • /dev device 设备. 在 *nix 的概念中, 设备也是文件.

  • /media 可移动媒介安置点, 例如光驱和U盘.

  • /mnt 文件系统临时安置点. (不清楚和上一个的区别)

  • /opt optional 可选的应用程序软件包.

  • /tmp temp 临时文件, 重启消失.

  • /usr user 文件体系的第二级, 存放多用户应用程序,

  • /usr/local 文件体系的第三级. 在这里编译安装软件对系统的影响最小.

  • /var variable 易变的文件. 日志, 打印, 邮件等.

其中 /bin /usr/bin 和 /usr/local/bin 实际上是代表了三个阶层, 第一阶层所有用户通用, 第二阶层可以针对每个用户不同, 第三个阶层是用户之间相对独立的.