文件系统层次标准(Filesystem Hierarchy Standard,FHS):规范了在根目录下各个主要目录应该放什么样的文件。
linux的目录配置:根据FHS定义,每个目录内应该放置的文件内容为:
/:根目录,在此目录下只有目录,不能直接有文件。是启动时系统第一个载入的分区,所以,所有启动过程会用到的文件应该都放在这个分区中。如:/bin /etc /lib /sbin /dev这五个目录应该与根目录在一起,不可独立为某个分区。
/bin /usr/bin /usr/local/bin:放置用户可执行的二进制文件的目录。如:ls命令等 。
/boot:主要放置linux启动时用到的文件。启动时会用到linux的核心文件,这个目录下面的文件vmlinuz就是linux的核心。如果引导程序为grub,那么此目录内还有/boot/grub目录。
/dev:在linux系统上,任何设备都以文件类型存放在这个目录中,访问这个目录下面的文件,就等于访问某台设备。
/etc:系统主要的配置文件几乎都放在这个目录下,如人员的账号空码文件,各种服务的起始文件等。只有root权限可更改,此目录下几乎是ASCLL的纯文本文件。比较重要的文件有:/etc/inittab init.d modprobe.conf X11 fstab sysconfig 等,还有比较重要的目录有:
- /etc/init.d:所有服务的默认启动脚本都在这里,例如要启动或关闭iptables的话:/etc/init.d/iptables start
- /etc/xinetd.d:超级守护程序(super daemon)管理的各项服务的设置文件目录。
/etc/X11:与X Window有关的各种配置文件都在这,尤其是xorg.conf 或 XF86Config这二个X-Server的设置文件。
/home:是系统默认的用户家目录(home directory),~表示当前用户的家目录,而~dmtsai则表示dmtsai的家目录。
/lib /usr/lib /usr/local/lib :系统使用的函数库的目录。/lib/modules目录中有核心的相关模块。
/lost+found:系统出现异常,产生错误时,会将一些遗失的片段放于此目录中,通常这个目录会自动出现在某个分区最顶层的目录下。全职在/disk中加装硬盘,在这个目录下就会自动产生一个这样的目录:/disk/lost+found
/mnt /media:这是软盘和光盘的默认载入点;通常软盘挂在/mnt/floppy下,光盘挂在/mnt/cdrom下;/media 和 /mnt有些类似。
/opt:给主机额外安装软件所放的目录。不过,以前的linux系统中,我们还是习惯放在/usr/local目录下。
/proc:这个目录本身是一个“虚拟文件系统”。它放置的数据都在内存中,如系统核心,形成信息,外部设备的状态及网络状态等。因为这个目录下的数据都在内存中,所以本身并不占任何硬盘空间。比较重要的文件有:/proc/cpuinfo /proc/dma /proc/interrupts /proc/ioports /proc/net/*等。
/root 系统管理员的家目录。
/sbin /usr/sbin /usr/local/sbin:放一些系统管理员才会用到的执行命令,如:fdisk mke2fs fsck mkswap mount等。与bin不太一样的是,这几个目录都是给root系统管理用的。但目录下的执行文件可以让一般用户用来“查看”而不能设置。
/srv:一些服务启动之后,这些服务所需要访问的数据目录。example:3w服务器需要的网页数据就可能放在/srv/www中。
/tmp:临时目录。是任何人都可以访问的。
/usr:包含系统的主要程序,图形界面所需要的文件、额外的函数库、本机自行安装的软件,及共享的目录与文件。事实上,它有点像windows操作系统中的”program files”和”winNT”二个文件夹的结合。在此目录的重要目录有:
- /usr/bin /usr/sbin:一般用户及管理员可执行的文件放置目录;
- /usr/include:c/c++等程序语言的头文件与包含文件放置处;
- /usr/lib:各应用程序的函数库文件放置目录。
- /usr/local:本机自行安装的软件的默认放置的目录。当前也适用于:/opt目录。
/usr/share:共享文件放置的目录,如下面二个目录:
- /usr/share/doc:放一些系统帮助文件的地方。
- /usr/share/man: manpage的文件目录。
/usr/src:linux系统相关的程序代码放置目录。
/usr/X11R6:系统内的X Window system所需要的执行文件几乎都放在这里。
/var:主要放置系统执行过程中经常变化的文件。举例来说,例如缓存(catch)或者是随时更改的登录文件(log file)。此外,某些软件执行过程中会写入的数据库文件,如Mysql数据库。
它下面的主要目录有:- /var/cache:程序在运行过程中的一些暂存盘。
- /var/lib:程序执行过程中,使用的数据文件放置的目录。如:locate数据库与MySql及rpm等数据库系统,都写在这个目录中。
- /var/log:登录文件放置的目录。/var/log/messages就是总管所有登录文件的文件。
- /var/lock:某些设备有一次性写入的特性,中tab(磁带机),在写时,会将此设备锁起来。
- /var/run:某些程序或是服务启动后,会将它们的PID放在这个目录下
- /var/spool:是一些队列数据存放的地方。举例来说,主机收到电子邮件后,就会放到/var/spool/mail中,若信件暂时发不出去,就会收到/var/spool/mequeue目录下,用户工作任务分配(cron)则是放在/var/spool/cron中。
启动数据一般放在/etc中,个人数据放在/home 系统通常是在/usr中。