对于接触和已经接触过一段时间Linux的使用者来说,系统的各个文件夹名字还是挺让人费解的,什么etc,usr,var等等,大部分也是耳濡目染才有一个大概的概念,例如usr是存放自己编译安装的软件,etc是配置文件。但其实一个叫FHS(文件系统目录标准)早就为我们定义好这些东西,每个目录和层次(命名空间)的用途和规则也是有详细的定义。而大部分Linux发行版也是遵循这个标准来组织系统文件的。
目录名字通常包含三部分,范凑(scope)、分类(category)、应用(application)。
例如 /usr/local/share/vim 存放了应用程序VIM的数据,这里 /usr/local 即为范畴,/share即为分类,vim即为应用程序
范畴(scope):
从更抽象的角度描述整个目录的体系结构。
# / Linux的系统文件 # /usr 更多Linux的系统文件 # /usr/games 游戏 # /usr/local 用户另外安装的软件包 # /usr/X11 X Window系统的文件
注:/和/usr没有很明显的区别,只是抽象上说明/比/usr更接近系统。
分类(category):
用于描述文件夹下文件类型和作用
# bin 可执行二进制或脚本 # sbin 超级用户使用的可执行二进制或脚本 # lib 程序的库 # man 可供man查看的手册 # share 特定的程序文件,例如示例之类 # etc 程序的配置文件 # src 程序的源代码 # dev 系统的设备文件 # var 系统运行期间会改变的文件 # run 记录程序进程的PID文件 # spool 过渡性文件,打印任务,定时任务,计划任务之类
程序(application):
这个没啥好说,一般就是程序以自己名称命名的文件夹。(一般来说该目录下又可以有不同的分类文件夹,类似命名空间)
参考:
FHS标准:http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
书籍:Linux口袋书 Oreilly出版,Daniel J. Barrett著