本文最后更新于 2024-08-31,文章内容可能已经过时。

一、FHS介绍

Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

二、linux目录结构介绍

整个Linux系统最重要的地方就是在于目录树架构,所谓的目录树架构就是以根目录为主, 然后向下呈现分支状的目录结构的一种档案架构。下图给出了linux的目录结构,那这些目录都有什么作用呢?

1571118994639.png

三、linux目录的作用

  • 根目录(/)

最高一级目录,所有目录都是根目录衍生出来,只有root用户具有写权限,一般根目录下只存放目录,不要存放件

  • /bin目录 – 用户二进制文件

包含二进制的可执行文件,你需要的常见的Linux命令都位于此目录下。

  • /sbin目录 – 系统二进制文件

这个目录下的命令通常由系统管理员使用, 对系统进行维护。

  • /etc– 配置文件

包含所有程序所需要的配置文件,也包含用于启动/停止单个程序的起动和关闭shell脚本。

  • /dev-设备文件

包含设备文件,包括终端设备、USB或连接到系统的任何设备,如网卡等。

  • /proc-进程信息文件

这是一个虚拟的文件系统,包含有关正在运行的进程信息。

  • /usr-用户程序

包含二进制文件、库文件、文档和二级程序的源代码。

/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。
  • /home -HOME目录

包含所有用户的个人档案,Linux是多用户的系统,所以用该目录保存各用户的信息。

  • /boot -引导加载程序

包含引导加载程序相关的文件。

  • /lib -系统库

包含支持位于/lib和/sbin下的二进制文件的库文件。

  • /opt -可选的附加应用程序

给主机额外安装软件所摆放的目录,以前的 Linux 系统中,习惯放置在 /usr/local 目录下

  • /mnt /media -挂载目录

光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。

  • /root 管理员家目录

在这里我们所介绍的目录是在linux系统中常见的目录,不同厂商的linux有所差异,有的版本中会出现有额外作用的目录,这个就需要具体问题具体对待了。

四、目录和设备节点

我们已经知道目录是用来存放文件的,不同的目录存放的文件作用不同,那么我们来看下设备节点是什么? 一个设备节点其实就是一个文件,Linux中称为设备文件。有一点必要说明的是,在Linux中,所有的设备访问都是通过文件的方式,一般的数据文件程序普通文件,设备节点称为设备文件,而这些设备节点,或者说是设备文件都统一存放在/dev目录下,简单来说,设备节点是一种特殊的文件,只不过这个文件存放的不是一般的数据,而是和你计算机中的设备相关联的。

五、.和…

在linux系统中,使用ls -a命令时,你会发现每一个目录下都包含两个目录,这两个目录就是.和…,其中”.“表示是的是当前目录,也就是你使用pwd所查看到的路径,而”…“表示的上一级目录,也就是父目录。

六、绝对路径和相对路径

linux的路径书写方式有两种:

  • 绝对路径:路径的写法一定是由根目录 / 写起的,以根目录为起点;
  • 相对路径:路径的写法不是由根目录 / 写起的,不以根目录为起点。

例如,你知道你的朋友在四楼,而你在五楼,如果你的朋友询问你的位置,你就有两种回答方式:

  • 绝对路径的方式就是你告诉对方你在XX小区的xx号楼的五楼,
  • 相对路径的方式就是你告诉对方你在对方五楼。