Ⅰ. FHS
GNU/Linux自诞生以来拥有众多的发行版,著名的Linux发行版情报网站Distrowatch.com上已有数百个不同的发行版,其中包括Archlinux、Debian、Manjaro、Ubuntu、Cent OS等著名发行版。
常见的Linux发行版 图片来源: CodeSheep
这些不同的Linux发行版拥有不同的包管理器以及不同的UI界面,但它们都有相同的目录结构。提到GNU/Linux系统的目录结构,不得不说一下FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),正是这一标准的存在,详细的定义了类Unix操作系统中各种应用软件,管理工具,开发工具,脚本以及帮助文档的位置,让遵循该标准的各种GNU/Linux发行版目录结构几乎都是一致的。
Ubuntu 20.04目录结构
Cent OS 8目录结构
Ⅱ. Linux目录结构
在FHS中,根据文件的共享性和文件是否要求被修改的特点,其将文件划分为可共享文件/不可共享文件以及可变数据文件/静态数据文件两大类。FHS将不同属性的文件划归到不同的目录,以便系统管理。
下面将对Linux主要文件目录进行描述:
-
/:整个文件系统层次的根目录,可以理解为树的根节点。
-
~:打开终端会话/切换用户的起始位置。
-
/bin:存放着整个系统必须的二进制文件或可执行文件,可以通过命令进行运行,包括vim、ls、gzip等。类似的目录有/usr/bin、/usr/local/bin(/usr/local存放手动编译的二进制文件)等。
-
/sbin:存放着只能由root用户运行的系统二进制文件,比如mount。类似的文件目录有/usr/sbin、/usr/local/sbin等。
-
/boot:引导程序文件所在目录,包括Linux内核等。
-
/dev:设备文件目录,比如光驱、硬盘等,访问该目录下某个文件相当于访问某个硬件设备。
-
/etc:系统的配置文件目录,一些软件启动时默认读取配置文件的目录。
-
/home:存放用户文件目录,该目录下不同的账号对应不同的目录。
-
/lib:主要存放动态链接库,/bin与/sbin目录下的二进制文件所依赖的库均存放于此。
-
/lib64:64位系统有/lib64文件夹。
-
/media:可移除媒体(如CD-ROM)的挂载点。
-
/mnt:临时挂载的文件系统,比如CD-ROM、U盘等。
-
/proc:虚拟文件系统,是系统内存的映射,可直接访问该目录来获取系统信息。
-
/opt:可选应用软件包,对系统使用几乎没有任何影响。
-
/root:root用户的主目录。
-
/srv:存放本机或本服务器提供的服务。
-
/sys:存放着与Linux系统相关的文件。
-
/tmp:存放临时文件,系统重启时该目录中文件不会被保留。
-
/usr:默认软件与文件存放于该目录下。
-
/var:存放操作系统运行过程中会发生变化的文件,比如系统日志与缓存文件。