RHEL8_Linux硬盘管理

主要介绍Linux磁盘管理

  • 了解分区的概念
  • 对硬盘进行分区
  • 常见的分区
  • swap分区的管理

1.了解分区的概念

1)新的硬盘首先需要对其进行分区和格式化,下面来了解以下硬盘的结构,如图。

2)硬盘的磁盘上有一个个圈,每两个圈组成一个磁道。从中间往外发射线,把每个磁道分成 一个个扇区,每个扇区的大小是512B。为了更好地理解,我们把所有磁盘拼接起来,如图

        假设磁盘有10000个扇区,第一个分区从2048到6000,第二个分区从6001到 8000,第三个分区从8001到10000。
        每个扇区只能属于一个分区,不能同时属于多个分区。
        第一个扇区比较特殊,叫作 MBR(主引导记录)。
        分区类型包括主分区、扩展分区和逻辑分区,如图。

        一套房子出租,李四和王五从房东手中直接各租一间自住,这个属于主分区。

        赵六从房东手中租过来一个大间,但自己不住做起了二房东(扩展分区),然后隔成很多隔间。赵六租的那一个大间就是扩展分区,大间里隔开的一些隔间就是逻辑分区。

  1. 主分区:直接从硬盘上划分,并可以直接格式化使用的分区。
  2. 扩展分区:直接从硬盘上划分,但是不直接使用的分区。
  3. 逻辑分区:在扩展分区上划分的分区。
        分区表记录主分区和扩展分区的信息,如同房东从李四、王五、赵六手中收房租一样,但是收不到tom、bob等的房租,tom、bob等的房租由赵六来收,因为赵六是二房东。
        每记录一个分区(主分区或扩展分区)要消耗16B,所以分区表最多只能记录4个分区,硬盘最多只能划分出来4个分区,且最多只能有一个扩展分区。

         请关闭虚拟机并自行为虚拟机添加一块SCSI格式的硬盘,然后开机进入系统。

2.对磁盘进行分区

1)使用fdisk -l 命令查看所有分区信息,命令如下。
[root@aaa ~]# fdisk -l磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b8ab1设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/mapper/centos_aaa-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/mapper/centos_aaa-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@aaa ~]#
        此命令可以查看系统所有硬盘的信息,这里可以看到/dev/sda有两个分区 /dev/sda1和/dev/sda2,/dev/sdb没有任何分区。

2)如果想单独查看某硬盘的分区信息,可以使 用“fdisk -l/dev/硬盘”命令。例如,想单独查看/dev/sda的信息,则用fdisk -l /dev/sda命令,命令如下。
[root@aaa ~]# fdisk -l /dev/sda磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b8ab1设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
[root@aaa ~]# 
        这里可以获取到很多信息,例如,整个sda有多少个扇区,每个分区从哪个扇区开始到个扇区结束等。

下面开始练习分区,自行添加一个类型为SCSI、大小为40G的分区

3)分区的语法为“fdisk /devl/硬盘”,这里是对硬盘进行分区,而不是对分区再进行分区。
[root@aaa ~]# fdisk -l /dev/sdb磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@aaa ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x12a28aec 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):

此处进入分区的界面,按提示输入 “m” 可以获取帮助命令,常用的命令如下。

  • p:打印分区表
  • n:添加一个分区
  • d:删除一个分区
  • l:列出分区类型
  • t:转换分区类型
  • q:不保存退出
  • w:保存退出
4)查看现有分区信息,此处输入 “p” 命令如下
命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System命令(输入 m 获取帮助):
5)此处并没有看到/dev/sdb1、/dev/sdb2等内容,说明并不存在任何分区。 按【n】键创建一个分区,命令如下
命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 
        直接在硬盘上划分的分区有主分区(标记为p)和扩展分区(标记为e),逻辑分区(标记为 1)只能在扩展分区上创建,且扩展分区最多只能创建一个扩展分区。
        所以,在硬盘中没有扩展分区时,选择分区类型时只能选择p和e这两种。如果已经存在了扩展分区,就不能再创建第二个扩展分区了,但可以在扩展分区上创建逻辑分区,所以可选择的分区类型有p和e。
6)先创建主分区或扩展分区都可以,这里先创建主分区,输入“p”,按【Enter】键。主分区加扩展分区最多只能创建出来4个,所以分配的编号只能是1~4,这里选择默认的1,然后按【Enter】键。
命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
分区号 (1-4,默认 1):
7)硬盘总共有41943039个扇区,第一个分区从哪个扇区开始呢?默认为2048,直接按【Enter】键,我们就从2048扇区开始。
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
        这里N的位置得写一个结束点,假设要创建2G的分区,从2048扇区开始算,到哪个扇区结束能使得分区大小是2G呢?如图所示。

