当前位置: 首页 > news >正文

Linux --- 文件系统

1. 文件系统的概念

      Linux 文件系统是一种用于管理、存储和组织数据的层次结构,用于在 Linux 操作系统中管理磁盘上的数据存储。它定义了如何在存储介质(如硬盘、固态硬盘或 USB 闪存)上组织文件和目录,以及如何读取、写入和操作这些文件。

1.1 主要特点和概念

1. 层次目录结构:Linux 文件系统采用树形目录结构,所有的文件和目录都从根目录(`/`)开始。根目录下可以有多个子目录,每个子目录下又可以包含文件和其他子目录。这种结构使得文件的组织和访问非常清晰。

2. 挂载点:在 Linux 中,文件系统通过挂载点将不同的文件系统(例如不同的磁盘分区、外部存储设备等)集成到单一的目录树下。挂载点是目录,通过它可以访问挂载的文件系统。

3. 文件类型:
   - 常规文件:存储普通数据,如文本文件、二进制文件等。
   - 目录:包含文件和其他目录的特殊文件。
   - 符号链接(软链接):指向其他文件或目录的引用,类似于 Windows 中的快捷方式。
   - 设备文件:代表系统中的硬件设备,通常位于 `/dev` 目录中。
   - 管道和套接字:用于进程间通信的特殊文件。

4. 文件权限和所有权:每个文件和目录都有与之关联的权限和所有权,确定哪些用户和组可以读取、写入或执行文件。

5. 元数据:文件系统不仅存储文件内容,还存储与文件相关的元数据,如文件大小、创建时间、修改时间、权限、所有者等。

6. 日志记录(Journaling):一些高级文件系统(如 ext4、xfs)支持日志记录,以保护数据免受系统崩溃或断电的影响。

1.2 常见的 Linux 文件系统类型

- ext4:第四代扩展文件系统,是目前最常用的 Linux 文件系统,支持大容量存储和高效的日志记录机制。
- XFS:高性能的 64 位日志文件系统,适合大文件和高并发工作负载。
- Btrfs:新一代文件系统,支持高级功能如快照、压缩和多设备管理。
- FAT32/exFAT:适用于与 Windows 兼容的文件系统,通常用于 USB 驱动器和存储卡。

1.3 功能

- 数据存储和检索:文件系统负责在存储设备上保存和检索数据。
- 存储管理:管理存储设备的可用空间,处理磁盘的分配和碎片整理。
- 数据完整性:确保数据在存储过程中不受损坏,一些文件系统支持数据校验和修复功能。
- 权限管理:管理文件和目录的访问权限,确保系统安全性。

      Linux 文件系统是 Linux 操作系统管理和组织数据的核心组件,它为用户提供了一种高效、安全的方式来存储和访问数据。

2. Linux文件系统的作用

 ‌     Linux文件系统的主要作用包括管理文件和目录的存储和访问,实现从文件名到文件存储物理地址的映射,文件存储空间的分配与回收,以及对文件及目录的管理。

Linux文件系统是Linux操作系统中非常核心的组成部分,它负责管理文件和目录的存储和访问。具体来说,Linux文件系统的作用体现在以下几个方面:

  1. 实现按文件名存取文件信息‌,完成从文件名到文件存储物理地址的映射,这是文件系统最基本的功能之一,它使得用户可以通过文件名方便地访问文件,而无需关心文件的物理位置。
  2. 文件存储空间的分配与回收‌,文件系统需要管理磁盘上的存储空间,包括分配新的文件存储空间和回收不再使用的空间。
  3. 对文件及目录的管理‌,包括创建、删除、重命名文件和目录,以及设置文件的权限等。
  4. 提供操作系统与用户的接口‌,文件系统还提供了用户与操作系统交互的接口,使用户能够通过简单的命令或图形界面来管理和操作文件。
  5. 提供安全性、共享机制等文件自身的服务‌,确保文件的安全性和提供文件共享功能,以满足不同的应用需求。

此外,Linux中的根文件系统特别重要,它包含了操作系统中的所有必要文件和目录,是系统启动时加载的第一个文件系统。根文件系统的健康和稳定对于整个系统的运行至关重要。

综上所述,Linux文件系统通过上述功能和服务,为Linux操作系统提供了一个高效、安全、易于管理的文件和目录管理系统,是Linux系统中不可或缺的重要组成部分‌。

GPT给出:

Linux 文件系统的主要作用是管理数据的存储和组织方式。它负责如何在存储设备(如硬盘、SSD)上存储、检索、组织和管理数据。以下是 Linux 文件系统的一些关键作用:

1. **文件组织和管理**:文件系统定义了文件和目录的结构,使得操作系统和用户能够以层次结构(树状结构)来组织和访问文件。

2. **存储分配**:文件系统决定了如何在磁盘上分配和管理存储空间。它将大块的存储设备分割成更小的块(通常称为块或簇),并管理这些块的分配和回收。

3. **文件和目录权限**:文件系统提供了权限管理机制,允许用户和组对文件和目录设置不同的访问权限(如读、写、执行)。

