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

【Linux系统】文件系统

Windows 和 Linux 的文件系统:
  • windows:NTFS —> NTFS:磁盘大于目录:目录是磁盘的一部分。
  • ubuntu :EXT4 —> EXT4: 目录大于磁盘:磁盘是目录的一部分。
    请添加图片描述
    请添加图片描述
Windows文件系统的特点
  1. 基于分区的文件系统
    • Windows系统将硬盘划分为多个独立的分区(通常以C盘、D盘、E盘等表示)。
    • 每个分区独立存在,拥有自己的文件系统,分区之间互不影响,除非硬盘本身发生物理损坏。
  2. 文件系统类型
    • FAT32:一种较老的文件系统,支持较小的分区和文件。
    • NTFS:Windows系统的主要文件系统,支持更大的分区和文件大小,同时提供更好的安全性和性能。
    • exFAT:专为闪存驱动器设计,兼容性较强,支持较大的文件。
  3. 目录结构
    • 根目录为每个分区的起点,例如C:\D:\
    • 每个分区独立,有自己的目录树,分区之间没有统一的根目录。
  4. 文件路径:
    • 使用反斜杠(\)作为路径分隔符。
    • 文件路径格式:C:\folder\subfolder\file.txt
  5. 系统文件和用户文件分离:
    • 系统文件通常存储在 C:\Windows 目录中。
    • 用户文件存储在 C:\Users\用户名 下,以便于系统和用户数据管理的分离。
  6. 驱动器隔离:
    • 磁盘的每个分区都是独立的逻辑驱动器,例如C盘的损坏不会直接影响D盘。
Linux文件系统的特点
  1. 统一目录结构
    • Linux采用统一的目录结构,所有文件和目录都挂载到一个单一的根目录(/)下。
    • 即使有多个分区或设备,也会挂载到某个目录,例如/home/mnt,用户不会直接感知分区的存在。
  2. 文件系统类型
    • ext4:Linux系统常用的文件系统,支持大文件和分区,稳定且性能优良。
    • ext3:较旧的文件系统,支持日志功能。
    • XFS:高性能文件系统,适合大规模存储。
    • Btrfs:下一代文件系统,支持快照和压缩。
  3. 目录结构
    • 根目录(/)是文件系统的最高级目录,所有其他目录和文件都从根目录派生。
    • 常见目录:
      • /etc:存储配置文件。
      • /bin:存储用户二进制可执行文件。
      • /sbin:存储系统管理员使用的二进制文件。
      • /home:存储用户的个人文件,每个用户对应一个子目录。
      • /mnt:用于临时挂载设备或分区。
  4. 文件路径
    • 使用正斜杠(/)作为路径分隔符。
    • 文件路径格式:/home/user/file.txt
  5. 挂载点
    • Linux使用挂载点(Mount Point)将设备或分区融入统一的目录结构。例如:
      • /home 可能是一个分区。
      • /mnt/usb 可能是一个USB设备。
    • 挂载点可以动态调整,设备的文件系统可以挂载到任意目录。
  6. 权限管理
    Linux文件系统具有严格的权限管理机制,每个文件或目录都拥有所有者(Owner)所属组(Group)和其他用户(Others) 的权限。
    权限分为读(r)、写(w)、执行(x)
    请添加图片描述
#关于ls -l 获取出来的 信息
drwxrwxr-x 12 farsight farsight 4096 58 09:10 2404-rwxrwxr-x      1        farsight    farsight    8432    511 10:33      a.out
文件类型与权限  硬链接数     文件拥有者   文件所属组   文件大小   文件最后修改时间     文件名

重点: 讲解一下文件类型与权限:
文件类型与权限由 10个字符构成10=1+3+3+3 —> 1 代表:文件类型 ;3 代表:文件拥有者权限;3:文件所属组权限;3:其他用户权限。

  • 文件类型:(1)(共7种类型)
    • - 普通文件(文本文件,C程序,可执行文件 )
    • d 目录
    • b 块设备文件
    • c 字符设备文件
    • l 软链接文件
    • p 管道文件 —> 多进程线程
    • s 套接字文件 —> 网络编程
  • 文件权限:(3 + 3 + 3)
    • rwx rwx r-x
    • 文件拥有者 | 文件所属组 | 其他用户
    • r:读取权限
    • w:写入权限
    • x:执行权限