8)现在计算一下:2G=2×1024M=2×1024× 1024K=2×1024×1024×2扇区(1扇区 =0.5K),所以一共需要2×1024×1024×2=4194304个扇区。从2048扇区开始算,最后一个 扇区应该落在2048+4194304-1=4196351的位置,这样创建出来的分区就是2G,所以图中琪与4196351。
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):
9)创建2G分区后,输入 “p” 查看分区信息,命令如下。
命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux命令(输入 m 获取帮助):
10)可以看出,从2048开始,共4194304个扇区,在4196351这个位置结束,大小为2G。但是这种创建分区的方法比较麻烦,可以先输人“d”,按【Fnter】键,删除此分区,命令如下。
命令(输入 m 获取帮助):d        //此处输入d表示删除分区
已选择分区 1
分区 1 已删除命令(输入 m 获取帮助):
11)因为sdb1是唯一的分区,所以删除的就是sdb1,然后重复上面的方法重新创建分区,命令如下。
命令(输入 m 获取帮助):n
Partition type:        //分区类型p   primary (0 primary, 0 extended, 4 free)        //主分区e   extended            //扩展分区
Select (default p): p        //默认选择p
分区号 (1-4,默认 1):
12)因为并不需要关心分区到哪个扇区结束,只关心分区大小,所以这里可以写+2G,意思是从2048扇区开始划分一个2G大小的分区,命令如下。
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):
13)然后输人“p”查看分区信息、命令如下。
命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux命令(输入 m 获取帮助):

可以看到,手动计算出来的一样,通过这种方式划分分区就容易多了。

14)再创建一个主分区/dev/sda2,大小为4G,命令如下。
命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-83886079,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-83886079,默认为 83886079):+4G
分区 2 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352    12584959     4194304   83  Linux命令(输入 m 获取帮助):
15)创建一个扩展分区/dev/sda4,把剩余所有空间全部给它(这里故意没有创建/dev/sda3),命令如下。
命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): e
分区号 (3,4,默认 3):4
起始 扇区 (12584960-83886079,默认为 12584960):
将使用默认值 12584960
Last 扇区, +扇区 or +size{K,M,G} (12584960-83886079,默认为 83886079):
将使用默认值 83886079
分区 4 已设置为 Extended 类型,大小设为 34 GiB命令(输入 m 获取帮助)
16)输入 “p” 查看分区信息,命令如下。
命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352    12584959     4194304   83  Linux
/dev/sdb4        12584960    83886079    35650560    5  Extended命令(输入 m 获取帮助):
17)创建扩展分区后,就可以创建逻辑分区了,我们看到了编号3并未使用,所以现在还可以 创建一个主分区,但是硬盘已经没有多余的空间,所以不能再创建主分区只能创建逻辑分区, 逻辑分区的编号是从5开始,命令如下。
命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 1 extended, 1 free)l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (12587008-83886079,默认为 12587008):
将使用默认值 12587008
Last 扇区, +扇区 or +size{K,M,G} (12587008-83886079,默认为 83886079):+4G
分区 5 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):
18)按照此方法再创建几个分区
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352    12584959     4194304   83  Linux
/dev/sdb4        12584960    83886079    35650560    5  Extended
/dev/sdb5        12587008    20975615     4194304   83  Linux
/dev/sdb6        20977664    29366271     4194304   83  Linux
/dev/sdb7        29368320    37756927     4194304   83  Linux
19)看上面最右侧的两列:Id和类型,这两列是对应的。因为分区的作用不一样,所以有的可以直 接格式化使用,有的用于创建swap,有的用于创建逻辑卷等。这些类型是可以转换的,输 入字母l可以看到所有类型,如图所示。

3.常见的分区

1)常见分区类型如下。
  1. Linux:对应的id为83,直接格式化使用的分区。
  2. Linux swap:对应的id为82,用于创建swap。
  3. Linux LVM:对应的id为8e,用于创建LV
  4. Linux raid:对应的id为fd,用于创建fd
2)使用相同的方法,把/dev/sdb6、/dev/sdb7的分区类型也转变为Linux LVM. 为13.2节做准备,把/dev/sdb2的分区类型改为 Linux swap,输入“t”,命令如下。
命令(输入 m 获取帮助):t    
分区号 (1,2,4-7,默认 7):2
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”命令(输入 m 获取帮助):
3)然后输入 “p” 查看分区信息。
命令(输入 m 获取帮助):p磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12a28aec设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352    12584959     4194304   82  Linux swap / Solaris
/dev/sdb4        12584960    83886079    35650560    5  Extended
/dev/sdb5        12587008    20975615     4194304   83  Linux
/dev/sdb6        20977664    29366271     4194304   83  Linux
/dev/sdb7        29368320    37756927     4194304   83  Linux命令(输入 m 获取帮助):
4)现在所做的一切并没有真的保存,如果不想保存直接退出,可以输人“q”并按【Enter】键;如果想保存并退出,可以输入“w”并按【Enter】键,命令如下。
命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@aaa ~]# 
5)有时需要执行partprobe /dev/sdb命令来刷新一下分区表,然后使用fdisk命令进行查看,命令如下

