• Linux开发——Linux 文件系统简介(四)


    Linux开发


    前言

    操作系统的基本功能之一就是文件管理,而文件的管理是由文件系统来完成的。Linux 支持多种文件系统。

    一、Linux 文件系统简介以及类型

    1.Linux 文件系统简介

    操作系统就是处理各种数据的,这些数据在硬盘上就是二进制,人类肯定不能直接看懂这些二进制数据,要有一个翻译器,将这些二进制的数据还原为人类能看懂的文件形式,这个工作就是由文件系统来完成的,文件系统的目的就是实现数据的查询和存储,由于使用场合、使用环境的不同,Linux 有多种文件系统,不同的文件系统支持不同的体系。文件系统是管理数据
    的,而可以存储数据的物理设备有硬盘、U 盘、SD 卡、NAND FLASH、NOR FLASH、网络存储设备等。不同的存储设备其物理结构不同,不同的物理结构就需要不同的文件系统去管理,比如管理 NAND FLASH 的话使用 YAFFS 文件系统,管理硬盘、SD 卡的话就是 ext 文件系统等等。

    我们在使用 Windows 的时候新买一个硬盘回来一般肯定是将这个硬盘分为好几个盘,比如C 盘、D 盘等等。这个叫磁盘的分割,Linux 下也支持磁盘分割,Linux 下常用的磁盘分割工具为:fdisk
    在 Windows 下有磁盘分区的概念,比如 C,D,E 盘等,在 Linux 下没有这个概念,因此Linux 下你找不到像 C、D、E 盘这样的东西。前面我们说了 Linux 下可以给磁盘分割,但是没有 C、D、E 盘那怎么访问这些分区呢?在 Linux 下创建一个分区并且格式化好以后我们要将其“挂载”到一个目录下才能访问这个分区。Windows 的文件系统挂载过程是其内部完成的,用户是看不到的,Linux 下我们使用 mount 命令来挂载磁盘。挂载磁盘的时候是需要确定挂载点的,也就是你的这个磁盘要挂载到哪个目录下。

    2.Linux 文件系统类型

    Linux 下的文件系统主要有 ext2、ext3、ext4 等文件系统
    ext4 文件系统:
    ext4 文件系统是在 ext3 上发展起来的,ext4 相比与 ext3 提供了更佳的性能和可靠性,并且功能更丰富,ext4 向下兼容 ext3 和 ext2,因此可以将 ext2 和 ext3 挂载为 ext4。

    df -T –h  #查询当前磁盘挂载的文件系统
    
    • 1

    在这里插入图片描述
    框起来的就是我们安装 Ubuntu 的这个磁盘,在 Linux 下一切皆为文件,“/dev/sda1”就是我们的磁盘分区,可以看出这个磁盘分区类型是 ext4,它的挂载点是“/”,也就是根目录。

    二、Linux 文件系统结构

    Windows 下的 C 盘根目录就是“C:”,在 Linux 下的根目录就是“/”,你没有看错,Linux 根目录就是用“/”来表示的
    在这里插入图片描述
    Ubuntu 会给每个用户创建一个根目录,那这些用户的根目录在哪里?是不是和根目录“/”是一个地位的?其实所谓的给每个用户创建一个根目录只是方便说而已,这个所谓的用户根目录其实就是“/”下的一个文件夹,以我的“zuozhongkai”这个用户为例,其用户根目录就是:/home/zuozhongkai。只要你创建了一个用户,那么系统就会在/home 这个目录下创建一个以这个用户名命名的文件夹,这个文件夹就是这个用户的根目录。

    用户可以对自己的用户根目录下的文件进行随意的读写操作,但是如果要修改根目录“/”下的文件就会提示没有权限。打开终端以后默认进入的是当前用户根目录,比如我们打开终端以后输入“ls”命令查看当前目录下有什么文件
    在这里插入图片描述

    cd / //进入到根目录“/
    ls //查看根目录“/”下的文件以及文件夹
    
    • 1
    • 2

    在这里插入图片描述
    当我们进入到根目录“/”里面以后终端提示符“ ”前面的符号“ ”变成了“ / ”,这是因为当我们在终端中切换了目录以后“ ”前面的符号“~”变成了“/”,这是因为当我们在终端中切换了目录以后“ 前面的符号 变成了“/”,这是因为当我们在终端中切换了目录以后”前面就会显示切换以后的目录路径。我们来看一下根目录“/”中的一些重要的文件夹:
    /bin 存储一些二进制可执行命令文件,/usr/bin 也存放了一些基于用户的命令文件。
    /sbin 存储了很多系统命令,/usr/sbin 也存储了许多系统命令。
    /root 超级用户 root 的根目录文件。
    /home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
    /boot 存放 Ubuntu 系统内核和系统启动文件。
    /mnt 通常包括系统引导后被挂载的文件系统的挂载点。
    /dev 存放设备文件,我们后面学习 Linux 驱动主要是跟这个文件夹打交道的。
    /etc 保存系统管理所需的配置文件和目录。
    /lib 保存系统程序运行所需的库文件,/usr/lib 下存放了一些用于普通用户的库文件。
    /lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
    /var 存储一些不断变化的文件,比如日志文件
    /usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
    /media 存放 Ubuntu 系统自动挂载的设备文件。
    /proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
    /tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
    /opt 可选文件和程序的存放目录。
    /sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

  • 相关阅读:
    Leetcode—104.二叉树的最大深度【简单】
    演进式架构从不缺设计方法,最大的阻力在于「人」
    本周大新闻|传苹果MR明年Q1量产,五部委发布VR行业应用行动计划
    代码随想录训练营第28天|LeetCode 93.复原IP地址、78.子集、 90.子集II
    利用反射动态构造wrapper条件( 利用反射获取注解值以及实体类值)
    准入控制器(Admission Controller):ResourceQuota,ImagePolicyWebhook
    SQL审核工具自荐Owls
    Kettle连接Oracle(Oracle19c&Oracle11g)
    【网络安全篇】PHP文件与目录操作(一文带你手撕迷茫)
    【EI会议征稿】第三届智慧交通、能源与动力国际学术会议(STEP 2023)
  • 原文地址:https://blog.csdn.net/qq_51963216/article/details/126123367