Linux基础part-8

1、计算机硬盘类型和对应接口

1. Linux硬盘接口

    1. 硬盘接口类型直接影响到存储设备的性能、兼容性和可靠性。
    2. Linux硬盘接口是用来连接硬盘驱动器(包括传统机械硬盘和固态硬盘)到计算机系统的接口,它们允许数据在硬盘和计算机之间进行传输和交换。硬盘接口充当硬盘驱动器和计算机主板之间的桥梁,使得硬盘可以被计算机系统识别、访问和操作。
    3. 通过硬盘接口,计算机系统可以执行以下操作:
      • 存储数据:硬盘接口允许计算机系统将数据写入硬盘驱动器或从硬盘驱动器读取数据,实现数据的长期存储和检索。
      • 安装操作系统:计算机的操作系统通常安装在硬盘驱动器上,硬盘接口允许操作系统被安装到硬盘上,并在启动时从硬盘加载。
      • 运行应用程序:计算机系统可以从硬盘加载和运行应用程序,包括操作系统本身、办公软件、游戏和其他应用程序。
      • 数据备份和恢复:硬盘接口使得用户可以将重要数据备份到硬盘驱动器中,并在需要时从备份中恢复数据。

2. Linux硬盘接口类型

    1. IDE(Integrated Drive Electronics):
      • 速率: 133Mb/s(理论上最高),但实际速率可能较低。
      • 特点: IDE接口是一种并行接口,早期用于连接家用电脑中的硬盘和光驱设备。它使用了40或80根导线来传输数据,因此也称为并口接口。
      • 适用范围: IDE接口逐渐被SATA接口所取代,现在已经较少见于新的计算机系统中。
    1. SATA(Serial ATA):
      • 速率: SATA接口的速率通常为6Gbps(理论上最高),但实际速率可能受到设备和电缆质量等因素的影响。
      • 特点: SATA接口是IDE的升级版,采用串行传输方式,相比于IDE接口有更高的数据传输速率和更简单的连接方式。
      • 适用范围: SATA接口是目前大多数个人计算机和服务器中使用的主要硬盘接口类型。
    1. SCSI(Small Computer System Interface):
      • 速率: SCSI接口的速率可以达到640MB/s,但实际速率通常较低。
      • 特点: SCSI接口是一种并行接口,早期用于连接服务器和高性能计算机中的硬盘和外部设备。
      • 适用范围: SCSI接口通常用于需要高性能和高可靠性的存储系统中。
    1. SAS(Serial Attached SCSI):
      • 速率: SAS接口的速率通常为6Gbps(理论上最高),但实际速率可能受到设备和电缆质量等因素的影响。
      • 特点: SAS接口是一种串行连接的SCSI接口,具有更高的传输速率和更可靠的连接,适用于企业级服务器和存储系统。
      • 适用范围: SAS接口通常用于需要高性能和高可靠性的企业级存储系统中。
    1. USB(Universal Serial Bus):
      • 速率: USB接口的速率通常为480Mbps,但USB 3.0及更高版本的速率可以达到5Gbps或更高。
      • 特点: USB接口是一种通用的串行接口,用于连接各种外部设备,包括硬盘、键盘、鼠标等。
      • 适用范围: USB接口广泛应用于个人计算机、外部存储设备和其他便携设备中。
    1. NVMe(Non-Volatile Memory Express):
      • 速率: NVMe接口的速率可以达到几千MB/s,是目前最快的存储接口之一。
      • 特点: NVMe是一种基于PCI Express总线的高性能存储接口协议,用于连接固态硬盘(SSD)。
      • 适用范围: NVMe接口适用于需要高性能存储解决方案的服务器、工作站和个人电脑。

3. 什么是硬盘

    1. 硬盘(Hard Disk Drive,HDD)是一种用于计算机存储数据的设备,它使用磁性盘片来存储数据,并通过机械臂和磁头来读写数据。硬盘通常被安装在计算机的内部,用于存储操作系统、应用程序、用户数据等文件。
    2. 硬盘的主要优点包括容量大、价格相对较低、稳定性高以及长期数据保存的可靠性
    3. 硬盘内部有机械运动部件,因此读写速度相对较慢,且对于移动设备而言存在机械损耗和震动敏感等缺点。
    4. 随着技术的发展,固态硬盘(SSD)作为一种替代方案逐渐流行起来,它使用闪存芯片而不是机械部件来存储数据,具有更快的读写速度、更低的能耗和更好的耐用性,逐渐取代传统硬盘在某些领域的应用。

4. 硬盘分类

    1. 按照接口类型分类
      • SATA(Serial ATA):是目前最常见的硬盘接口类型,提供了高速数据传输和热插拔功能。
      • SAS(Serial Attached SCSI):主要用于企业级服务器和存储系统,具有更高的性能和可靠性。
      • IDE/ATA:是早期的硬盘接口类型,现在已经逐渐被SATA所取代。
    1. 按照介质类型分类
      • 机械硬盘(HDD):使用磁性盘片来存储数据,通过机械臂读写数据,速度相对较慢但容量较大。
      • 固态硬盘(SSD):使用闪存芯片来存储数据,无机械运动部件,读写速度快,耐用性高,但价格较高。
    1. 按照尺寸分类
      • 3.5英寸硬盘:主要用于台式机。
      • 2.5英寸硬盘:主要用于笔记本电脑和一些便携式设备。
      • 1.8英寸硬盘:用于一些特殊的小型设备,如超薄笔记本电脑和平板电脑。
    1. 按照接口速度分类
      • 传统硬盘:速度通常在几百MB/s左右。
      • NVMe硬盘:基于PCIe总线的高速存储设备,速度可以达到几千MB/s甚至更高。
    1. 按照用途分类
      • 普通硬盘:用于存储普通数据,如文件、应用程序等。
      • 专用硬盘:如企业级硬盘、视频监控硬盘等,针对特定应用场景进行优化。

