前言
学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要。
最开始我们对目录有所了解就可以了。随着对Linux使用的经验的加深,我们会了解越来越多的目录。对目录的功能知道得越多,我们对Linux系统的工作原理就理解的越深刻,理解操作系统的工作原理,更有助于我们更为规范地使用和理解系统中每个目录存在的意义,直至最后几乎知道系统中的每个文件。
Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。
我们可以使用一个命令:man hier ,通过这个命令的输出,就知道对文件系统目录分类的 FHS 标准。
下面我对Linux常见的一些目录进行分类,分为系统启动类,命令类,用户类,外设类,数据类,软件类共六类。
(注:本文以CentOS7操作系统为例,其他Linux发行版可能略有不同。)
系统启动类目录
子目录 | 功能 |
---|---|
/boot | 系统启动目录,保存与系统启动相关的文件 如内核文件/boot/vmlinuxz 启动引导程序文件/boot/grub等 |
/lib | 包含开机时核心系统程序使用的共享库文件,与Windows系统下的DLL类似 |
/etc | 存放所有的系统管理所需要的配置文件和子目录。 如用户账号列表/etc/passwd 自动化任务运行/etc/cron.daily/等 |
命令类目录
子目录 | 功能 |
---|---|
/bin | bin是Binary的缩写,存放对用户和系统“必须”的命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行。 |
/sbin | 保存与系统环境设置相关“必须”的命令,只有 root 可以使用这些命令进行系统环境设置,但其他一些命令也可以允许普通用户执行 |
/usr/bin | 一般存放的只是对用户和系统来说“不是必须的”命令。 |
/usr/sbin | 一般存放用于系统管理的“不是必须的”命令,如多数服务程序。 |
用户类目录
子目录 | 功能 |
---|---|
/home | 普通用户的主目录。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户user的主目录就是 /home/user |
/root | root 账户的主目录。 |
外设类目录
子目录 | 功能 |
---|---|
/dev | 设备文件保存位置,内核将它能够识别的所有设备存放在此目录 |
/media | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
/mnt | 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 |
数据类目录
子目录 | 功能 |
---|---|
/sys | 虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存与内核相关的信息 |
/proc | 虚拟文件系统。主要保存系统的内核、进程、外部设备状态和网络状态等,从中可以看到内核如何监管计算机的。 如 /proc/cpuinfo 是保存 CPU 信息的 /proc/devices 是保存设备驱动的列表的 /proc/filesystems 是保存文件系统列表的 |
/srv | 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。 |
/tmp | 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下 |
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
子目录 | 功能 |
---|---|
/var/lib | 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中 |
/var/log | 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再删除 |
软件类目录
子目录 | 功能 |
---|---|
/opt | 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包。 |
/usr目录,全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
子目录 | 功能 |
---|---|
/usr/lib | 应用程序调用的函数库保存位置 |
/usr/local | 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置 |
/usr/share | 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 |
/usr/src | 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。 |
/usr/include | C/C++ 等编程语言头文件的放置目录 |
注:本文为Yo原创,未经许可不得在任何平台转载,侵权必究。如需转载,可关注微信公众号:技术训练营,在后台留言,与作者联系,取得许可才能转载~
微信扫一扫,发现更精彩。