Linux目录结构

FHS标准对根目录( / )及其下的两个子目录:/usr/var的内部结构和存放的文件进行了限定。 除此之外不做限制。根目录是系统的根本,/usr与系统软件的安装及运行相关,/var与系统本身的运行相关。上面加粗的目录是FHS所定义的目录。

/home : 每个账号都有自己的“家”,账号的家目录为/home下与该账号同名的目录。root的家不在home下,在根目录下。

/root : root账号的家目录。

/boot : 这里存放了一些与系统启动相关的关键性内容 - 内核(vmlinuz)、最小可执行linux(initrd)、bootloader(如grub)。

/dev : 这里存放设备文件。设备文件没有数据,只有元数据,因此没有大小,。它是系统访问硬件设备的入口。用逗号隔开的数字是对应设备的设备号。

/etc : 配置文件的主要存放路径,绝大多数程序的配置文件都放在此处,或其子目录中。配置文件以纯文本为主。/bin/sbin中程序的配置文件都放在/etc下。

/lib : 库文件(动态库、静态库)的主要存放路径。modules子目录下存放的是内核模块。/bin/sbin中的程序所依赖的库都放在/lib中。

/bin : 存放了可执行程序、用户命令(普通账号可用)。这里的程序和命令是与系统启动时相关的。

/sbin : supervise bin,存放了可执行程序、管理命令(仅root可用)。这里的程序和命令是与系统启动时相关的。

/mnt : 挂载点目录。通常用作临时性地挂载额外的文件系统。与/media没有本质区别。

/media : 挂载点目录。通常用来挂载移动设备:U盘,光盘等。与/mnt没有本质区别。

/opt : optional,可选目录。是为用户安装第三方软件所准备的目录。不过,习惯上把第三方软件安装在/usr/local下。

/srv : service,存放了一些网络服务程序运行时所需要加载的数据。

/tmp : 存放了一些公共的临时文件,系统会定期自动清理。普通账号均可在此创建文件,且只有权删除自己创建的文件。

/usr : Unix Software Resource,随系统一起发布的软件都会放在这个目录下,因此该目录会占用较大的空间。

  • /usr/bin : 系统启动起来之后,用于提供基本功能的程序与用户命令(普通账号可用)。
  • /usr/sbin : 系统启动起来之后,用于提供基本功能的程序与管理命令(仅root可用)。
  • /usr/lib : /usr/bin/usr/sbin中的程序所依赖的库,除/lib中的外,剩下的均放在这里。
  • /usr/local : 系统使用者自行安装的第三方软件存放在这里。这些软件非系统运行所必须,是使用者为满足业务需求所装。类似地,该目录下也会有bin,sbin和lib子目录。

/var : variable。存放了经常变动的文件(缓存、日志、数据库文件)。随着系统的运行,该目录下会产生越来越多的文件。

  • /var/log : 系统日志以及一些程序或服务程序的日志存放于此。
  • /var/run : 一些程序或服务的进程id(PID)会存放在此。
  • /var/cache : 一些程序将运行时产生的数据缓存于此。
  • /var/lib : 程序运行时,自身所需的数据文件存放于此。

/proc : 伪文件系统,其中的数据其实存放在内存中。也就是说,磁盘上并无实际数据。系统启动后,该目录下才会有内容。这些内容是一些内核映射文件(模拟出来的文件),文件中是一些可调的内核参数和一些统计数据。如果要修改内核参数,或查询一些状态信息,就要在这里完成。

/sys : 伪文件系统,与/proc类似。这里存放了与硬件设备相关的映射文件,通常用于实现对硬件设备的管理。可以认为它是从/proc分离出来的专管硬件的部分。

/lost+found : 这是与具体的文件系统相关的目录,新建的ext2/ext3分区都会有这个目录。当文件系统出错,或机器突然断电时,会在这里找到一些遗失的文件片段。



References: