Linux目录配置标准FHS
FHS是Filesystem Hierarchy Standard的简称。FHS定义了两层规范。第一层是/目录下各个主要目录应该放什么文件数据,例如/etc应该放配置文件、/bin与/sbin则应该放置可执行文件等;第二层则是针对/usr和/var这两个目录的子目录来定义,例如/var/log放置系统登录文件,/usr/share放置共享数据等。
单一文件或目录的最大允许文件名为255个字符,包含完整路径的文件名或目录名最大允许为4096个字符。
目录应放置的文件内容/根目录root(/),一般建议在根目录下只有目录,不要直接有文件。根目录是启动时系统第一个载入的分区,所以所有启动过程中会用到的文件都应该放在这个分区中。举例来说,/etc、/bin、/dev、/lib、/sbin这5个子目录都应该与根目录连在一起,不可独立成为某个分区。/bin,/usr/bin,根据FHS规范的第二层内容,在/usr目录下,包含系统的主要程序、图形界面所需要的文件、额外的函数库、本机自行安装的软件,以及共享的目录与文件。它有点像Windows操作系统中的“Program files”与“Windows”这两个目录的结合。在此目录下的重要子目录有:
/usr/bin,/usr/sbin:一般身份用户与系统管理员可执行文件放置目录/usr/include:c/c++等程序语言的文件头(header)与包含文件(include)放置处,当以tarball方式(*.tar.gz的方式安装软件)安装某些数据时,会使用到里面的许多包含文件。/usr/lib:各种应用软件的函数库文件放置目录。/usr/local:本机自行安装的软件默认放置的目录。当前也适用于/opt目录。在安装完Linux之后,基本上所有的配置都有了,但软件总是可以升级的,例如要升级代理服务,则通常软件默认的安装地方就是/usr/local中。当安装完之后所得到的执行文件,为了与系统原执行文件区分,升级后的执行文件通常放在/usr/local/bin中。建议将后来才安装的软件放在这里,便于管理。/usr/share:共享文件放置的目录,例如/usr/share/doc目录放置一些系统帮助文件、/usr/share/man放置manpage文件。/usr/src:Linux系统相关的程序代码放置目录,例如/usr/src/linux为核心源码。/usr/X11R6:系统内的X Window System所需的执行文件几乎都放在这里。/var这个目录也很重要,也是FHS规范的第二层目录内容。它主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的日志文件(log file)。此外,某些软件执行过程中会写入的数据库文件,例如MySQL数据库,也都写入这个目录中。它下面的主要目录有:
/var/cache:程序文件在运行过程中的一些暂存盘。/var/lib:程序执行的过程中,使用的数据文件放置的目录。例如locate数据库与MySQL及rpm等数据库系统,都写在这个目录中。/var/log:登录文件放置的目录,很重要。例如/var/log/messages就是总管所有登录文件的文件。/var/lock:某些设备具有一次性写入的特性,例如tab(磁带机),此时,为了避免被其他人干扰正在运行的操作,会将该设备lock(锁)起来,以确定该设备只能被单一程序所用。/var/run:某些程序或者是服务启动后,会将它们的PID放在这个目录下。/var/spool:是一些队列数据存放的地方。例如主机收到电子邮件后,就会放到/var/spool/mail中,若信件暂时发不出去,就会放到/var/spool/mqueue目录下,用户工作任务分配(cron)则是放在/var/spool/cron中。