4. **文件系统挂载**:Linux 文件系统支持挂载功能,允许不同的文件系统(如 ext4、xfs、btrfs)或不同的存储设备(如硬盘分区、USB 设备、网络文件系统)在单一的目录结构下无缝集成。

5. **文件命名和访问**:文件系统管理文件的命名规则和访问方式,确保文件可以通过路径或文件名被唯一标识和访问。

6. **元数据管理**:文件系统管理与文件相关的元数据,例如文件的大小、创建时间、修改时间、权限等。这些元数据帮助操作系统快速检索和管理文件。

7. **容错和数据完整性**:一些文件系统提供了数据完整性检查、错误检测和修复机制,以保证文件存储的可靠性。

8. **日志记录**:某些文件系统(如 ext4、xfs)支持日志记录(journaling),以在系统崩溃或突然断电时,保护文件系统的完整性。

这些功能使 Linux 能够有效地管理数据存储,确保文件的安全、可靠和高效访问。

3. linux 常见文件系统类型

      在 linux 系统中常见的文件系统类型分别为 ext3、ext4、proc 文件系统和 sysfs 文件系统。 ext3 文件系统是从 ext2 发展过来的,而且完全兼容 ext2 文件系统,并且比 ext2 要小, 要可靠。        ext4 文件系统是在 ext3 的基础上改进的,并且 ext4 文件系统在性能和可靠性上都要比 3 的表现更好,而且功能也非常的丰富,并且 ext4 完全兼容 ext3 ,ext3 只支持 32000 个子目 录,但是 ext4 支持无限数量的子目录,所以比 3 更优秀。
      Proc 文件系统,这个文件系统是 linux 系统中特殊的文件系统,实际上只存在于内存中, 是一个伪文件系统,该文件系统是内核和内核模块用来向进程发送消息的机制。

4. ubuntu文件系统类型

4.1 df -T 命令的使用

可以使用“df -T ”命令来打印文件系统的类型。
Filesystem 显示该文件系统的分区,会将所有的设备名称进行打印,如下图所示 :

 /dev/sda5 是 ubuntu 的主分区,Type 是文件系统的类型。所以 ubuntu 的主分区的文件类型就是 ext4。
ext4 上边的 tmpfs 是虚拟内存文件系统。
617629888 这串数字代表的是内存的总和,1k 代表单位。 ext4 和 ext3 它是日志型的文件系统,要比传统型的文件系统安全,因为它可以用独立内容的日志来跟踪磁盘内容的变化,Used 是已经使用的空间大小,Available 这一列是剩余空间大小,Use% 是磁盘使用率。最后一个 Mounted on 是磁盘挂载的目录,这里 /dev/sda5 就挂载到了 / 目录上面。

4.2 df -Th 命令的使用

然后使用命令“df -Th”重新打印文件系统类型信息 ,以更容易读的方式进行显示,如下图所示: 

 第三列就变成了 Size ,将 kb 单位转换成了 G, 这样看起来就更加容易理解了。

4.3 df -h 命令的使用

      如果不想看文件系统的内容,就可以不加 T 参数,直接输入“df -h”命令,这样就能看到 一个磁盘的使用状况。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 后来你发现 根密钥 的存储并不安全,于是你认识了PUF。
  • 怎么解决小程序的异步请求问题
  • WordPress简约响应式个人博客Kratos主题
  • Redis中事务与乐观锁
  • 继承与构造函数与析构函数
  • 基于Java+SpringBoot+Vue的师生共评的作业管理系统设计与实现
  • 白酒与旅行日记:探索世界,品味美酒
  • 河南萌新2024第六场
  • 【STM32】定时器
  • 谷歌云AI新作:CROME,跨模态适配器高效多模态大语言模型
  • Python算法工程师面试整理-线性代数
  • 动态规划:从记忆化搜索到递推 打家劫舍
  • Java接口interface(内含练习)
  • 树莓派开发笔记13-树莓派环境下的CSI摄像头实验
  • centos 虚拟机器刚刚安装没有ip地址的问题
  • 【css3】浏览器内核及其兼容性
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CEF与代理
  • C学习-枚举(九)
  • javascript 哈希表
  • Laravel 实践之路: 数据库迁移与数据填充
  • learning koa2.x
  • nginx 配置多 域名 + 多 https
  • PHP面试之三:MySQL数据库
  • Promise面试题2实现异步串行执行
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Spring核心 Bean的高级装配
  • Vue.js源码(2):初探List Rendering
  • WebSocket使用
  • 成为一名优秀的Developer的书单
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 06-01 点餐小程序前台界面搭建
  • Java数据解析之JSON
  • MPAndroidChart 教程:Y轴 YAxis
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • scrapy中间件源码分析及常用中间件大全
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • zabbix3.2监控linux磁盘IO
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​linux启动进程的方式
  • ‌JavaScript 数据类型转换
  • #include
  • (007)XHTML文档之标题——h1~h6
  • (02)vite环境变量配置
  • (16)Reactor的测试——响应式Spring的道法术器
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (javascript)再说document.body.scrollTop的使用问题
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (一)Neo4j下载安装以及初次使用
  • .Net 8.0 新的变化
  • .net 简单实现MD5
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • @RestControllerAdvice异常统一处理类失效原因