5. 机械硬盘结构

    1. 机械硬盘的结构由磁盘片、磁头、移动臂、主轴电机、控制电路板等组成。在硬盘的读写过程中,这些组件相互协作,以实现数据的存储和访问。
      • 机械硬盘通过磁头在盘片表面上的读写操作来实现数据的存储和访问。
      • 当计算机需要读取或写入数据时,磁头会被定位到相应的柱面、磁道和扇区上,并进行读取或写入操作。
      • 硬盘的结构和工作原理决定了其在存储和访问数据方面的性能和稳定性。
    1. 磁道(Track)
      • 磁道是盘片表面上一个圆形的磁性轨道,数据被存储在磁道上。
      • 硬盘的每个盘面都包含多个磁道,每个磁道都被划分为多个扇区。
      • 磁道的编号通常从外向内递增,编号越小的磁道位于盘片的外圈,编号越大的磁道位于盘片的内圈。
    1. 扇区(Sector)
      • 扇区是硬盘上存储数据的最小单位,通常为 512 字节。
      • 数据的读写操作是以扇区为单位进行的,磁头在寻道后,将数据写入或读取特定的扇区。
    1. 磁头(Head)
      • 磁头是负责读取和写入数据的装置,它位于移动臂的末端。
      • 每个盘面都有一个或多个磁头,用于在盘片表面上读取或写入数据。
    1. 柱面(Cylinder)
      • 不同盘面上同一编号的磁道组成一个柱面,柱面是硬盘进行数据寻址的基本单位。
      • 硬盘的分区和数据存储都是基于柱面进行的。
    1. 平均寻道时间
      • 硬盘的平均寻道时间是指磁头从一个磁道移动到另一个磁道所需的时间。
      • 它受到硬盘转速的影响,常见的硬盘转速包括 5400 RPM、7200 RPM、10000 RPM、15000 RPM 等。
      • 转速越高,平均寻道时间越短,硬盘的读写速度也越快。

6. 分区的概念

    1. 分区是将硬盘按照一定的规则划分为多个逻辑部分的过程,每个分区相当于硬盘的一个独立区域,可以单独使用,并且各个分区之间彼此独立、互不影响。
      • 分区的存在使得硬盘的数据存储和管理变得更加灵活和有序,有助于更有效地组织数据、提高存储效率和管理便利性。
    1. 分区的重要概念和特点
      • 逻辑划分:分区是对硬盘进行逻辑划分的过程,将硬盘划分为多个不同大小和用途的区域,每个区域称为一个分区。通过分区,可以根据实际需求将硬盘空间划分为多个逻辑单元,方便管理和使用。
      • 独立性:每个分区是相互独立的,一个分区的数据不会影响其他分区,即使一个分区发生故障或损坏,也不会对其他分区造成影响。这种独立性有助于提高数据的安全性和稳定性。
      • 性能优化:硬盘的性能通常会受到物理结构的影响,例如越靠近较外部的磁道的分区性能越好,因为外部磁道的线性速度更快。因此,合理划分分区可以优化硬盘的性能,提高数据的读写速度。
      • 数据组织:分区可以根据不同的需求和用途进行划分,例如将操作系统安装在一个分区,将用户数据存储在另一个分区,这样有助于更好地组织和管理数据,提高数据访问的效率和安全性。
      • 文件系统支持:每个分区通常都会格式化为特定的文件系统,例如EXT4、NTFS等,不同的文件系统具有不同的特性和功能,可以根据实际需求选择合适的文件系统来格式化分区。

7. 设备文件对应的设备号

    1. Linux系统中,设备文件是用来表示硬件设备的特殊文件,它们位于/dev目录下,并通过文件名来标识不同的硬件设备。
      • 设备文件的命名遵循一定的规则(ICANN组织同一命名),不同类型的设备有不同的命名方式,同时每个设备文件还会关联一个唯一的设备号
    1. 常见设备文件对应的设备号和命名规则:
      1. IDE硬盘
        • IDE硬盘的设备文件名以hd开头,后跟一个字母,代表IDE硬盘的序号。
        • 例如,hda表示第一块IDE硬盘,hdb表示第二块IDE硬盘,依此类推。
      1. SCSI和SATA硬盘
        • SCSI和SATA硬盘的设备文件名以sd开头,后跟一个字母,代表SCSI或SATA硬盘的序号。
        • 例如,sda表示第一块SCSI或SATA硬盘,sdb表示第二块硬盘,依此类推。
        • 每个硬盘还可以有多个分区,分区的命名规则为在设备文件名后加上数字,例如sda1sda2表示第一块硬盘的第一个和第二个分区。
      1. NVMe硬盘
        • NVMe硬盘的设备文件名通常以/dev/nvme开头,后跟一个数字和字母的组合,表示不同的NVMe硬盘。
        • 例如,/dev/nvme0n1表示第一块NVMe硬盘。
      1. 虚拟硬盘
        • 虚拟硬盘的设备文件名可能会有所不同,但通常以/dev/vd/dev/xvd开头,后跟一个字母或数字,表示不同的虚拟硬盘。
      1. 注意:
        • 在CentOS 6及之后的版本中,SCSI、SATA、SAS硬盘以及USB设备通常都以sd[a-z]的设备文件来表示。
        • 这种统一的命名方式简化了设备管理和识别,使得管理员可以更轻松地识别硬件设备,并且与其他Linux发行版保持一致。

8. 引用设备的方式

    1. 引用设备指在操作系统中唯一标识和定位硬件设备或存储介质的方法
    1. 引用设备方式
      1. 设备文件名
        • 设备文件名是最常见和直接的引用设备的方式。
        • 在Linux系统中,每个硬件设备都对应着一个设备文件,例如硬盘、分区、光驱等都有对应的设备文件。
        • 这些设备文件通常位于/dev目录下,以不同的命名规则来表示不同类型的设备,如/dev/sda代表第一块硬盘,/dev/sdb1代表第二块硬盘的第一个分区。
      1. UUID
        • UUID(Universally Unique Identifier)是一种设备的唯一标识号,用于唯一地标识一个设备。
        • 每个设备都有自己唯一的UUID,它由一串数字和字母组成。
        • 在Linux系统中,可以通过UUID来引用设备而不受设备文件名变化的影响,因为UUID是设备的固定标识。
        • 可以使用【blkid】命令来查看设备的UUID。
      1. 卷标签(LABEL)
        • 卷标签是为存储设备(如硬盘分区)设置的一个易于识别和记忆的标签。
        • 与设备文件名和UUID不同,卷标签是用户可读的字符串,可以根据用户的需求自定义。
        • 通过卷标签引用设备可以使操作更加直观和便捷,尤其是对于移动设备或需要频繁操作的设备。
        • 可以使用e2labelntfslabel等工具来设置和修改分区的卷标签,在挂载时使用卷标签来引用设备。