rwx:可读可写可执行。
r-x:可读可执行,但不能写入。
对于权限修改:在Linux中,以用户的角度看,权限以八进制表示;
但是,以系统的角度看,权限以二进制表示。

	文件拥有者权限 | 文件所属组权限 | 其他用户权限rwx   rwx   r-x 
八进制:   0     7     7     5
二进制:        111   111   101# 对于系统底层来说,任何东西都是由 bit位决定的,权限也一样 
# 系统底层中,会把文件信息划分为:32位
# 32位:前16 和  后16 
# 前16位:高位地址 (废物位)
# 后16位:低位地址 (信息位)  信息优先保存在低位地址(此处参考大小端序,数据优先从低位地址上开始存储)

这里的文件类型与权限:-rwxrwxr-x —> 1+3+3+3 —> - + rwx(可读可写可执行)+

rwx(可读可写可执行)+ r-x(可读可执行,但不能写入)在计算机底层中的存储方式是:
Linux文件类型与权限的记录方式

# 修改文件权限: 
chmod 权限 文件名 # 例如: 
chmod 0777 hello.c

Linux系统修改文件权限 - 前
Linux系统修改文件权限 - 后


Windows与Linux文件系统的对比
特性Windows文件系统Linux文件系统
目录结构基于分区(C:\、D:\)的独立结构统一的目录结构,以/为根
文件路径分隔符反斜杠(\)正斜杠(/)
文件系统类型FAT32、NTFS、exFAText4、ext3、XFS、Btrfs等
分区管理每个分区独立存在,互不影响所有分区挂载到统一目录结构下
权限管理依赖NTFS提供的权限管理具有严格的用户、组、权限管理机制
系统文件与用户文件系统文件与用户文件分区明确,如C:\Windows和C:\Users用户文件存储在/home目录,系统文件分布在其他目录
挂载机制无挂载机制,分区直接以驱动器形式显示通过挂载点将分区或设备挂载到目录树

综上。
Windows系统

  • 文件系统基于分区,分区之间独立。
  • 适合普通用户,操作简单,目录结构清晰。
  • NTFS文件系统提供较好的性能和安全性。

Linux系统

  • 文件系统统一挂载到根目录,具有更高的灵活性。
  • 支持多种文件系统类型,适合复杂的服务器和开发环境。
  • 严格的权限管理和挂载机制使其在安全性和稳定性方面表现优异。

两种文件系统各有优劣,Windows适合普通用户和桌面环境,而 Linux 更适合开发、服务器和高性能需求的场景。因此,作为一个嵌入式开发人员我们必须掌握文件的字符界面的操作方式。

以上。仅供学习与分享交流,请勿用于商业用途!转载需提前说明。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!

http://www.lryc.cn/news/502552.html

相关文章:

  • javaweb的基础
  • 家里养几条金鱼比较好?
  • 写作词汇积累:差池、一体两面、切实可行极简理解
  • 移远EC200A-CN的OPENCPU使用GO开发嵌入式程序TBOX
  • LEED绿色建筑认证最新消息
  • SpringBoot中集成常见邮箱中容易出现的问题
  • webstorm开发uniapp(从安装到项目运行)
  • C# 探险之旅:第七节 - 条件判断(三元判断符):? : 的奇妙冒险
  • FlinkCDC实战:将 MySQL 数据同步至 ES
  • debug小记
  • Qt C++ 显示多级结构体,包括结构体名、变量名和值
  • 【JAVA】旅游行业中大数据的使用
  • 【AI+网络/仿真数据集】1分钟搭建云原生端到端5G网络
  • 微服务-01【续】
  • 测试工程师八股文01|Linux系统操作
  • 【Qt】qt基础
  • UniScene:Video、LiDAR 和Occupancy全面SOTA
  • TensorFlow深度学习实战(1)——神经网络与模型训练过程详解
  • 03篇--二值化与自适应二值化
  • 基于python的一个简单的压力测试(DDoS)脚本
  • 基于 Spring Boot 实现图片的服务器本地存储及前端回显
  • 深入 TCP VJ-Style
  • go高性能单机缓存项目
  • 数据结构绪论
  • 前端开发常用四大框架学习难度咋样?
  • OWASP 十大安全漏洞的原理
  • 论文 | ChunkRAG: Novel LLM-Chunk Filtering Method for RAG Systems
  • ORACLE SQL思路: 多行数据有相同字段就合并成一条数据 分页展示
  • SpringBoot 手动实现动态切换数据源 DynamicSource (中)
  • y3编辑器教学5:触发器2 案例演示