RHCE9学习指南 第13章 硬盘管理

新的硬盘首先需要对硬盘进行分区和格式化,首先了解一下硬盘的结构,如图13-1所示。
file
图13-1 磁盘上的磁道和扇区
硬盘的磁盘上有一个个的圈,每两个圈组成一个磁道。从中间往外发射线,把每个磁道分成一个个的扇区,每个扇区的大小是512B。为了更好理解咱们把所有磁盘拼接起来,如图13-2所示。
file
图13-2 分区是以扇区划分的
假设磁盘有10000个扇区,第一个分区从2048开始到6000,第二个分区从6001到8000,第三个分区从8001到10000。
每个扇区只能属于一个分区,不能同时属于多个分区。
第一个扇区比较特殊,叫作MBR(主引导记录)
分区的类型包括:主分区,扩展分区和逻辑分区,如图13-3所示。
file
图13-3 了解分区类型
一套房子出租,李四和王五从房东手中直接各租一间自住,这个属于主分区。
赵六从房东手中租过来一大间,但自己不住做起了二房东(扩展分区),然后隔成很多隔间。赵六租的那一大间就是扩展分区,大间里隔开的一些隔间,就是逻辑分区。
主分区:直接从硬盘上划分并可以直接格式化使用的分区。
扩展分区:直接从硬盘上划分,但是不直接使用的分区,需要在其上面划分更多个小分区。
逻辑分区:在扩展分区上划分的分区。
分区表记录主分区和扩展分区的信息,如同房东从李四、王五、赵六中收房租一样,但是收不到tom、bob等的房租,tom、bob等的房租由赵六来收,因为赵六是二房东。
每记录一个分区(主分区或扩展分区)则要消耗16B,所以分区表最多只能 记录4个分区,所以硬盘最多只能划分出来4个分区,且最多只能有一个扩展分区。
请关闭虚拟机server并自行为虚拟机添加一块scsi格式的硬盘,然后开机进入系统。

13.1 对磁盘进行分区

使用fdisk -l查看所有分区信息,命令如下所示。

[root@server ~]# fdisk -l
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa4e4e08设备       启动      起点      末尾      扇区 大小 Id 类型
/dev/sda1  *         2048 104859647 104857600  50G 83 Linux
/dev/sda2       104859648 113248255   8388608   4G 82 Linux swap / Solaris
[root@server ~]#

此命令可以查看系统所有硬盘的信息,从这里可以看到/dev/sda有两个分区/de/sda1和/dev/sda2,/dev/sdb没任何分区。如果想单独某硬盘的分区信息可以用fdisk -l /dev/硬盘即可,例如,想单独查看/dev/sda的信息,则用fdisk -l /dev/sda,命令如下所示。

[root@server ~]# fdisk -l /dev/sda
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa4e4e08设备       启动      起点      末尾      扇区 大小 Id 类型
/dev/sda1  *         2048 104859647 104857600  50G 83 Linux
/dev/sda2       104859648 113248255   8388608   4G 82 Linux swap / Solaris
[root@server ~]# 

这里可以获取到很多信息,例如,整个sda有多少个扇区,每个分区从哪个扇区开始到哪个扇区结束等。
下面开始练习分区,自行添加一个类型为SCSI大小为20G的分区。
分区的语法为fdisk /dev/硬盘,这里是对硬盘进行分区不是对分区再分区。

[root@server ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x737fabb4 的新 DOS 磁盘标签。命令(输入 m 获取帮助)

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

(1)p:打印分区表。
(2)n:添加一个分区。
(3)d:删除一个分区。
(4)l:列出分区类型。
(5)t:转发分区的类型。
(6)q:不保存直接退出。
(7)w:保存并退出。

查看现有分区信息,此处输入p,命令如下所示。

命令(输入 m 获取帮助):p #此处输入p用于打印分区表
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x737fabb4
命令(输入 m 获取帮助)

此处并没有看到/dev/sdb1, /dev/sdb2等内容,说明并不存在任何分区。
按n创建一个分区,命令如下所示。

命令(输入 m 获取帮助):n
分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p)