2、磁盘分区

  1. 磁盘分区是为了更有效地利用硬盘空间和更灵活地管理存储数据而进行的硬盘划分。MBR(Master Boot Record)和GPT(GUID Partition Table)是两种不同的分区方案。
    • MBR和GPT是两种不同的磁盘分区方案,各有其特点和适用场景。
    • 随着UEFI系统的普及,GPT分区方案正逐渐取代传统的MBR,在新系统和新硬件上得到了广泛的应用。

1. MBR(Master Boot Record):

    • 概述:MBR是一种传统的分区方案,广泛应用于BIOS系统。它基于硬盘的第一个扇区(第0扇区),共占据512字节。
    • 组成
      • Bootloader:用于引导启动操作系统程序,占据了MBR的前446字节。
      • 分区表:描述硬盘上的分区信息,占据了MBR的接下来64字节。每个分区描述占据16字节,最多支持4个主分区或3个主分区加1个扩展分区。
      • 有效性标识:MBR的最后两个字节应为0x55AA,用于表示MBR有效。

2. GPT(GUID Partition Table):

    • 概述:GPT是一种现代的分区方案,主要用于UEFI(Unified Extensible Firmware Interface)系统。相比MBR,GPT具有更高的容量支持和更多的特性。
    • 特点
      • 支持128个分区,使用64位表示分区号,因此支持的分区总数远远超过MBR。
      • 使用128位的UUID(Universally Unique Identifier)标识磁盘和分区,使得每个分区的标识更加唯一。
      • 分区表自动备份在头和尾两份,并包含CRC校验位,提高了数据的完整性和可靠性。
    • UEFI支持:UEFI硬件接口通常需要GPT来启动操作系统,因此GPT分区方案是UEFI系统的首选。
  1. 引导基本流程:
    • BIOS+MBR:传统的启动方式,BIOS会读取MBR的Bootloader,然后引导启动操作系统。
    • UEFI+GPT:现代的启动方式,UEFI会读取GPT分区表中的引导分区,并启动操作系统。

3、Linux的分区实现

  1. Linux的分区实现是通过一系列工具来完成的,其中包括fdisk、parted和gdisk等。这些工具提供了对磁盘分区进行创建、删除、修改类型等操作的功能,但使用时需要谨慎,因为操作不当可能会导致数据丢失。
    1. fdisk:是一种常见的分区工具,可以在命令行中使用。它提供了一系列的子选项来管理磁盘分区,如创建新分区、删除已有分区、修改分区类型等。
    2. parted:是一个强大的磁盘分区工具,除了命令行界面外,还提供了交互式的分区管理界面。相比fdisk,parted支持更多的文件系统类型和分区类型。
    3. gdisk:是专门用于GPT分区的工具,提供了类似于fdisk的命令行界面,但针对GPT分区提供了更多的功能和选项。
  1. 注意事项
    • 在已经分区并且已经挂载到某个分区的磁盘设备上创建新分区时,内核可能无法直接识别新创建的分区。此时,需要通过命令行工具让内核重新扫描磁盘分区。
    • 可以使用命令如【cat /proc/partitions】来查看内核是否识别了新的分区。
    • 如果没有,可以尝试使用【partprobe】(适用于CentOS 7/8)、【partx -a】(适用于CentOS 6)或【kpartx -af】命令来强制内核重新识别分区。

1. 【fdisk】

    1. 语法格式
      • fdisk [选项] 设备文件名
    1. 常用选项
      • 【-l】列出磁盘的所有的分区信息。
      • 【n】创建新分区。
      • 【d】删除已有分区。
      • 【t】修改分区类型。
      • 【l】查看所有已知的分区ID。
      • 【w】保存并退出。
      • 【q】不保存并退出。
      • 【m】帮助命令。
    1. 示例
# 1、列出磁盘分区信息
  fdisk -l /dev/sda
# 2、创建新分区
  fdisk /dev/sdb
  Command (m for help): n
# 3、删除分区
  fdisk /dev/sdc
  Command (m for help): d
# 修改分区类型
  fdisk /dev/sdd
  Command (m for help): t
# 保存并退出
  fdisk /dev/sde
  Command (m for help): w

2. 【parted】

    1. 语法格式
      • parted [选项] 设备文件名
    1. 常用选项
      • 【mkpart】创建新分区。
      • 【rm】删除分区。
      • 【set】修改分区的属性。
      • 【print】打印分区信息。
      • 【quit】退出 parted。
    1. 示例
# 1、创建新分区
  parted /dev/sda
  (parted) mkpart primary ext4 0% 100%
# 2、删除分区
  parted /dev/sdb
  (parted) rm 1
# 3、修改分区属性
  parted /dev/sdc
  (parted) set 1 boot on
# 4、打印分区信息
  parted /dev/sdd
  (parted) print
# 5、退出 parted
  parted /dev/sde
  (parted) quit

3. 【gdisk】

    1. 语法格式
      • gdisk [选项] 设备文件名
    1. 常用选项
      • 【n】创建新分区。
      • 【d】删除分区。
      • 【t】修改分区类型。
      • 【p】打印分区信息。
      • 【w】保存并退出。
      • 【q】不保存并退出。
    1. 示例
# 1、创建新分区
  gdisk /dev/sda
  Command (? for help): n
# 2、删除分区
  gdisk /dev/sdb
  Command (? for help): d
# 3、修改分区类型
  gdisk /dev/sdc
  Command (? for help): t
# 4、打印分区信息
  gdisk /dev/sdd
  Command (? for help): p
# 5、保存并退出
  gdisk /dev/sde
  Command (? for help): w

4、创建和管理文件系统

  1. 在Linux系统中,创建和管理文件系统是指在磁盘设备上建立文件系统结构,并对其进行格式化、挂载和维护的过程。
  2. 格式化
    • 格式化是指在磁盘上建立文件系统。在格式化过程中,磁盘会分成若干个区域,用于存储文件和文件系统的元数据。
    • 格式化的过程通常包括以下步骤:
      • 分区:将磁盘分成一个个的逻辑分区。
      • 建立文件系统:在每个分区上建立相应的文件系统结构。
      • 初始化文件系统:为文件系统的元数据和数据区域进行初始化。
    • 在Linux系统中,常用的格式化命令包括 mkfsmkfs.ext4mkfs.xfs 等。
  1. Inode
    • Inode 是文件系统中用于描述文件特定的元数据的索引节点号。
    • 每个文件在文件系统中都有一个对应的 Inode。
    • Inode 中包含了文件的属性信息,如文件类型、大小、权限、所有者等,以及指向文件数据所在磁盘块的指针。
  1. 符号链接文件
    • 符号链接文件(Symbolic Link)是一种特殊的文件类型,它不占据磁盘块,而只是一个指向另一个文件或目录的符号。
    • 不占据磁盘块,只是访问空间的指针。
    • 符号链接文件可以用来创建文件或目录的别名,方便用户对文件系统中的内容进行管理和访问。
  1. 【stat】
    1. 显示文件或文件系统的详细信息。包括文件的权限、所有者、大小、最近访问时间、最近修改时间等。查看文件的元数据信息
  1. 【free】
    1. free 命令用于显示系统内存的使用情况,包括总内存、已用内存、空闲内存等信息。可以及时监控系统内存的使用情况,为系统资源管理和优化提供参考。

