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 基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。最大特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。
二、分区与目录
在微软 Windows 操作系统,我们会将硬盘上进行分区,并用 A: 、 B: 、 C: 、 D: 等符号标识(也就是盘符)。在存取文件时一定要清楚存放在哪个磁盘的哪个目录下。
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 | 临时文件目录 |