Linux的目录配置,学习了很久一直记不住,这次直接抄书了。

以下内容摘抄与鸟哥的Linux私房菜

Linux的发行版必须遵循FHS标准版[Filesystem Hierarchy Standard]

该标准对Linux三层目录,分别为

/[root]根目录:与启动系统有关

/sur[Unix software resource]:与软件安装/执行有关

/var[avriable]:与系统运行过程有关

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来,同时根目录也与启动、还原、系统修复等操作有关。

FHS标准建议:根目录【/】所在分区应该越小越好,且应用程序所安装的软件最高不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也比较不容易发生问题。

FHS定义了根目录必须存在的目录

/bin:  系统有很多执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被使用的命令。在/bin下面的命令可以被root与一般账号所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用命令

/boot:  这个目录主要放置启动会使用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件等等。Linux内核常用的文件名为:vmlinuz,如果使用的是grub2这个启动引导成勋,则还会存在/boot/grub2、这个目录

/dev:  在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录中。你只要通过读写这个目录下面的某个文件,就等于读写莫个设备,比较重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/loop*,/dev/sd*等

/etc:  系统主要的配置文件,几乎都放置在这个目录内,例如人员你的账户密码文件,各种服务的启动文件等。一般来说,这个目录下的各文件属性是可以让一般用户查看的,但是只有root有权力修改。FHS建议不要放置可执行文件[binary]在这个目录中。比较重要的文件有:/etc/modprobe.d,/etc/passwd,/etc/stab,/etc/issue等。另外FHS还规范几个重要的目录最好要存在/etc目录下:

    /etc/opt[必要]: 这个目录在放置第三方辅助软件/opt的相关配置文件

    /etc/X11[建议]:与X Window有关的各种配置文件堵在这里,尤其是xorg.cong这个X server的配置文件

    /etc/sgml[建议]:与SGML格式相关的各项配置文件;

    /etc/xml[建议]: 与XML格式有关的各项配置文件

/lib:  系统的函数库非常多,而lib放置的则是启动时会用到的函数库,以及在/bin或/sbin下面的命令会调用到的函数库而已。什么是函数库?你可以将它想象成是外挂,某些命令必须要有这些外挂才能够顺利完成程序的执行之意,另外FSH还要求下面的目录必须要存在:

    /lib/modules/:这个目录主要放置可抽换的内核相关模块(驱动程序)

/media:  medis是媒体的英文,顾名思义,这个/media下面放置的就是可删除的设备,包括软盘,光盘,DVD等设备都暂时挂载于此。常见的文件名有:/media/floppy,/media/cdrom等

/mnt:  如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在早些时候,这个目录的用于与/media相同。只是有了/media之后,这个目录就暂时用来挂载

/opt:  这个是给第三方辅助软件放置的目录。什么是第三方辅助软件?举例来说,KDE这个左面管理系统就是一个独立的软件,不过它可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下。另外,如果你想要自行安装额外的软件(非原本的发行版提供),那么也能够将你的软件安装到这里来。不过,以前的Linux系统中,我们还是习惯放置在usr/local目录下。

/run:  早期的FHS规定系统启动后所产生的各种信息应该都要放置到/var/run目录下,新版的FHS则规范到/run下面,由于/run可以使用内存来模拟,因此性能上要好很多.

/sbin:  Linux有很多命令是用来设置系统环境的,这些命令只有root才能够用来设置系统,其它用户最多只能用来查询而已。放在/sbin下面的为启动过程中所需要的,里面包括了启动、修复、还原系统所需要的命令。至于某些服务器软件程序,一般则放置到/usr/sbin当中。至于本机自行安装的软件所产生的系统执行文件(system binary),则放置到/usr/local/sbin当中了。常见的命令包括:fidisk,fsck,ifconfig,mkfs等

/srv:  srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如WWW、FTP等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www里面。不过,系统的服务数据如果尚未要提供给因特网任何人浏览的话,默认还是建议放置到/var/lib下面既可。

/tmp:  这是让一般用户或是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录。因为FHS甚至建议在启动时,应该要将/tmp下的数据都删除。

/usr:  后续说明

/var:  后续说明

还有一些其它的,也说明一下

/lost+found:  这个目录是使用标准的ext2,ext3,ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置在这个目录下,不过如果使用的是xfs文件系统的话,就不会存在这个目录。

/proc:  这个目录本身就是一个虚拟文件系统(virtual filesystem),它放置的数据都是在内存当中,例如系统内核、进程信息[process]、外接设备的状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。比较重要的中间例如:/proc/cpuinfo,/proc/dma,/proc/interrupts,/proc/ioports,/proc/net/*等

/sys:  这个目录其实跟proc比较类似,也是一个虚拟的文件系统,主要也是记录内核与系统硬盘信息相关的内容。包括目前已加载的内核模块与内核检测与内核检测到的硬盘设备信息等,这个目录同样不占空间。

 

现在已经把/bin,/sbin,/lib挂载到/usr下面,/下面的只不过是软连接.