1. linux支持的文件系统

    1. 基于VFS来实现:
      • Linux的文件系统是基于Virtual File System(VFS)抽象层实现的,它允许Linux支持多种不同类型的文件系统。
    1. 传统Linux文件系统:
      • ext2(第二扩展文件系统):最早的Linux文件系统之一,没有日志功能,因此在意外断电时可能导致数据丢失。
      • ext3(第三扩展文件系统):是ext2的升级版本,添加了日志功能以提高稳定性。
      • ext4(第四扩展文件系统):进一步改进了ext3,支持更大的文件和分区,以及更高的性能。
      • xfs:高性能的日志文件系统,特点是单个文件大小无上限,适合大型存储需求。
      • reiserfs:具有快速访问速度的日志文件系统,但在一些情况下可能不够稳定。
      • btrfs:B-tree文件系统,支持快照、压缩等高级功能。
    1. 特殊文件系统:
      • iso9660:光盘文件系统,用于光盘的数据存储和读取。
    1. 网络文件系统:
      • cifs:Common Internet File System,用于在网络上共享文件和打印机。
      • nfs:Network File System,用于在网络上共享文件系统。
    1. 集群文件系统:
      • gfs2:Global File System 2,用于在集群环境中共享文件系统。
    1. 分布式文件系统:
      • MFS:Maple File System,一种轻量级的分布式文件系统。
      • ceph:一种分布式存储系统,用于大规模数据存储和处理。
    1. 交换文件系统:
      • swap:Linux用于虚拟内存管理的交换分区。
    1. UNIX操作系统支持的文件系统:
      • FFS:Fast File System,Unix系统中使用的一种文件系统。
      • UFS:Unix File System,Unix操作系统使用的一种文件系统。
    1. Windows支持的文件系统:
      • VFAT(FAT32):Windows中常用的文件系统,支持较大的文件和分区。
      • NTFS:New Technology File System,Windows主要使用的文件系统,支持更大的文件和更高级的功能。
    1. 临时文件系统:
      • tmpfs:用于在内存中创建临时文件系统,通常用于存储临时数据。
    1. 虚拟的特殊文件系统:
      • cgroup:Control Group,用于对进程组进行资源限制和管理的虚拟文件系统。

2. 【mkfs】创建文件系统

    1. 创建文件系统可以使用【mkfs】命令,该命令后跟文件系统类型以及要格式化的设备名称。
    2. 基本语法
      • mkfs.[文件系统类型] [选项] 设备
      • 文件系统类型:指定要创建的文件系统类型,如ext2、ext3、ext4、xfs等。
      • 选项:可选的选项用于指定文件系统的特定配置参数。
      • 设备:指定要格式化为新文件系统的设备。
    1. 常用文件系统类型
      • ext2:Linux第一个常用的文件系统,无日志功能,已经不太常用。
      • ext3:对ext2进行了改进,增加了日志功能,提高了文件系统的稳定性。
      • ext4:对ext3的进一步改进,提高了性能和文件系统大小的限制。
      • xfs:适用于大型文件和高性能要求的文件系统,单个文件无上限
    1. 选项
      • 不同文件系统类型的mkfs命令支持不同的选项,常用选项包括:
      • 【-L LABEL】为文件系统指定一个标签。
      • 【-j】为文件系统添加日志(仅适用于ext2和ext3)。
      • 【-b BLOCK-SIZE】设置文件系统的块大小。
      • 【-c】检查设备上的坏块并将其标记为不可用。
    1. 示例
#1、创建一个ext4文件系统:
  mkfs.ext4 /dev/sdX
#2、创建一个带有标签的ext3文件系统:
  mkfs.ext3 -L mylabel /dev/sdX
#3、创建一个xfs文件系统,并指定块大小为4KB:
  mkfs.xfs -b size=4096 /dev/sdX

3. 【fsck】检测和修复文件系统

    1. 用于检测和修复文件系统中的错误。它通常在系统启动时或手动运行时使用,以确保文件系统的一致性和完整性。
    2. 基本语法
      • fsck.[文件系统类型] [选项] 设备
    1. 常用文件系统类型——同上
    2. 选项——不同文件系统类型的fsck命令支持不同的选项
      • 【-a】自动修复文件系统中的错误而不需要用户干预。
      • 【-r】交互式地修复文件系统中的错误,允许用户选择操作。
      • 【-y】在自动修复模式下,自动回答“yes”以所有提示。
    1. 示例
#1、检查并修复ext4文件系统:
  fsck.ext4 /dev/sdX
#2、以交互式模式检查并修复ext3文件系统:
  fsck.ext3 -r /dev/sdX
#3、自动修复xfs文件系统中的所有错误:
  fsck.xfs -a /dev/sdX

4. 【dumpe2fs】【tune2fs】查看文件系统属性

  1. 查看和修改ext2、ext3和ext4文件系统属性的工具。它们提供了管理文件系统的各种功能,包括查看文件系统信息、修改文件系统参数和特性等。
  2. 【dumpe2fs】
    1. 用于显示ext2、ext3和ext4文件系统的详细信息。
    2. 基本语法
      • dumpe2fs [选项] 设备
      • 设备:要检查的文件系统所在的设备。
    1. 常用选项
      • 【-h】仅显示超级块信息,包括文件系统的创建时间、最后挂载时间等。
      • 【-i】显示文件系统的UUID。
      • 【-l】显示完整的超级块信息,包括文件系统的各种参数和特性。
    1. 示例
#1、显示文件系统的基本信息:
  dumpe2fs /dev/sda1
#2、仅显示文件系统的UUID:
  dumpe2fs -i /dev/sda1