直接在硬盘上划分的分区有主分区(标记为p)和扩展分区(标记为e),逻辑分区(标记为字母l)只能在扩展分区上创建,且扩展分区最多只能创建一个扩展分区。
所以,在硬盘中没有扩展分区时,只能所以选择分区类型时只能选择p和e这两种。如果已经存在了扩展分区,就不能再创建第二个扩展分区了,但可以在扩展分区上创建逻辑分区,所以选择可选择的分区类型有p和l。
先创建主分区或创建扩展分区都可以,这里先创建主分区,输入p,按【Enter】键。主分区加扩展分区最多只能创建出来4个,所以给分配的编号只能是1-4,这里选择默认的1,然后按【Enter】键。
命令(输入 m 获取帮助):n

分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认  1):此处直接回车,使用默认的编号1

硬盘总共有41943039个扇区,第一个分区从哪个柱面开始,默认为2048,直接按【Enter】键,我们就从2048开始。

第一个扇区 (2048-41943039, 默认 2048): 按【Enter】键
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): N

这里N的位置得写一个结束点,假设我要创建2G的分区,从2048号柱面开始算,到哪个柱面结束能使得分区大小是2G呢?如图13-4所示。
file
图13-4 计算分区大小
我们现在算一下:2G=21024M=210241024K=2102410242扇区 (1扇区=0.5K),所以一共需要210241024*2=4194304个扇区,从2048开始算,所以最后一个扇区应该落在2048+4194304-1=4196351的位置,这样创建出来的分区就是2G,所以上图填写4196351。

第一个扇区 (2048-41943039, 默认 2048): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 4196351创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。命令(输入 m 获取帮助)

创建2G分区后,输入p查看分区信息,命令如下所示。

命令(输入 m 获取帮助):p...输出...
设备       启动  起点    末尾    扇区     大小 Id 类型
/dev/sdb1        2048   4196351 4194304   2G   83 Linux命令(输入 m 获取帮助)

可以看出,从2048开始,共4194304个扇区,在4196351这个位置结束,大小为2G。
但是这种创建分区的方法比较麻烦,可以先输入d,按【Enter】键,删除此分区,命令如下所示。

命令(输入 m 获取帮助):d 此处输入d表示删除分区
已选择分区 1
分区 1 已删除。命令(输入 m 获取帮助)

因为sdb1是唯一的分区,直接就删除的是sdb1,然后重复上面的方法重新创建分区,命令如下所示。

命令(输入 m 获取帮助):n
分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p):将使用默认回应 p。
分区号 (1-4, 默认  1): 
第一个扇区 (2048-41943039, 默认 2048): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 

因为并不需要关心分区到哪个柱面结束,只关心分区大小,所以这里可以写+2G,意思是从2048柱面开始划分一个2G大小的分区,命令如下所示。

第一个扇区 (2048-41943039, 默认 2048): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +2G创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。命令(输入 m 获取帮助)

然后输入p查看分区信息,命令如下所示。
命令(输入 m 获取帮助):p

	...输出...
设备       启动  起点    末尾    扇区    大小 Id 类型
/dev/sdb1        2048   4196351 4194304   2G  83 Linux命令(输入 m 获取帮助)

可以看到,与手动算出来的一样,通过这种方式划分分区就容易多了。
依次再创建一个主分区/dev/sda2大小为2G,命令如下所示。

命令(输入 m 获取帮助):p...输出...
设备       启动    起点    末尾    扇区 大小 Id 类型
/dev/sdb1          2048 4196351 4194304   2G 83 Linux
/dev/sdb2       4196352 8390655 4194304   2G 83 Linux命令(输入 m 获取帮助)

创建一个扩展分区/dev/sda4,把剩余所有空间全部给它(这里故意没有创建/dev/sda3),命令如下所示。

