学习Linux,不仅限于学习各种命令,了解整个Linux文件系统的目录结构以及各个目录的功能同样至关重要。 使用Linux时,通过命令行输入lsl可以看到,在Linux根目录()下包含很多的子目录(称为一级目录),例如bin、boot、dev等。同时,各一级目录下还含有很多子目录(称为二级目录),比如binbash、bined等。Linux文件系统目录总体呈现树形结构,根目录就相当于树根。 由于Linux系统免费开源,使得Linux发行版本有很多,利用Linux开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置Linux系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用Linux系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对Linux系统目录结构天马行空,Linux基金会发布了FHS标准。多数Linux发行版系统都遵循这一标准。 FHS(FilesystemHierarchyStandard),文件系统层次化标准,该标准规定了Linux系统中所有一级目录以及部分二级目录(usr和var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。Linux根目录() FHS认为,Linux系统的根目录()最为重要(没有之一),其原因有以下2点:所有目录都是由根目录衍生出来的;根目录与系统的开机、修复、还原密切相关; 因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件,如表1所示。 表1Linux一级目录及其作用 FHS针对根目录中包含的子目录仅限于表1,但除此之外,Linux系统根目录下通常还包含表2中的几个一级目录。 表2其他一级目录及功能Linuxusr目录 usr(注意不是user),全称为UnixSoftwareResource,此目录用于存储系统软件资源。FHS建议所有开发者,应把软件产品的数据合理的放置在usr目录下的各子目录中,而不是为他们的产品创建单独的目录。 Linux系统中,所有系统默认的软件都存储在usr目录下,usr目录类似Windows系统中C:WindowsC:Programfiles两个目录的综合体。 FHS建议,usr目录应具备表3所示的子目录。 表3usr子目录及其功能Linuxvar目录 var目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表4所示的这些子目录。 表4var子目录及其功能 根据以上各表列举的各目录及作用,如果我们要做一些实验和练习,需要创建一些临时文件,应该保存在哪里呢? 答案是用户的主目录或tmp临时目录。但是要小心有些目录中不能直接修改和保存数据,比如procfnsys目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;boot目录也不能保存额外数据,因为boot目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。