文章目录
- 一、Linux系统目录结构
- 1、树状目录结构
- 2、目录结构解释
- 1. /
- 2. /home - 普通用户的家目录
- 3. /root - 超级用户root家目录
- 4. /etc - 系统配置文件的路径
- 5. /usr - 存储系统软件资源
- 6. /var - 存储动态数据
- 7. /opt - 第三方安装的软件保存位置
- 8. /bin - 二进制文件 普通命令
- 9. sbin - super bin只有root用户才可以使用的命令库
- 10. /tmp - 相当于Windows下的回收站
- 11. /dev - Linux device设备(磁盘 光驱)
- 12. /media - 挂载目录
- 13. /mnt - 临时挂载点
- 14. /lib - 系统调用的函数库
- 15. /boot - 系统引导程序存放的目录
- 16. /selinux - Windows下的防火墙
- 17. /srv - 服务数据目录
- 18. /sys - 虚拟目录
- 19. /proc - 虚拟目录
- 20. /run - 虚拟目录
- 21. /lost+found - 系统异常关闭产生文件
一、Linux系统目录结构
1、树状目录结构
2、目录结构解释
为了避免诸多使用者对Linux系统目录结构天马行空,Linux基金会发布了FHS标准。多数Linux发行版系统都遵循这一标准。
FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。
1. /
根目录,位于Linux系统目录结构的顶层,一般根目录下只存放目录,不要存放文件。FHS认为,Linux系统的根目录最为重要,没有之一,原因有2点:
- 所有目录都是由根目录衍生出来的
- 根目录与系统的开机、修复、还原密切相关
2. /home - 普通用户的家目录
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的alice、bob何eve。
3. /root - 超级用户root家目录
该目录为系统管理员,也称作超级权限者的用户主目录 。普通用户主目录在/home下,root主目录直接在/下。
4. /etc - 系统配置文件的路径
etc是Etcetera(等等)的缩写,配置文件保存目录。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等。
注意: 如果更改了该目录下的某个文件可能会导致系统不能启动 。
5. /usr - 存储系统软件资源
usr 是 unix shared resources(共享资源) 的缩写,此目录用于存储系统软件资源。FHS建议所有的开发者,应把软件产品的数据合理的放置在/usr目录下的各子目录中,而不是为他们创建单独的目录。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下。
- /usr/bin 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
- /usr/sbin 存放根文件系统不必要的系统管理命令,如多数服务程序,只有root可以使用
- /usr/lib 应用程序调用的函数库保存位置
- /usr/XIIP6 图形界面系统保存位置
- /usr/local 手工安装的软件保存位置。一般建议源码包软件安装在这个位置
- /usr/src 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
- /usr/share 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
- /usr/include C/C++ 等编程语言头文件的放置目录
6. /var - 存储动态数据
var 是 variable(变量) 的缩写,/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里 。
- /var/lib 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
- /var/log 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等
- /var/run 一些服务和程序运行后,它们的 PID(进程 ID)保存位置
- /var/spool 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
- /var/www RPM 包安装的 Apache 的网页主目录
- /var/nis和/var/yp NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
- /var/tmp 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
7. /opt - 第三方安装的软件保存位置
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。第三方安装的软件,手工安装的源码包软件都可以安装到这个目录中。默认是空的 。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件。
8. /bin - 二进制文件 普通命令
bin是Binaries(二进制文件)的缩写,存放系统命令,普通用户和root都可以执行。放在/bin下的命令在单用户模式下也可以执行。
9. sbin - super bin只有root用户才可以使用的命令库
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序 。保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
10. /tmp - 相当于Windows下的回收站
tmp 是 temporary(临时) 的缩写, 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空。
- /tmp: 10天未用的文件,系统重启会清空目录
- /var/tmp:30天未用的文件,系统重启会清空目录
- /usr/tmp: 已经被众多发行版抛弃的临时文件夹
11. /dev - Linux device设备(磁盘 光驱)
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,设备文件保存位置。在 Linux 中访问设备的方式和访问文件的方式是相同的。
12. /media - 挂载目录
挂载目录。系统建议用来挂载媒体设备,如软盘和光盘。linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
13. /mnt - 临时挂载点
早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区。
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
14. /lib - 系统调用的函数库
lib 是 Library(库) 的缩写,系统调用的函数库保存位置。这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
15. /boot - 系统引导程序存放的目录
系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等,不要轻易对该目录进行操作。
16. /selinux - Windows下的防火墙
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
17. /srv - 服务数据目录
服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据。
18. /sys - 虚拟目录
虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息。这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
- sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
- 该文件系统是内核设备树的一个直观反映。
- 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
19. /proc - 虚拟目录
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的…
20. /run - 虚拟目录
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
21. /lost+found - 系统异常关闭产生文件
当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录…