4.交换分区

        在物理内存不够用的情况下,系统会把物理内存中那些长时间没有操作的数据释放出来, 保存在交换分区(swap)中,这样物理内存中就有多余的空间,用于存放新的数据。
        如果物理内存不够了可以使用swap分区,那么如果swap分区也不够了呢?我们就可以添加swap分区。下面就来讲讲如何管理swap分区。
1.查看当前系统中所有的swap分区,命令如下。
[root@aaa ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1         	partition 2097148	 0	     -2
[root@aaa ~]# 
        可以看到,当前/dev/sda2是交换分区,大小是4G。这里的权限是,如果有多个swap分区,优先使用哪个,数值越大越优先。查看swap分区也可以使用cat /proc/swaps命令。下面开始创建swap分区,步骤如下。
1)把/dev/sdb2创建为swap分区,命令如下。
[root@aaa ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 4194300 KiB
无标签,UUID=2b8f0521-b2d9-4fda-9161-8718138ab8af
[root@aaa ~]# 
2)激活新创建的swap 分区,命令如下。
[root@aaa ~]# swapon /dev/sdb2 
[root@aaa ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	2097148	0	-2
/dev/sdb2                              	partition	4194300	0	-3
[root@aaa ~]# 
        可以看到,此时已经有两个交换分区了。其中/dev/sdb2的权限为-3,说明/devIsda2优先使用。如果想设置让/dev/sdb2优先使用,可以调整/dev/sdb2的优先级。

3)关闭新创建的swap分区,命令如下。
[root@aaa ~]# swapoff /dev/sdb2
4)激活swap分区,并指定优先级,命令如下。
[root@aaa ~]# swapon -p 2 /dev/sdb2 
[root@aaa ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	2097148	0	-2
/dev/sdb2                              	partition	4194300	0	2
[root@aaa ~]#
        可以看到,/dev/sdb2的权限是2,所以这个交换分区会优先使用
        上面设置的这个交换分区也只是临时生效,如果要让其重启系统之后仍然生效,就需要写
入/etc/fstab中。
5)编辑/etc/fstab,在最后一行添加,命令如下。
[root@aaa ~]# tail -1 /etc/fstab 
/dev/sdb1 		none				swap     defaults,pri=2 0 0
        上面每个字段用空格或【Tab】键隔开均可,第四列defaults后面的逗号两边没有空格。如果不需要指定优先级,第四列直接写 defaults 即可。
        如果/dev/sdb2当前没有激活,则在写入/etc/fstab之后,执行swapon -a命令即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM虚拟机系统性学习-类加载子系统

