一篇文章讲清Linux操作系统的目录结构

经常在windows环境下工作的同学在初次使用linux操作系统的时候可能有种不知所措的感觉 。Linux操作系统理念是一切皆文件 。因此当我们登入Linux操作系统内部的时候看到的是各种目录和文件 。特别是进入非桌面版时,看到的只是一个命令行提示符 。

一篇文章讲清Linux操作系统的目录结构

文章插图
图1 Linux交互界面
这就给大家造成了很大的学习障碍 。其实如果登录桌面版(比如Ubuntu)会发现其实跟Windows还是很像的 。学习门槛也低很多 。
一篇文章讲清Linux操作系统的目录结构

文章插图
图2 图形界面目录结构
桌面版只是对底层做了一些封装,本质上来说,Linux操作系统中一切皆文件 。不仅仅存储数据的磁盘是文件,其它设备也是文件 。操作系统内部的信息也是以文件的形式呈现的,比如CPU信息、内存信息和进程信息等等 。
因此,如果想学习Linux操作系统,非常有比较了解一下整个文件系统 。其实有一个专门的文档来介绍Linux的目录结构,这个文档名为文件系统层次标准(Filesystem Hierarchy Standard,简称FHS) 。但是这个文档非常长,而且在Linux的目录结构中有些目录并不在该文档中,因此本文简要介绍一下Linux的核心目录 。
/ – 根目录首先我们介绍一下Linux下的根目录 。Linux的目录结构就像一棵倒着的大树,最底层是树干,然后是分支,层层细分 。而根目录是Linux最底层的目录,就像一棵大树的树干一样 。
任何内容都位于根目录之下,根目录通过一个路径符号/表示 。如果非要找个类比的话,可以将根目录理解为Windows下面的C:目录 。但是严格来说并不一样,Linux下的"/"是所有内容(包括文件目录、设备和文件等)的根,而Windows下的C:并不是,因为如果有多个磁盘或者多个分区,那Windows下可能还有D:或者E: 。
我们可以通过执行命令cd /将当前工作路径切换到根目录 。并通过命令tree -L 1显示根目录的所有下一级目录 。具体如图3所示 。本例中只显示了一级子目录,当然也可以通过-L 2显示二级子目录,但结果可能会占满整个屏幕 。
一篇文章讲清Linux操作系统的目录结构

文章插图
图3 根目录示例
/bin – 用户基础二进制文件目录目录/bin是根目录的一级子目录 。在该目录中包含着最为基础的用户二进制文件,也就是应用程序 。这个目录非常像Windows下的Programs目录 。
并非所有的应用程序都存储在这个目录下面,有些不是特别基础的程序会存储在/usr/bin目录下面 。比如Chrome浏览器等,或者用户自己安装的一些程序通常会在/usr/bin下面 。而系统应用程序则通常会在该目录下面,比如ls、mkdir和cp等等 。
如果你使用的桌面版的操作系统,可以通过GUI看到该目录下的内容 。下面这张图是一个具体的例子 。
一篇文章讲清Linux操作系统的目录结构

文章插图
图4 二进制目录
/boot – 静态启动文件在目录/boot下面包含的文件是用于启动操作系统的文件 。比如GRUB boot loader文件和操作系统内核等 。但是boot loader的配置文件并没有在这里,而是在/etc目录中 。
/cdrom – 光盘安装点目录/cdrom并不是FHS标准的一部分,但是我们在绝大多数发行版中都可以看到 。该目录是光盘的临时挂载点 。
/dev – 设备文件在Linux下面,设备也是一个文件,比如磁盘、优盘或者光盘等 。包括无线网卡、摄像头和串口等都是一个文件 。而通常这些文件都是在/dev目录下面,大家可以切换到该目录下看看具体的内容 。
一篇文章讲清Linux操作系统的目录结构

文章插图
【一篇文章讲清Linux操作系统的目录结构】图5 设备目录
其中图是/dev目录的一个局部截图 。在该目录下面最常见的可能就是/dev/sda这种文件,该文件表示一个SCSI磁盘 。
处理实体设备外,在该目录下面还有很多伪设备 。比如/dev/random表示一个产生随机数的设备,/dev/loop0则是一个将本地文件映射为磁盘的虚拟设备 。这些伪设备有的时候非常用于,我们经常使用这些设备做一些测试 。
一篇文章讲清Linux操作系统的目录结构

文章插图
图6 GUI目录
/etc – 配置文件操作系统和应用程序的配置文件通常都统一存储在一个目录下面,这个目录就是/etc 。很多配置文件都已文本文件的形式存储在这里 。我们可以通过文本编辑器修改配置项 。比如网络的IP地址、Nginx的配置和系统日志的配置等等都可以在这里找到 。


推荐阅读