命令(输入 m 获取帮助):n
分区类型p   主分区 (2个主分区,0个扩展分区,2空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p):e 这里输入e表示创建一个扩展分区
分区号 (3,4, 默认  3): 4
第一个扇区 (8390656-41943039, 默认 8390656): 按【Enter】键
上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-41943039, 默认 41943039): 按【Enter】键创建了一个新分区 4,类型为“Extended”,大小为 16 GiB。命令(输入 m 获取帮助)

查看分区信息,命令如下所示。

命令(输入 m 获取帮助):p...输出...
设备       启动    起点     末尾     扇区 大小 Id 类型
/dev/sdb1          2048  4196351  4194304   2G 83 Linux
/dev/sdb2       4196352  8390655  4194304   2G 83 Linux
/dev/sdb4       8390656 41943039 33552384  16G  5 扩展命令(输入 m 获取帮助)

创建扩展分区后,就可以创建逻辑分区了,但我们看到了编号3并使用,所以现在还可以创建一个主分区,但是硬盘已经没有多余的空间,所以不能再创建主分区只能创建逻辑分区。逻辑分区的编号总是从5开始,命令如下所示。

添加逻辑分区 5
第一个扇区 (8392704-41943039, 默认 8392704): 按【Enter】键
上个扇区,+sectors 或 +size{K,M,G,T,P} (8392704-41943039, 默认 41943039): +2G创建了一个新分区 5,类型为“Linux”,大小为 2 GiB。命令(输入 m 获取帮助)

依照此方法再创建几个分区,命令如下所示。

设备       启动     起点     末尾     扇区 大小 Id 类型
/dev/sdb1           2048  4196351  4194304   2G 83 Linux
/dev/sdb2        4196352  8390655  4194304   2G 83 Linux
/dev/sdb4        8390656 41943039 33552384  16G  5 扩展
/dev/sdb5        8392704 12587007  4194304   2G 83 Linux
/dev/sdb6       12589056 16783359  4194304   2G 83 Linux
/dev/sdb7       16785408 20979711  4194304   2G 83 Linux

看上面最右侧两列id和类型,这两个是对应的。因为分区的作用不一样,有的可以直接格式化使用,有的用于做swap,有的用于做逻辑卷等。这些类型是可以转换的,输入字母l可以看到所有类型,如图13-5所示。
file
图13-5 分区类型代码
常见的分区类型如下。

(1)Linux:对应的Id为83,直接格式化使用的分区。
(2)swap:对应的Id为82,用于创建swap。
(3)lvm:对应的Id为8e,用于创建lv。
(4)raid:对应的Id为fd,用于创建fd。

例如,准备把/dev/sdb5配置成逻辑卷,先把/dev/sdb5的类型改成8e,操作如下。
先按t开始进行转换,命令如下所示。
命令(输入 m 获取帮助):t
分区号 (1,2,4-7, 默认 7):
然后输入要转换的分区好,这里输入5,然后按【Enter】键后输入要转换的类型8e,命令如下所示。

命令(输入 m 获取帮助):t
分区号 (1,2,4-7, 默认  7): 5
Hex 代码(输入 L 列出所有代码):8e已将分区“Linux”的类型更改为“Linux LVM”。命令(输入 m 获取帮助)

然后输入p查看分区信息,命令如下所示。
命令(输入 m 获取帮助):p

	...输出...
设备       启动     起点     末尾     扇区 大小 Id 类型
/dev/sdb1           2048  4196351  4194304   2G 83 Linux
/dev/sdb2        4196352  8390655  4194304   2G 83 Linux
/dev/sdb4        8390656 41943039 33552384  16G  5 扩展
/dev/sdb5        8392704 12587007  4194304   2G 8e Linux LVM
/dev/sdb6       12589056 16783359  4194304   2G 83 Linux
/dev/sdb7       16785408 20979711  4194304   2G 83 Linux命令(输入 m 获取帮助)