#3显示文件系统的完整信息:
  dumpe2fs -l /dev/sda1
  1. tune2fs
    1. 用于修改ext2、ext3和ext4文件系统的参数和特性。
    2. 基本语法
      • tune2fs [选项] 设备
    1. 常用选项
      • 【-c】设置文件系统检查的间隔次数。
      • 【-m】设置文件系统保留空间的百分比。
      • 【-L】设置文件系统的卷标(LABEL)。
      • 【-U】设置文件系统的UUID。
    1. 示例
#1、设置文件系统检查的间隔时间为180天:
  tune2fs -c 180 /dev/sda1
#2、设置文件系统的卷标为"MyDisk":
  tune2fs -L MyDisk /dev/sda1
#3、设置文件系统的UUID为指定值:
  tune2fs -U new-uuid /dev/sda1

5. 实现对文件系统的管理

  • 文件系统在计算机中被操作系统使用,就必须要有内核中的驱动,由内核提供
  • 实现对文件系统的管理,在用户空间有对应的管理工具。
    • mkfs(所有系列)
    • mke2fs(ext系列命令)
  1. 创建文件系统(格式化结束)
    • ext系列文件系统
    • mkfs.ext[2|3|4] /dev/DEVICE 子选项 -t:指定文件系统
    • centos-6 创建xfs文件系统——>需要安装额外的程序
    • mkfs.xfs -f /dev/DEVICE -f:强行格式化为xfs文件系统
  1. 创建完成之后查看,【blkid】命令查看格式化的基本情况
    • mke2fs子命令:
      • 【-L】指定卷标
      • 【-b】指定块大小
  1. 若更改文件系统的块大小,基于工具命令【mke2fs -b】即可
    • -b [1024|2048|4096]
    • 例如:mke2fs -b 1024 /dev/sdb1
  1. 若指明文件系统卷标,基于工具命令【mke2fs -L】即可
    1. 例如mke2fs -t ext4 -b 4096 -L onedata /dev/sdb1
    • 查看卷标【e2laber DEVICE】
    • 设定卷标【e2laber DEVICE LABEL】(无需格式化更改卷标)
  1. 若规定inode的数量,接入选项 【-N】即可
    • 若预留一定的百分比,接入选项【-m】选项即可

6. 文件系统的修复

  • 必须在非挂载情况下操作,不保障修复文件系统的同时一定会恢复数据
  • 文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”
6.1. 【e2fsck】
    • 用于检查和修复ext2、ext3和ext4文件系统的完整性
    • 注意事项
      • e2fsck通常需要在文件系统未挂载的情况下运行。
      • 在修复文件系统时,可能会造成数据丢失或损坏,建议在操作前备份数据。
    1. 基本语法
      • e2fsck [选项] 设备文件或者分区
    1. 常用选项
      • 【-y】在修复过程中遇到问题时,不需要用户确认,直接自动修复。
      • 【-f】即使文件系统被标记为“干净”(clean),也强制检查和修复。
      • 【-p】自动修复安全问题,不进行用户交互。
    1. 示例
#1、检查并修复设备上的文件系统:
  e2fsck /dev/sda1
#2、强制检查并修复即使文件系统被标记为“干净”:
  e2fsck -f /dev/sdb1
#3、自动修复安全问题:
  e2fsck -p /dev/sdc1
6.2. 【fsck】
    • 通用文件系统的诊断检测修复工具。用于检查和修复文件系统的完整性。可用于各种文件系统,包括ext2、ext3、ext4等。
    1. 基本语法
      • fsck [选项] 设备文件或者分区
    1. 常用选项
      • 【-a】自动修复,不需要用户确认。
      • 【-r】交互式修复,允许用户选择是否修复问题。
      • 【-y】在修复过程中遇到问题时,不需要用户确认,直接自动修复。
      • 【-f】即使文件系统被标记为“干净”(clean),也强制检查和修复。
      • 【-p】自动修复安全问题,不进行用户交互。
    1. 示例
#1、检查并修复设备上的文件系统:
  fsck /dev/sda1
#2、自动修复文件系统问题:
  fsck -a /dev/sdb1
#3、强制检查并修复即使文件系统被标记为“干净”:
  fsck -f /dev/sdc1
#4、交互式修复,允许用户选择是否修复问题:
  fsck -r /dev/sdd1
#5、自动修复安全问题:
  fsck -p /dev/sde1
6.3. 【xfs_repair】
  • xfs文件系统专用检测修复工具,用于诊断和修复XFS文件系统的一致性
    1. 基本语法
      • xfs_repair [选项] 设备文件或者分区
    1. 常用选项
      • 【-L】在运行xfs_repair之前,首先在只读模式下检查文件系统的一致性。
      • 【-P】在修复期间不要尝试更改inode。
      • 【-r】在修复期间尝试重建损坏的目录。
      • 【-f】强制修复文件系统,即使文件系统看起来是干净的。
      • 【-n】不执行实际的修复操作,而只是检查文件系统的一致性并报告错误。
      • 【-d】启用调试模式,以便在修复期间输出更详细的调试信息。允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot
    1. 示例
#1、检查并修复XFS文件系统:
  xfs_repair /dev/sda1
#2、在只读模式下检查文件系统的一致性:
  xfs_repair -L /dev/sdb1
#3、在修复期间不尝试更改inode:
  xfs_repair -P /dev/sdc1
#4、尝试重建损坏的目录:
  xfs_repair -r /dev/sdd1
#5、强制修复文件系统,即使文件系统看起来是干净的。
  xfs_repair -f /dev/sda1
#6、不执行实际的修复操作,而只是检查文件系统的一致性并报告错误。
  xfs_repair -n /dev/sda1
#7、启用调试模式,以便在修复期间输出更详细的调试信息。
  xfs_repair -d /dev/sda1

5、创建交换文件系统

1. 交换文件系统

    • 指在计算机操作系统中用于虚拟内存管理的一种文件系统
    • 用于将内存中不经常使用的数据或进程暂时存储到硬盘上,以释放物理内存供其他程序使用。
    • 交换文件系统的主要作用
      • 扩展内存容量:通过在硬盘上创建交换分区,可以将物理内存的容量扩展到硬盘上,从而增加系统可用的内存大小。
      • 缓解内存压力:当物理内存不足以容纳所有运行程序的数据时,操作系统可以将不经常使用的数据暂时存储到交换文件系统中,从而缓解内存压力。
      • 调整内存分配:交换文件系统还可以用于调整内存分配,使得系统可以更灵活地分配和管理内存资源。

