LV02-01-Linux-02-文件系统

本文主要是Linux——文件系统相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows windows11
Ubuntu Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
SecureCRT Version 8.7.2 (x64 build 2214) - 正式版-2020年5月14日
开发板 正点原子 i.MX6ULL Linux阿尔法开发板
uboot NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03)
linux内核 linux-4.15(NXP官方提供)
STM32开发板 正点原子战舰V3(STM32F103ZET6)
点击查看本文参考资料
参考方向 参考原文
------
点击查看相关文件下载
--- ---

文件系统用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。

一、文件系统类型

linux 是一种兼容性很高的系统,支持很多的文件系统格式,大体可有以下几类:

磁盘文件系统指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、FAT、FAT16、FAT32、NTFS等
网络文件系统是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS、Samba等
专有/虚拟文件系统不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)

目前 Ext4 是 Linux 系统广泛使用的一种文件格式。在 Ext3 基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。最大特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。

二、分区与目录

image-20220217160908947

在微软 Windows 操作系统,我们会将硬盘上进行分区,并用 A: 、 B: 、 C: 、 D: 等符号标识(也就是盘符)。在存取文件时一定要清楚存放在哪个磁盘的哪个目录下。

image-20220217161533214

Linux 的文件组织模式犹如一颗倒置的树,所有存储设备作为这颗树的一个子目录。存取文件时只需确定目录就可以了,无需考虑物理存储位置。在 linux 中可以说一切皆文件,并没有盘符这样的概念。

在 Windows 下,目录结构属于分区;在 Linux 下,分区属于目录结构。在 Linux 中,将所有硬件都视为文件来处理,包括硬盘分区、 CD-ROM 、软驱以及其他 USB 移动设备等。为了能够按照统一的方式和方法访问文件资源, Linux 中提供了对每种硬件设备相应的设备文件。一旦 Linux 系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。例如,当我们插入一个 U 盘时, Linux 自动识别后,将其挂载到 /media/disk 目录下。而不像 Windows 系统将 U 盘作为新驱动器,表示为 F: 盘或者其他盘符。

三、基本目录

Linux 是完全开源的软件,各 Linux 发行机构都可以按照自己的需求对文件系统进行裁剪,所以如此众多的 Linux 发行版本的目录结构也不尽相同。为了规范文件目录命名和存放标准,相关组织颁发了文件层次结构标准( FHS,File Hierarchy Standard ), 2004 年发行版本 FHS 2.3 。 Ubuntu Linux 系统同样也遵循这个标准。

点击查看目录名称及其说明
目录名 描述
/ Linux文件系统根目录
/bin 存放系统中最常用的可执行文件(二进制)
/boot 存放Linux内核和系统启动文件,包括Grub、lilo启动器程序
/cdrom 光盘目录,如果插入光盘会出现光盘内容
/dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等
/etc 存放系统的所有配置文件,例如passwd存放用户账户信息,hostname存放主机名等
/home 用户主目录的默认位置
/initrd 存放启动时挂载initrd.img映像文件的目录,以及载入所需设备模块的目录。
/lib 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件
/lost+found 存放由fsck放置的零散文件
/media Ubuntu系统自动挂载CD-ROM、软驱、USB存储器后,存放临时读入的文件
/mnt 该目录通常用于作为被挂载的文件系统的挂载点
/opt 作为可选文件和程序的存放目录,主要被第三方开发者用来简易地安装和卸装他们的软件包
/proc 存放所有标志为文件的进程,它们是通过进程号或其他的系统动态信息进行标识,例如cpuinfo文件存放CPU当前工作状态的数据
/root 根用户(超级用户)的主目录
/run 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果系统上有 /var/run 目录,应该让它指向 run。
/sbin 存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件
/snap snap应用框架的程序文件
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,存放系统硬件信息的相关文件
/tmp 存放用户和程序的临时文件,所有用户对该目录都有读写权限
/usr 用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。
/usr/X11R6: X Window系统。
/usr/bin 用户和管理员的标准命令
/usr/include c/c++等各种开发语言环境的标准include文件
/usr/lib 应用程序及程序包的连接库
/usr/local 系统管理员安装的应用程序目录
/usr/local/share 系统管理员安装的共享文件
/usr/sbin 用户和管理员的标准命令
/usr/share 存放使用手册等共享文件的目录
/usr/share/dict 存放词表的目录
/usr/share/man 系统使用手册
/usr/share/misc 一般数据
/usr/share/sgml SGML数据
/usr/share/xml XML数据
/var 通常用于存放长度可变的文件,例如日志文件和打印机文件。
/var/cache 应用程序缓存目录
/var/crash 系统错误信息
/var/games 游戏数据
/var/lib 各种状态数据
/var/lock 文件锁定纪录
/var/log 日志记录
/var/mail 电子邮件
/var/opt /opt目录的变量数据
/var/run 进程的标示数据
/var/spool 存放电子邮件,打印任务等的队列目录。
/var/tmp 临时文件目录