使用相同的方式把/dev/sdb6, /dev/sdb7的类型也转变为8e。
为了下一节做准备,把/dev/sdb2的类型改为swap类型,输入t,命令如下所示。

命令(输入 m 获取帮助):t
分区号 (1,2,4-7, 默认  7): 2
Hex 代码(输入 L 列出所有代码):82已将分区“Linux”的类型更改为“Linux swap / Solaris”。

然后输入p查看分区信息,命令如下所示。

命令(输入 m 获取帮助):p...输出...
设备       启动     起点     末尾     扇区 大小 Id 类型
/dev/sdb1           2048  4196351  4194304   2G 83 Linux
/dev/sdb2        4196352  8390655  4194304   2G 82 Linux swap / Solaris...输出...
命令(输入 m 获取帮助)
现在所做的一切并没有真的保存,如果不想保存直接退出,可以输入q并按【Enter】键,如果想保存并退出,可以输入w并按【Enter】键,命令如下所示。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioCtrl() 来重新读分区表。
正在同步磁盘。[root@server ~]# 

有时,需要执行partprobe /dev/sdb来刷新一下分区表。然后使用fdisk进行查看,命令如下所示。
[root@server ~]# fdisk -l /dev/sdb

	...输出...
设备       启动     起点     末尾     扇区 大小 Id 类型
/dev/sdb1           2048  4196351  4194304   2G 83 Linux
/dev/sdb2        4196352  8390655  4194304   2G 82 Linux swap / Solaris
/dev/sdb4        8390656 41943039 33552384  16G  5 扩展
/dev/sdb5        8392704 12587007  4194304   2G 8e Linux LVM
/dev/sdb6       12589056 16783359  4194304   2G 8e Linux LVM
/dev/sdb7       16785408 20979711  4194304   2G 8e Linux LVM
[root@server ~]# 

13.2 交换分区

在物理内存不够用的情况下,系统会把物理内存中的那些长时间没操作的数据释放出来,保存在交换分区(swap)中,这样物理内存中就有多余的空间,用于存放新的数据。
如果物理内存不够了可以使用swap分区,那么如果swap分区也不够了呢?我们就可以添加swap分区。下面就来讲讲如何管理swap分区。
查看当前系统中所有的swap分区,命令如下所示。

[root@server ~]# swapon -s
文件名				                类型		 大小	  已用	权限
/dev/sda2                           partition	4194300	   0	-2
[root@server ~]#

可以看到,当前/dev/sda2是交换分区,大小是4G。这里权限的是,如果有多个swap分区,优先使用哪个,数值越大越优先。查看swap分区也可以用命令cat /proc/swaps 。
下面准备把/dev/sdb2创建为swap分区。步骤如下。
第1步:把/dev/sdb2创建为swap分区,命令如下所示。
[root@server ~]# mkswap /dev/sdb2

正在设置交换空间版本 1,大小 = 2 GiB (2147479552  个字节)
无标签,UUID=96b078f8-6ca3-4aac-9af7-b37234b03a6c
[root@server ~]#

第2步:激活新创建的swap分区,命令如下所示。

[root@server ~]# swapon /dev/sdb2
[root@server ~]# swapon -s
文件名				         类型		大小	  已用	权限
/dev/sda2                    partition	4194300  	0	-2
/dev/sdb2                    partition	2097148		0	-3
[root@server ~]#

可以看到,此时已经有了两个交换分区了。其中/dev/sdb2的权限为-3,说明/dev/sda2更优先使用。如果想设置让/dev/sdb2更优先使用,可以调整/dev/sdb2的优先级。
第3步:关闭新创建的swap分区,命令如下所示。

[root@server ~]# swapoff /dev/sdb2
[root@server ~]#

第4步:激活swap分区,并指定优先级,命令如下所示。

[root@server ~]# swapon -s
文件名				类型		大小		已用	权限
/dev/sda2           partition	4194300		0		-2
/dev/sdb2           partition	2097148		0		2
[root@server ~]#

