关注公众号 “融码一生”,领取全套 PDF / 电子书
1、文件系统的层次结构
- windows 平台下打开“计算机”看到的是一个个的驱动器盘符:
- 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形:
- Linux 下看不到这些驱动器盘符,看到的是文件夹(目录):
- Linux 操作系统没有盘符这个概念,所有的文件和目录都被组织成以一个根节点
/
开始的倒置的树状结构:
- 目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是子目录;文件中存储的是真正的信息。
- 文件系统的最顶层由根目录(用
/
表示)开始,根目录下既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。 - 使用这种树状、具有层次的文件结构主要目的是方便文件系统的管理和维护;如果所有文件都放在一个目录下,其文件系统的管理和维护将变成一场噩梦。
- 现实中也有许多类似例子,例如在整个行政管理体制中,村民就相当于文件,他们住在一个村庄中,村庄就是存储村民的目录。许多村又组成了个乡,这个乡就相当于存储村的目录,依此类推,最终就构建出了一个庞大的行政区域管理结构图。
- 注意:目录名或文件名均区分大小写,如 dog、DOG 和 Dog 为 3 个不同的目录或文件。完整的目录或文件路径是由一连串的目录名所组成的,其中每一个目录由
/
来分隔。如 cat 的完整路径是/home/cat
- 在文件系统中,有两个特殊的目录:
-
- 用户所在的工作目录,即当前目录(用一个点
.
表示) - 当前目录的上一层目录,也叫父目录(用两个点
..
表示)
- 用户所在的工作目录,即当前目录(用一个点
- 如果一个目录/文件名是以一个点开始,就表示这个目录/文件是一个隐藏目录/文件。即以默认方式査找时,不显示该目录或文件。
- 为了方便管理和维护,Linux 系统采用了文件系统层次标准(FHS 标准),它规定根目录下各个目录应该存在哪些类型的文件(或子目录),比如在
/bin
和/sbin
目录中存放的应该是可执行文件。
2、文件目录结构一览表
- 通过命令行输入
ls -l /
可以看到 Linux 根目录(/
)下包含很多的子目录(称为一级目录),如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如/bin/bash
、/bin/ed
等。Linux 文件系统目录总体呈现树形结构,/
根目录就相当于树根。 - Linux 系统免费开源,发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
- FHS(Filesystem Hierarchy Standard,文件系统层次化标准)规定了 Linux 系统中所有一级目录以及部分二级目录(
/usr
和/var
)的用途。发布此标准的主要是为了让用户清楚地了解每个目录应该存放什么类型的文件。
(1)根目录(/
)
- FHS 认为 Linux 系统的根目录(
/
)最为重要(没有之一),因为:
-
- 所有目录都是由根目录衍生出来的
- 根目录与系统的开机、修复、还原密切相关
- 一般根目录下只存放目录,Linux 下有且只有一个根目录。所有东西都是从这里开始
- 当在终端里输入
/home
,其实是在告诉电脑,先从/
(根目录)开始,再进入到home
目录。 - 根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件:
一级目录 |
功能(作用) |
/bin/ |
|
/boot/ |
|
/dev/ |
|
/etc/ |
|
/home/ |
|
/lib/ |
|
/media/ |
|
/mnt/ |
|
/misc/ |
|
/opt/ |
|
/root/ |
|
/sbin/ |
|
/srv/ |
|
/tmp/ |
|
- 除此之外,Linux 系统根目录下通常还包含几个一级目录
一级目录 |
功能(作用) |
/lost+found/ |
|
/proc/ |
|
/sys/ |
|
(2)/usr 目录
- usr(Unix Software Resource,注意不是 user)目录用于存储系统软件资源。FHS 建议所有开发者应把软件产品的数据合理的放置在
/usr
目录下的各子目录中,而不是为他们的产品创建单独的目录。 - Linux 系统中所有系统默认的软件都存储在
/usr
目录下,类似 Windows 系统中C:\Windows\
和C:\Program files\
两个目录的综合体。 - FHS 建议
/usr
目录应具备的子目录:
子目录 |
功能(作用) |
/usr/bin/ |
|
/usr/sbin/ |
|
/usr/lib/ |
|
/usr/XllR6/ |
|
/usr/local/ |
|
/usr/local/lib |
|
/usr/local/sbin |
|
/usr/share/ |
|
/usr/share/doc |
|
/usr/share/man |
|
/usr/src/ |
|
/usr/include |
|
(3)/var 目录
/var
目录用于存储动态数据,如缓存、日志文件、软件运行过程中产生的文件等(放置系统执行过程中经常变化的文件)。此目录下建议包含的子目录:
/var 子目录 |
功能(作用) |
/var/lib/ |
|
/var/log/ |
|
/var/run/ |
|
/var/spool/ |
|
/var/www/ |
|
/var/nis /var/yp |
|
/var/tmp |
|
- 如果要做一些实验和练习,需要创建一些临时文件,应保存在用户的主目录或
/tmp/
临时目录。但有些目录中不能直接修改和保存数据(如/proc/fn/sys/
目录),因为它们是保存在内存中的,如果在这里写入数据,则你的内存会越来越小,直至死机;/boot/
目录也不能保存额外数据,因为/boot/
目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。 - 总之,Linux 要在合理的目录下进行操作和修改。
(4)相对路径和绝对路径
- 绝对路径
-
- 从
/
目录开始描述的路径为绝对路径;例如,使用绝对路径的表示方式指明bin
文件所在的位置应写为/usr/bin
- 绝对路径是相对于根路径
/
的,只要文件不移动位置,则它的绝对路径不变
- 从
- 相对路径
-
- 每个目录下都有
.
和..
- 每个目录下都有
-
-
.
表示当前目录..
表示上一级目录(父目录)- 根目录下的
.
和..
都表示当前目录
-
-
- 相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。
- 如果以 root 身份登录 Linux 系统,并实现将当前工作目录由
/root
转换为/usr
目录,有以下 2 种方式:
-
- 使用绝对路径
pwd
(显示当前所在的工作路径/root
)cd /usr
pwd
(显示当前所在的工作路径/usr
) - 使用相对路径
pwd
(显示当前所在的工作路径/root
)cd ../usr
(相对 root,usr 位于其父目录/
,因此用到..
)pwd
(显示当前所在的工作路径/usr
)
- 使用绝对路径
2、文件系统到底有什么用处
- 在 Linux下能看到类似
/usr
、/home
的目录,在 Windows 下能看到 C 盘、D 盘等,同时可以很轻松地在这些系统下添加、删除文件,这就是文件系统提供的功能。如果没有文件系统支持,看似很简单的操作将变得异常复杂。 - 使用文件系统是和使用裸设备相对而言的。裸设备是一种没有格式化的磁盘或磁盘分区,也就是让操作系统或程序直接操作磁盘设备。通过文件系统的方式来组织磁盘存储和数据管理的好处:
-
- 数据的读取、管理操作变得简单
-
-
- 文件系统给用户提供了一个简单的操作界面,用户可以通过对文件系统的简单操作实现对磁盘的管理。虽然 Linux 系统下也可以直接使用裸设备,但在读取性能上,裸设备并不比文件系统高出多少,同时管理与维护麻烦,普通用户是无法接受的。
-
-
- 磁盘分区管理灵活
-
-
- 在文件系统下提供了很多的磁盘分区管理工具,如 LVM 等,通过这些工具可以灵活对磁盘分区进行大小的修改,而裸设备下必须预先规划好磁盘空间,可能造成空间的不足或浪费。
-
-
- 支持数据容错机制,数据安全能得到保障
-
-
- 一个好的文件系统提供了对于数据读取和写入的各种容错和保护机制,很好地保障了数据的安全,而裸设备没有这种灵活的管理机制,对于数据安全只能通过手工备份方式来实现。
- 文件系统是操作系统和磁盘之间的一个桥梁,因此对磁盘的任何写操作都要经过文件系统,然后才到磁盘。这可以说是优点,也可以说是个缺点,通过文件系统可以合理简单地组织磁盘数据,但在大量写操作下,文件系统本身也会产生开销,例如对数据的维护、文件系统缓存等,这个桥梁就成了一个障碍。
- 不过,现在很多类型的文件系统都在做写入性能的改进,因而相对于文件系统提供的这些优点,缺点基本可以忽略。
-
今天的文章 2.1.1、文件系统、文件命名规则、文件类型分享到此就结束了,感谢您的阅读。关注公众号 “融码一生”,领取全套 PDF / 电子书
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/82772.html