类加载子系统 类加载的时机 类加载的时机主要有 4 个: 遇到 new、getstatic、putstatic、invokestatic 这四条字节码指令时,如果对应的类没有初始化,则要先进行初始化 new 关键字创建对象时读取或设置一个类型的静态字段时(被 …

javaSwing酒店管理系统

一、 使用方法: 在使用前,需要到druid.properties 配置文件中,修改自己对应于自己数据库的属性;如用户名,密码等 driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql:///hotel?useUnicodetrue&characterEn…

midwayjs从零开始创建项目,连接mikro-orm框架(必须有java的springboot基础)

前言: 我一直都是用java的springboot开发项目,然后进来新公司之后,公司的后端是用node.js,然后框架用的是 midwayjs ,然后网上的资料比较少,在此特地记录一波 文档: 1.官方文档:介绍…

Spring Boot 3.0 : 集成flyway数据库版本控制工具

目录 Spring Boot 3.0 : 集成flyway数据库版本控制工具flyway是什么为什么使用flyway主要特性支持的数据库: flyway如何使用spring boot 集成实现引入依赖配置sql版本控制约定3种版本类型 运行SpringFlyway 8.2.1及以后版本不再支持MySQL? 个人主页: 【⭐…

常见web漏洞的流量分析

常见web漏洞的流量分析 文章目录 常见web漏洞的流量分析工具sql注入的流量分析XSS注入的流量分析文件上传漏洞流量分析文件包含漏洞流量分析文件读取漏洞流量分析ssrf流量分析shiro反序列化流量分析jwt流量分析暴力破解流量分析命令执行流量分析反弹shell 工具 攻击机受害机wi…

Unity DOTS中的baking(一) Baker简介

Unity DOTS中的baking(一) Baker简介 baking是DOTS ECS工作流的一环,大概的意思就是将原先Editor下的GameObject数据,全部转换为Entity数据的过程。baking是一个不可逆的过程,原先的GameObject在运行时不复存在&#x…

leetcode 股票DP系列 总结篇

121. 买卖股票的最佳时机 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。 只能进行一次交易 很简单&#xff0c;只需边遍历边记录最小值即可。 class Solution { public:int maxProfit(vector<int>& prices) {int res …

【git】关于git二三事

文章目录 前言一、创建版本库1.通过命令 git init 把这个目录变成git可以管理的仓库2.将修改的内容添加到版本库2.1 git add .2.2 git commit -m "Xxxx"2.3 git status 2.4 git diff readme.txt3.版本回退3.1 git log3.2 git reset --hard HEAD^ 二、理解工作区与暂存…

操作系统内部机制学习

切换线程时需要保存什么 函数需要保存吗&#xff1f;函数在Flash上&#xff0c;不会被破坏&#xff0c;无需保存。函数执行到了哪里&#xff1f;需要保存吗&#xff1f;需要保存。全局变量需要保存吗&#xff1f;全局变量在内存上&#xff0c;无需保存。局部变量需要保存吗&am…

Leetcode—337.打家劫舍III【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—337.打家劫舍III 算法思想 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(null…

I.MX6ULL_Linux_驱动篇(46)linux LCD驱动

LCD 是很常用的一个外设&#xff0c;在Linux 下LCD 的使用更加广泛&#xff0c;在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。本章我们就来学习一下如何在 Linux 下驱动 LCD 屏幕。 Linux 下 LCD 驱动简析 Framebuffer 设备 先来回顾一下裸机的时候 LCD 驱动是怎…

前端入门:HTML初级指南,网页的简单实现!

代码部分&#xff1a; <!DOCTYPE html> <!-- 上方为DOCTYPE声明&#xff0c;指定文档类型为HTML --> <html lang"en"> <!-- html标签为整个页面的根元素 --> <head> <!-- title标签用于定义文档标题 --> <title>初始HT…

单点登录方案调研与实现

作用 在一个系统登录后&#xff0c;其他系统也能共享该登录状态&#xff0c;无需重新登录。 演进 cookie → session → token →单点登录 Cookie 可以实现浏览器和服务器状态的记录&#xff0c;但Cookie会出现存储体积过大和可以在前后端修改的问题 Session 为了解决Co…

UVM建造测试用例

&#xff08;1&#xff09;加入base_test 在一个实际应用的UVM验证平台中&#xff0c;my_env并不是树根&#xff0c;通常来说&#xff0c;树根是一个基于uvm_test派生的类。真正的测试用例都是基于base_test派生的一个类。 class base_test extends uvm_test;my_env e…

14-2(C++11)类型推导、类型计算

14-2&#xff08;C11&#xff09;类型推导、类型计算 类型推导auto关键字auto类型推断本质auto与引用 联用auto关键字的使用限制 类型计算类型计算分类与类型推导相比四种类型计算的规则返回值后置 类型推导 auto关键字 C98中&#xff0c;auto表示栈变量&#xff0c;通常省略…

Leetcode刷题笔记题解(C++):25. K 个一组翻转链表

思路&#xff1a;利用栈的特性&#xff0c;K个节点压入栈中依次弹出组成新的链表&#xff0c;不够K个节点则保持不变 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/ #include <stack> class Solution { …

在国内,现在月薪1万是什么水平?

看到网友发帖问&#xff1a;现在月薪1W是什么水平&#xff1f; 在现如今的情况下&#xff0c;似乎月薪过万这个标准已经成为衡量个人能力的一个标准了&#xff0c;尤其是现在互联网横行的时代&#xff0c;好像年入百万&#xff0c;年入千万就应该是属于大众的平均水平。 我不是…

kafka入门(四):消费者

消费者 (Consumer ) 消费者 订阅 Kafka 中的主题 (Topic) &#xff0c;并 拉取消息。 消费者群组&#xff08; Consumer Group&#xff09; 每一个消费者都有一个对应的 消费者群组。 一个群组里的消费者订阅的是同一个主题&#xff0c;每个消费者接收主题的一部分分区的消息…

大师学SwiftUI第18章Part2 - 存储图片和自定义相机

存储图片 在前面的示例中&#xff0c;我们在屏幕上展示了图片&#xff0c;但也可以将其存储到文件或数据库中。另外有时使用相机将照片存储到设备的相册薄里会很有用&#xff0c;这样可供其它应用访问。UIKit框架提供了如下两个保存图片和视频的函数。 UIImageWriteToSavedPh…

JAVA后端自学技能实操合集

JAVA后端自学技能实操 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习FastDFS使用docker安装FastDFS(linux)集成到springboot项目中 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习 FastDFS 组名&#xff1a;文件上传后所在的 st…