2. 【mkswap】创建交换文件系统

    1. 注意事项
      • 文件系统类型:交换分区必须使用独立的文件系统,并且在创建分区时需要指定标签。
      • 文件系统兼容性:若windows设备和Linux设备文件系统可以兼容,不能使用NTFS文件系统作为交换分区,但可以使用兼容的VFAT(FAT32)文件系统。
      • 在U盘等可移动设备上格式化时,可以使用mkfs.vfat命令。
    1. 基本语法
      • mkswap [选项] 设备文件或文件名
    1. 注意事项
      • 在Linux系统中,交换文件系统通常被挂载在/dev下的设备文件或者文件名上。
      • 交换文件系统应该在使用前格式化,mkswap命令用于完成这一过程。
      • 交换文件系统的创建需要root权限。
      • 交换文件系统的大小应根据系统内存和应用需求进行合理设置。
    1. 常用选项
      • 【-L LABEL】指定交换分区的标签。
      • 【-f】强制创建交换文件系统。如果指定的设备已经被使用过,该选项将覆盖原有数据。
      • 【-v】显示mkswap的详细信息。
      • 【-p 版本】指定创建的交换文件系统的版本。
    1. 示例
# 1、创建交换分区:
  mkswap /dev/sdb1	# 这条命令将在设备/dev/sdb1上创建交换文件系统。
# 2、创建交换文件:
  mkswap /swapfile	#将在文件/swapfile上创建交换文件系统。

3. 【swapon】【swapoff】管理交换分区

  1. 【swapon】
    1. 用于启用交换分区,将其添加到系统中以用作虚拟内存
    2. 语法
      • swapon 设备文件或文件名
    1. 示例
swapon /dev/sdb1		#启用设备/dev/sdb1上的交换分区。
  1. 【 swapoff】
    1. 禁用指定的交换分区,从而停止将其用作虚拟内存
    2. 语法
      • swapoff 设备文件或文件名
    1. 示例
swapoff /dev/sdb1		#禁用设备/dev/sdb1上的交换分区。

4. 【free】

  1. 查看当前系统的内存使用状况,同时可以查看当前系统swap使用的状况
    • 显示系统内存使用情况,包括物理内存(RAM)和交换空间(swap),并且可以选择以MB为单位显示。
    • 注意
      • free命令只是提供了当前系统内存和交换空间的快照信息,实时性可能有所不足。在查看系统性能问题时,建议结合其他工具一起使用,如tophtop等。
      • 使用-m选项可以将输出的内存使用量以MB为单位,这有助于更直观地理解系统内存的使用情况。
  1. 基本语法
    • free [选项]
  1. 选项
    • 【-m】以MB为单位显示内存使用情况
  1. 示例
    • free -m #显示系统的物理内存和交换空间使用情况,并以MB为单位显示
    • 输出解释
      • 第一行:显示物理内存(RAM)的总量、已使用量、空闲量以及缓冲区和缓存的使用量。
      • 第二行:显示交换空间(swap)的总量、已使用量和空闲量。

6、文件系统的挂载

1. 挂载概念

    • 挂载是将根文件系统之外的其他文件系统连接到计算机的文件系统树中的特定位置,从而使得这些文件系统中的内容可以在操作系统中被访问和操作
    • 根文件系统外的文件系统,若想使用,必须关联至/下的某个目录,这种关联动作即为挂载(mount)
    • 挂载点概念:被关联的/下的那个特定目录,即为挂载点(mount_point), 注意挂载点必须存在,且最好为空目录
  1. 注意
    • 若挂载的文件系统是ext系列,系统会自动在挂载点下生成一个lost+found目录,用于存放文件系统出现问题时恢复的文件。

2. 挂载命令 【mount】

    1. 命令格式
      • mount [option] dev_name /mount_point
    1. 常用选项
      • 【-r】只读挂载,以只读模式挂载文件系统,禁止写入操作。
      • 【-a】自动挂载所有支持自动挂载的设备。该选项通常在启动时由系统自动执行,根据 /etc/fstab 文件中的配置信息挂载文件系统。
      • 【-t】指定要挂载的文件系统的类型。一般情况下可以省略,因为系统会根据设备类型自动识别文件系统类型。
      • 【-L】指定设备卷标进行挂载。
      • 【-U】指定UUID进行挂载。
      • 【-o】指定额外的挂载选项,多个选项之间使用逗号分隔。
      • 【sync/async】指定挂载文件系统的同步/异步模式。
        • 同步模式(sync):在进行文件系统写入操作时,文件系统会立即将数据写入磁盘并等待写入完成后再返回写入成功的信息。这种模式可以提供更高的数据一致性和可靠性,但会导致写入操作的速度较慢。
        • 异步模式(async):在进行文件系统写入操作时,文件系统会先将数据缓存起来,等待一定时间后再将数据写入磁盘。这种模式下,写入操作速度较快,但可能会导致数据丢失或损坏的风险增加。
      • 【remount】重新挂载,用于重新设置挂载点的属性,如读写模式等。
      • 【acl】挂载的文件系统支持文件访问控制列表(File Access Control List)功能。
      • 【exec】允许在此设备上运行可执行程序文件。
      • 【auto/noauto】指定是否允许自动挂载。auto表示在启动时自动挂载,noauto表示不允许自动挂载,默认为auto
      • 【user/nouser】指定是否允许普通用户挂载。user表示允许普通用户挂载,但可能需要使用 sudo 提权,nouser表示不允许普通用户挂载。
    1. 示例
#1、挂载设备 /dev/sdb1 到挂载点 /mnt:
  mount /dev/sdb1 /mnt
#2、使用UUID挂载设备:
  mount -U 7a7798c6-6460-4e98-b051-38bbff1b72e8 /mnt
#3、使用卷标挂载设备:
  mount -L mydisk /mnt
#4、挂载只读文件系统:
  mount -o ro /dev/sdc1 /mnt
#5、指定额外的挂载选项:
  mount -o remount,rw /dev/sdb1 /mnt
#6、自动挂载所有支持自动挂载的设备:
  mount -a

