一、目录标准产生

1.使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如 /bin/bash、/bin/ed 等。Linux 文件系统目录总体呈现树形结构,/ 根目录就相当于树根。

2.为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。

二、linux根目录

      FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

  1. 所有目录都是由根目录衍生出来的;
  2. 根目录与系统的开机、修复、还原密切相关;因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件

 三、一级目录

1、/bin/ 

          [Binaries (二进制文件)]  : 存放命令。普通用户和管理员都能用。如cd 、cp、 mv

2、/boot/:

          放系统启动文件。

3、/dev/:

          设备。

4、/etc/     

           系统安装的配置文件。(Etcetera (等等))

5、/home/

           普通用户主目录。如用户 liming 的主目录就是 /home/liming

6、/lib/

           系统的函数库。(library)

7、/media/

            挂载媒体设备,如光盘。

8、/mnt/

             挂在移动设备,如U盘。(mount缩写:安装,准备,攀登的意思)

9、/misc/

             系统建议用来挂载 NFS 服务的共享目录

10、/opt/

             手工安装的源码包软件都可以安装到这个目录中( optional:随意的)

11、/root/

              管理员的主目录。与普通用户的home相似。‘

12、/sbin/

              系统环境变量位置,只有root可以使用这些命令进行系统环境设置

13、/srv/

               一些系统服务启动之后,可以在这个目录中保存所需要的数据

14、/tmp/

                系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入

15、/lost+found/

                当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录

16、/proc/

              虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的

17、/sys/

           和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息

四、Linux /usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

1、/usr/bin/

        存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关。

        新下载的linux的shell命令。

2、/usr/sbin/ 

         存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。

3、/usr/lib/

         应用程序调用的函数库保存位置。如scrapy

4、/usr/XllR6/

         界面系统保存位置

5、/usr/local/

         手工安装的软件保存位置

6./usr/share/

         应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录

7、/usr/src/

         手工下载的源码包和内核源码包都可以保存到这里

8、/usr/include

         C/C++ 等编程语言头文件的放置目录

五、Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等 

1、/var/lib/

         程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中

2、/var/log/

          登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。

3、/var/run/

           一些服务和程序运行后,它们的 PID(进程 ID)保存位置

4、/var/spool/

            里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。

5、/var/www/

            RPM 包安装的 Apache 的网页主目录

6、/var/nis和/var/yp

           NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录

7、/var/tmp

            一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

六、总结

             笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件。

             笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中