可以看到,/dev/sdb2的优先级是2,这个交换分区会优先使用。
上面设置的这个交换分区也只时临时生效,如果要让其重启系统之后仍然生效,就需要写入/etc/fstab中。
第5步:编辑/etc/fstab,在最后一行添加,命令如下所示。

[root@server ~]# tail -1 /etc/fstab
/dev/sdb1	none	swap	defaults,pri=2		0 	0
[root@server ~]#

上面每个字段用空格或tab隔开均可,第四列defaults后面的逗号两边没有空格。
如果不需要指定优先级,第四列直接写defaults即可。
如果/dev/sdb2当前没有激活,则在写入/etc/fstab之后,执行swapon -a即可。

作业

作业题在server2上完成。
准备工作:自行在server2上新添加一块类型为SCSI大小为20G的硬盘/dev/sdb。
作业1:在/dev/sdb上创建2个主分区,大小分别是2G。

作业2:在/dev/sdb上创建1个扩展分区,使用/dev/sdb剩余所有空间。

作业3:在/dev/sdb上创建3个逻辑分区,大小分别为2G。

作业4:把/dev/sdb2创建为交换分区,要求重启系统后继续生效,并要求当物理内存不够时优先使用/dev/sdb2。

作业5:把/dev/sdb5、/dev/sdb6、/dev/sdb7的分区类型转变为LVM类型的。

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

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

相关文章

Python高级用法:生成器(generator)

生成器(generator) 生成器是一种返回生成序列的方法,与直接使用列表等方式返回序列的方式不同的是,他的生成可以是无限的。 生成器可以与next搭配使用,可以被看作是一种特殊的迭代器。 yield语句 yield一般与循环相…

UDP套接字搭建简易服务器与客户端

使用UDP套接字搭建 文章目录 使用UDP套接字搭建前言一、基本结构二、使用步骤1.服务器端2.客户端 三、效果展示总结 前言 这次较上个版本《Python 网络编程之搭建简易服务器和客户端》https://only-me.blog.csdn.net/article/details/135251171增加了: UDP协议来进…

机器学习部分相关概念

数据集(Data Set)即数据的集合,每一条单独的数据被称为样本(Sample)。 对于每个样本,它通常具有一些属性(Attribute)或者特征(Feature), 特征所具体取得值被称为特征值(Feature Value)。 西瓜数据集 色泽根蒂纹理青绿稍蜷模糊乌黑蜷缩清晰 …

学Python的正确顺序千万别弄反了,到时候后悔就来不及了

学Python的正确顺序:从基础到高级,步步为营 在当今数字化时代,Python已成为最受欢迎的编程语言之一。它不仅广泛应用于数据分析、人工智能和Web开发等领域,还为初学者提供了一个友好且功能强大的平台。然而,学习Python…

matalb实践(十二):减肥

1.题目 2.解答 2.1模型假设 1.体重增加正比于吸收的热量,平均每8000kcal增加体重1kg 2.身体正常代谢引起的体重减少正比于体重,每周每千克体重消耗热量一般在200kcal至320kcal之间,且因人而异,这相当于体重70kg的人每天消耗2000k…

【Spark精讲】一文讲透Spark RDD

MapReduce的缺陷 MR虽然在编程接口的种类和丰富程度上已经比较完善了,但这些系统普遍都缺乏操作分布式内存的接口抽象,导致很多应用在性能上非常低效 。 这些应用的共同特点是需要在多个并行操 作之间重用工作数据集 ,典型的场景就是机器学习…

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 📲🔌 构建离线应用:Apollo…

ssm基于web 的个人时间管理系统+vue论文

基于web 的个人时间管理系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的个人时间信息管理模式,采用人工登记的方式保存相关数据,这种以人…

【数据结构】排序之交换排序(冒泡 | 快排)