mount -o sync /dev/sdb1 /mnt   # 同步模式
mount -o async /dev/sdb1 /mnt  # 异步模式
mount -o remount,rw /dev/sdb1 /mnt  # 重新以读写模式挂载文件系统
mount -o acl /dev/sdb1 /mnt   # 挂载文件系统并启用ACL功能
mount -o exec /dev/sdb1 /mnt   # 允许在挂载点执行可执行程序文件
mount -o auto /dev/sdb1 /mnt   # 自动挂载
mount -o noauto /dev/sdb1 /mnt   # 不自动挂载
mount -o user /dev/sdb1 /mnt   # 允许普通用户挂载
mount -o nouser /dev/sdb1 /mnt   # 不允许普通用户挂载

3. 挂载光盘:

    1. 将光盘设备连接到文件系统的一个过程,使得光盘中的内容可以在计算机上被访问和使用。
      • 默认情况下,光盘设备在Linux系统中通常被分配为 /dev/sr0,但有时也可以是 /dev/cdrom/dev/dvd
    1. 要挂载光盘,通常需要遵循以下步骤:
      • 完成了光盘的挂载和卸载过程。在挂载期间,可以使用挂载点来访问光盘上的文件和目录,就好像它们是本地存储设备中的一部分一样。
##1、创建一个目录作为挂载点(mount point),用于将光盘内容挂载到文件系统中。
#例如,在 /mnt 目录下创建一个新目录作为挂载点:
  sudo mkdir /mnt/cdrom
##2、使用 mount 命令将光盘设备连接到挂载点上。可以通过指定光盘设备的路径
#(例如 /dev/sr0)来完成挂载:
  sudo mount /dev/sr0 /mnt/cdrom
#或者,也可以通过指定光盘设备的别名
#(例如 /dev/cdrom 或 /dev/dvd)来完成挂载:
  sudo mount /dev/cdrom /mnt/cdrom
##3、现在,光盘上的内容就可以通过挂载点 /mnt/cdrom 访问了。
#可以使用 ls 命令查看挂载点中的内容:
  ls /mnt/cdrom
##4、在使用完光盘后,可以使用 umount 命令将光盘从文件系统中卸载:
  sudo umount /mnt/cdrom

4. 【umount 】卸载命令

  1. 将已经挂载的文件系统卸载,使得挂载点上的内容不再可访问。
    1. 注意事项
      • 在卸载文件系统时,如果文件系统正在被使用,会导致卸载失败。可以通过【fuser】 或 【lsof】 命令查找正在使用文件系统的进程,并终止这些进程,然后再尝试卸载。
      • fuser -km 挂载点 ---> 强行剔除已经挂载的用户
      • 可以使用 【-f】 选项强制卸载文件系统,即使它正在被使用。但这样做可能会导致数据丢失或损坏,所以应该慎重使用。
      • 如果无法通过常规方式卸载文件系统,可以使用 【-l】 选项将文件系统标记为延迟卸载,直到不再被使用时再执行卸载操作。
  1. 语法格式
    • umount [option] mount_point|dev_name|UUID
  1. 常用选项
    • 【-f】强制卸载,即使文件系统正在被使用也会进行卸载。
    • 【-l】延迟卸载,将文件系统标记为延迟卸载,直到它不再被使用。
    • 【-n】不执行实际的卸载操作,仅显示将要卸载的文件系统信息。
  1. 示例
#1、按挂载点卸载:
  umount /mnt/cdrom
#2、按设备名卸载:
  umount /dev/sr0
#3、按 UUID 卸载(需指定文件系统类型):
  umount -t ext4 UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

5. 重要文件 /etc/fstab

  1. 通过编辑 /etc/fstab 文件来设定除根文件系统以外的其他文件系统在系统启动时自动挂载。
    1. 注意事项
      • 在编辑 /etc/fstab 文件时,务必小心,避免写错挂载点或设备文件路径,否则可能导致系统启动失败。
      • 在使用 LABEL 或 UUID 指定设备时,确保设备具有正确的 LABEL 或 UUID。
      • 挂载选项需要根据具体需求进行设置,以确保文件系统的正常运行和安全性。
  1. 语法格式
    • /dev/device mount_point fs_type options dump pass
  1. 重要文件 /etc/fstab 字段说明
    1. 要挂载的设备或伪文件系统:可以是设备文件、卷标(LABEL)或 UUID。对于伪文件系统(如 proc、sysfs 等),直接使用其名称即可。
    2. 挂载点:设定文件系统挂载的目标目录,必须是事先存在的目录。
    3. 文件系统类型:指定要挂载的文件系统类型,如 ext4、xfs、iso9660、nfs、none 等。
    4. 挂载选项:设定文件系统的挂载选项,如 defaultsaclbind 等。可以根据需求设定多个选项,用逗号分隔。
    5. 转储频率:表示在系统正常关闭时,对文件系统的转储频率。通常为数字 0、1 或 2。
      • 0:不做备份。
      • 1:每天转储。
      • 2:每隔一天转储。
    1. fsck检查的文件系统的顺序:表示系统启动时 fsck 检查文件系统的顺序。允许的数字是 0、1 或 2。
      • 0:不自检。
      • 1:首先自检。一般只有 root 文件系统使用这个选项。
      • 2:非 root 文件系统使用这个选项。
  1. 常用选项
    • 【-o】指定额外的挂载选项,可以在其中列出多个选项,用逗号分隔。
    • 【-a】自动挂载所有在 /etc/fstab 中列出的文件系统。
    • 【-r】只读挂载文件系统。
    • 【-v】显示详细的挂载信息。
  1. 示例
/dev/sdb1    /mnt/data    ext4    defaults    0    2
LABEL=mylabel    /mnt/backup    xfs    defaults    1    2
UUID=XXXX-XXXX    /mnt/external    ntfs    defaults    0    0
proc    /proc    proc    defaults    0    0
sysfs    /sys    sysfs    defaults    0    0

6. 【df】

  1. 查看当前系统中所有已挂载的文件系统的挂载情况、挂载点以及空间使用情况。
    1. 注意事项
      • 在默认情况下,df 命令会显示所有已挂载的文件系统的磁盘空间使用情况。
      • 可以根据需要结合不同的选项来获取特定的信息,如 -h 用于以人性化方式显示大小,-i 用于显示 inode 使用情况等。
      • 如果只关注本地文件系统,可以添加 -l 选项来排除网络文件系统的显示。
  1. 语法格式
    • df [options]
  1. 常用选项
    • 【-h】以人性化的方式显示磁盘空间大小,将以 K、M、G 等单位显示。
    • 【-i】显示文件系统的 inode 使用情况,包括已使用的 inode 数量、总共的 inode 数量以及使用百分比。
    • 【-l】仅显示本地文件系统的挂载情况,不包括网络文件系统。
    • 【-T】在输出中显示每个文件系统的类型。
  1. 示例
