目录
linux文件系统层次结构(FHS)
介绍
Linux 下文件系统的结构和 Windows 的很不一样。在 Windows 中,分区以盘符的形式来标识(如「C 盘」、「D 盘」),各个分区的分界线是很明确的。在系统所在的分区(一般为 C 盘)中,存储着程序文件 (Program Files
),系统运行需要的文件 (Windows
),用户文件 (Users
) 等。这种组织形式源于 DOS 和早期的 Windows,并一直传承下来。
而 UNIX 系列采用了一种不一样的思路组织文件:整个系统的文件都从 /
(根目录)开始,像一棵树一样,类似于下图。
-
Linux系统中所有的文件储存在文件系统中,它们被组织到一个颠倒的目录树中,成为文件系统结构。这颗树是颠倒的,因为树根在该层次的顶部,树根的下方延伸出目录和子目录的分支。
-
/目录是根目录,位于文件系统层次结构的顶部。/ 字符还用作文件名中的目录分隔符。例如,如果etc是 / 目录中的子目录,我们就把它称为 /etc目录。类似的,如果 /etc 目录包含一个名为issue的文件,我们将该文件指代为 /etc/issue。
-
在描述文件系统目录内容时会遇到的术语:
静态 保持不变的内容,除非以显示方式编辑或重新配置。 动态 通常由活动进程修改或附加的内容。 永久 在重启后依然保留的内容,尤其是配置设置。 运行时 重启期间清除的进程或系统特定内容或属性。
目录结构:
1、/ (根目录)
Linux文件系统的起点,包含整个文件系统的根目录。
2、/bin (binaries)
存放系统的核心命令和可执行文件,如ls、cp、cat等。
3、/boot
包含启动Linux系统所需的文件,如内核文件和引导加载程序。
4、/dev(devices)
存储设备文件,用于访问计算机硬件设备,如键盘、鼠标等。
注
:设备文件就是计算机设备抽象成文件的形式,程序和用户可以以读写普通文件的方式向这些文件输入内容,或者从文件中获取内容。系统驱动程序会相应处理用户对对应设备文件的输入和输出。
/dev/null
:总是返回空(EOF)数据。/dev/zero
:总是返回零数据。/dev/urandom
:输出随机数据。
5、/etc(etcetera)
存放系统和程序的配置文件,如网络设置、用户账户等。
6、/home
用户的家目录,存储用户自己的信息,每个用户都有一个对应的子目录。
7、/lib(libraries)
存放系统的共享库文件,这些库文件被程序共享使用。
8、/media
用于自动挂载可移动介质,如CD-ROM、USB设备等。
9、/mnt(mount)
用于临时挂载文件系统和其他临时存储设备。
10、/opt(optional)
用于存放第三方软件包和可选应用。
11、/proc(process)
是一种虚拟文件系统,提供了有关系统和进程的实时信息。
12、/root
root
用户的家目录。
13、/run
系统运行时的数据。在每次启动时,里面的数据都会被删除。
14、/sbin(system binaries)
存储用于系统管理,以及仅允许 root
用户使用的程序。如 fsck
(文件系统修复程序)、reboot
(重启系统)等。
15、/srv(service)
存放特定服务(如FTP服务器)所需的数据文件。
16、/tmp(temporary)
存放临时文件,系统重启后会自动清除。所有用户都可使用。
17、/usr(Unix System Resources)
存放系统用户和应用程序的非核心文件。
-
/usr/bin: 存放用户级可执行文件。
-
/usr/include: 存放头文件,用于编译和开发。
-
/usr/lib: 存放非系统核心库文件。
-
/usr/share: 存储程序的数据文件(如
man
文档、GUI 程序使用的图片等)。 -
/usr/local: 用于存放本地安装的软件和用户自定义的程序。
18、/var(variable)
存放系统和程序运行时产生的变化数据文件。
- /var/log: 存储程序的日志文件。
- /var/spool: 存放应用程序的数据队列和缓存文件。
- /var/www: 存放Web服务器的文件。
- /var/lib:存储程序自身的状态信息(如 lock file)。
- /var/run:存储程序运行时的数据(部分发行版会将该目录符号链接到
/run
目录)。
这些目录按照功能和用途来组织文件和目录,使系统维护和管理更加方便和规范。这个文件系统层次结构是Linux系统的标准化实现,在不同的Linux发行版中基本保持一致。