交换目录 1. 前言2. 交换排序3. 冒泡排序3.1 分析3.2 代码实现 4. 快速排序4.1 hoare版本4.1.1 分析4.1.2 hoare版本代码 4.2 挖坑法4.2.1 分析4.2.2 挖坑法代码实现 4.3 前后指针版本4.3.1 分析4.3.2 前后指针版本代码实现 1. 前言 在之前的博客中介绍了插入排序,…

Linux基础知识学习2

tree命令的使用 可以看到dir2目录下的这些文件,要想显示dir2的具体结构,可用tree命令 mv命令 它可以实现两个功能 1.将文件移动到另一个目录中 2.对某一个文件进行重命名 1.将文件移动到另一个目录中 这里将dir1中的2.txt移动到他的子目录dir3中 执行…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年,我是博主那一脸阳光,由我来给大家介绍C语言的数组的详解。 在C语言中,数组是一种极其重要的数据结构,它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用,开发者能够高效地处理大量…

超真实随身WiFi测评,你确定不看一下?随身WiFi靠谱吗? 看完这篇文章你就懂了?随身WiFi真实评测

用了一年多的格行随身wifi,屏幕都磨花了。直接看图,都是自己实测! 设备是去年买的,到现在也快1年了,一直有朋友蹲后续,现在把后续给大家!到底是大牌子,确定是不跑路的随身wifi&…

Vue独立组件开发-递归组件

文章目录 一、前言二、实现三、总结四、最后 一、前言 递归组件就是指组件在模板中调用自己。 二、实现 开启递归组件的必要条件&#xff0c;就是在组件中设置一个 name 选项。 <template><div><my-component></my-component></div> </te…

提取 PE 文件的各种信息

前段时间项目需要实现对 Windows PE 文件版本信息的提取&#xff0c;如文件说明、文件版本、产品名称、版权、原始文件名等信息。获取这些信息在 Windows 下当然有一系列的 API 函数供调用&#xff0c;简单方便。 我们先看一下PE文件结构&#xff0c;PE文件由DOS首部&#xff0…

2023-12-21 LeetCode每日一题(美丽塔 II)

2023-12-21每日一题 一、题目编号 2866. 美丽塔 II二、题目链接 点击跳转到题目位置 三、题目描述 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i &#xff0c;高度为 heights[i] 。 如果以下条件满足&a…

linux驱动(一):led

本文主要探讨210的led驱动相关知识。 驱动 操作系统驱动硬件的代码,驱动上层是系统调用API,下层是硬件 宏内核&#xff1a;内核整体上为一个过程实现,运行在同一地址空间,相互调用简单高效 微内核&#xff1a;功能为独立过程,过程间通过IPC通信 …

【华为OD机试真题2023CD卷 JAVAJS】测试用例执行计划

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 测试用例执行计划 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 某个产品当前迭代周期内有N个特性()需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其ID作为下标进行标识。 设计了M个测试用…

在Linux运行LaTeX

共有三个步骤1. 装LaTexTeX Live - TeX Users Group 下载对应版本安装包安装 文件比较大&#xff0c;这步花的时间多一点&#xff0c;不过也不会太多&#xff0c;感觉5分钟十分钟的样子吧 2. 装TexStidio 这一步是安装一个类似在windows系统下的TaTeX GUI软件 图标是这样3. 配置…

Tensorflow2.X的GPU版框架最快最稳搭建方法

一、环境基础 Windows10以上 已装Anaconda 支持GPU 二、搭建步骤 1. 在Anaconda中创建并进入虚拟环境 conda create -n envname python3.8 conda activate envname 注意&#xff1a;envname 替换为你自己想命名的&#xff0c;下文将以“Ljdenv”出现 2.安…

【实用工具】Tmux使用指南

Tmux 三个重要概念 session&#xff08;会话&#xff09;、window&#xff08;窗口&#xff09;、pane&#xff08;面板&#xff09; 一个会话可以有多个窗口&#xff0c;一个窗口可以划分为多个面板 注意在tmux中使用快捷命令的话&#xff0c;需要加上前缀ctrlb 关于session的…