df -h
df -hilT

#示例输出
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   10G   10G  50% /
/dev/sdb1       100G   20G   80G  20% /mnt/data
tmpfs            16G   4.0K   16G   1% /tmp
/dev/sdc1       200G   50G  150G  25% /mnt/backup

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/588634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

20240502在WIN11下显示桌面

20240502在WIN11下显示桌面 2024/5/2 15:06 百度:WIN11 状态栏 右键 显示桌面 在WIN10下,可以在状态栏点击右键→“显示桌面”来最小化全部窗口,特别是我打开的浏览器的巨多的窗口! 但是在WIN11下,这个【显示桌面】怎…

2024五一杯数学建模B题思路代码文章教学-交通需求规划与可达率问题

交通需求规划与可达率问题 问题总结: 问题一:在一个小型交通网络中,给定的起点和终点之间的交通需求需分配到相应路径上。目标是最大化任意一条路段出现突发状况时的交通需求期望可达率。 问题二:在一个较大的交通网络中&#xff…

Linux-进程调度器

1. 前言 在计算机中,进程的数量远多于cpu的数量,所以就存在,多个进程抢占一个cpu的情况,所以就需要一套规则,决定这些进程被处理的顺序,这就叫做进程调度。 在我的简单理解下,其实就是把进程放…

普乐蛙景区vr体验馆VR游乐场设备身历其境体验

小编给大家推荐一款gao坪效产品【暗黑战车】,一次6人同乘,炫酷外观、强大性能和丰富内容适合各个年龄层客群,紧张刺激的VR体验让玩家沉浸在元宇宙的魅力中,无论是节假日还是平日,景区商场助力门店提高客流量和营收~ ◆…

实验三 .Java 语言继承和多态应用练习 (课内实验)

一、实验目的 本次实验的主要目的是通过查看程序的运行结果及实际编写程序,练习使用 Java 语言的继承特性。 二、实验要求 1. 认真阅读实验内容,完成实验内容所设的题目 2. 能够应用多种编辑环境编写 JAVA 语言源程序 3. 认真体会多态与继承的作用…

B+树详解与实现

B树详解与实现 一、引言二、B树的定义三、B树的插入四、B树的删除五、B树的查找效率六、B树与B树的区别和联系 一、引言 B树是一种树数据结构,通常用于数据库和操作系统的文件系统中。它的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间…

WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析

在浏览器中渲染大尺寸 3D 模型:Speckle 处理空间抖动的方法 WebGL/Cesium 大空间相机抖动 RTE(Relative to Eye)实现原理简析 注: 相机空间和视图空间 概念等效混用 1、实现的关键代码 const material new THREE.RawShaderMaterial({uniforms: {cameraPostion: {…

【Qt QML】用CMake管理Qt工程

CMake是一个开源、跨平台的工具系列,用于构建、测试和打包软件。CMake使用简单的独立配置文件来控制软件编译过程。与许多跨平台系统不同,CMake被设计为与本地构建环境结合使用。 下面我们在CMake项目中使用Qt的最基本方法。首先,创建一个基本…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

🐯 如何解决PyCharm创建项目时的包安装错误:‘requests’ 🛠️ 文章目录 🐯 如何解决PyCharm创建项目时的包安装错误:requests 🛠️摘要引言正文📘 **问题分析**🚀 **更换Python版本…

OpenCV 实现重新映射(53)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 实现霍夫圆变换(52) 下一篇 :OpenCV实现仿射变换(54) 目标 在本教程中,您将学习如何: 一个。使用 OpenCV 函数 cv::remap 实现简…

Java Web 开发 - 掌握拦截器和监听器

目录 深入了解Java Web的拦截器和监听器 拦截器(Interceptor) 拦截器的使用场景 拦截器实例 思维导图 ​编辑 监听器(Listener) 监听器的使用场景 监听器类型 监听器实例 思维导图​编辑 总结 深入了解Java Web的拦截器…

C——双向链表

一.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。什么意思呢?意思就是链表在物理结构上不一定是连续的,但在逻辑结构上一定是连续的。链表是由一个一个的节点连…

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之使用jar包插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用第三方包,jar包编写安卓插件 开始 把依赖包,放到某个模块的/libs目录(myTestPlug/libs) 还要到build…

java-函数式编程-函数对象

定义 什么是合格的函数?无论多少次执行函数,只要输入一样,输出就不会改变 对象方法的简写 其实在类中,我们很多参数中都有一个this,被隐藏传入了 函数也可以作为对象传递,lambda就是很好的例子 函数式接口中…

ROS实操:通信机制的实现

最近闲来无事,打算重温了一下ROS方面的相关知识。先前的学习都是一带而过,发现差不多都忘了,学习的不够深入。因此,在重温的同时,写下了这篇关于ROS架构的学习博客。 上一篇博客的链接为:ROS架构的学习【No…

如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响

原文链接:如何利用有限的数据发表更多的SCI论文?——利用ArcGIS探究环境和生态因子对水体、土壤和大气污染物的影响https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247602528&idx6&snc89e862270fe54239aa4f796af07fb71&chksmfa82…

visio画图基本用法

添加图形 点击上面的箭头 添加一些基本的形状 添加连接点 点击这个 X 按住Ctrl,在想要的位置上添加连接点 更改线条样式 选中线条之后,右键 可以选择箭头样式 添加文本框 visio对象复制到word里面,画布存在大量空白问题 https://blog.…

【C语言】深入了解文件:简明指南

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、文件的概念1.1 文件名:1.2 程序文件和数据文件 二、数据文…

如何利用MCU自动测量单元提高大坝安全监测效率

大坝作为重要的水利基础设施,其安全性直接关系到人民群众的生命财产安全和社会的稳定发展。因此,对大坝进行实时、准确的安全监测至关重要。近年来,随着微控制器单元(MCU)技术的不断发展,其在大坝安全监测领域的应用也越来越广泛。…

数据结构——排序算法分析与总结

一、插入排序 1、直接插入排序 核心思想:把后一个数插入到前面的有序区间,使得整体有序 思路:先取出数组中第一个值,然后再用tmp逐渐取出数组后面的值,与前面的值进行比较,假如我们进行的是升序排序&…
最新文章