Linux虚拟化————KVM

1、安装kvm虚拟化套件

[root@bogon ~]# yum -y install virt*

2、启动服务

[root@bogon ~]# systemctl start libvirtd
[root@bogon ~]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; preset: disabled)
     Active: active (running) since Fri 2024-03-15 18:27:06 CST; 1s ago
......

libvirtd:可以管理虚拟化

3、命令行删除默认的Linux bridge

查看虚拟网桥,这个网桥是在安装虚拟化软件之后会自动创建出来的

[root@bogon ~]# ip a show virbr0 
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:2d:af:d0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

安装管理libvirt-client,可以使用这个来管理提供的网桥

[root@bogon ~]# yum -y install libvirt-client
[root@bogon ~]# virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yess

清理网桥

[root@bogon ~]# virsh net-undefine default 
Network default has been undefined

[root@bogon ~]# virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   no          no

4、通过nmcli创建Linux bridge

[root@bogon ~]# nmcli connection add con-name vm-bridge ifname vm-bridge type bridge ipv4.method disabled ipv6.method ignore 

5、关闭selinux和防火墙

[root@bogon ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
[root@bogon ~]# setenforce 0
[root@bogon ~]# systemctl disable firewalld.service --now

6、使用cloud镜像

KVM虚拟化创建的虚拟机,虚拟磁盘的后缀名叫做qcow2,当你通过图形创建了一个虚拟机之后,将会生成一个qcow2的虚拟机磁盘文件,里面就有你安装的操作系统,但是作为一个运维人员不可能每次都装系统,一般多多少少都会偷点懒,所以就出现了一个叫做模板化部署虚拟机的方法

无论是ubuntu还是centos还是fedora还是debian这类主流的linux发行版本,官方都会给你qcow2的模板

AlmaLinux:Generic Cloud (Cloud-init) | AlmaLinux Wiki

centos-steam:CentOS Cloud images

rocky:Cloud Images | Rocky Linux

7、下载cloud镜像

[root@bogon ~]# wget https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2

8、创建虚拟机

通过cloud image使用命令行创建虚拟机

下载virt-install

[root@bogon ~]# yum -y install virt-install
[root@bogon ~]# mkdir /opt/image_qcow2 -p
[root@bogon ~]# mv AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2 /opt/image_qcow2/

创建虚拟机

[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2,bus=virtio --network bridge=vm-bridge,model=virtio --noautoconsole
WARNING  KVM acceleration not available, using 'qemu'
WARNING  Requested memory 1024 MiB is less than the recommended 1536 MiB for OS almalinux9

Starting install...
Creating domain...                                                                    |         00:00:00     
Domain creation completed.
[root@bogon ~]# virsh list
 Id   Name          State
-----------------------------
 1    AlmaLinux-1   running
  • --memory:虚拟机内存

  • --vcpus:虚拟机cpu

  • --import:将现有虚拟机导入

  • --os-variant:虚拟机类型

  • --disk:磁盘路径

  • bus=virtio:设置驱动磁盘类型可以识别成为vda,vdb等,如果不加,就会识别成sda,sdb

  • --network:设置网卡

  • model=virtio:设置网卡驱动,使用virtio

  • --noautoconsole:设置命令行启动

进入控制台

[root@bogon ~]# virsh console AlmaLinux-1
Connected to domain 'AlmaLinux-1'
Escape character is ^] (Ctrl + ])

Ctrl + ]可以退出控制台

已经创建了虚拟机,我们也能访问到虚拟机的控制台,但是我们进不去,我们只能在外面蹭蹭,所以呢,究极难受,因为我们不知道root用户的密码

9、删除虚拟机

virsh destroy [name]:关机

virsh undefine [name]:删除

[root@bogon ~]# virsh list
 Id   Name          State
-----------------------------
 1    AlmaLinux-1   running
[root@bogon ~]# virsh destroy AlmaLinux-1
Domain 'AlmaLinux-1' destroyed
[root@bogon ~]#  virsh undefine AlmaLinux-1
Domain 'AlmaLinux-1' has been undefined
[root@bogon ~]# virsh list
 Id   Name   State
--------------------

10、自定义cloud image

qcow2文件是可以修改的,但是需要工具,这个工具的名字叫做libguestfs

下载libguestfs

[root@bogon ~]# yum -y install libguestfs libguestfs-tools-c

修改qcow2密码

[root@bogon ~]# virt-customize -a /opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2 --root-password password:000000  --selinux-relabel
[   0.0] Examining the guest ...
[  55.5] Setting a random seed
[  55.6] Setting the machine ID in /etc/machine-id
[  55.6] Setting passwords
[  70.1] SELinux relabelling
[ 183.0] Finishing off

拉起虚拟机

[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2,bus=virtio --network bridge=vm-bridge,model=virtio --noautoconsole
WARNING  KVM acceleration not available, using 'qemu'
WARNING  Requested memory 1024 MiB is less than the recommended 1536 MiB for OS almalinux9

Starting install...
Creating domain...                                                                    |         00:00:00     
Domain creation completed.

进入虚拟机

...
localhost login: root
Password: 
[root@localhost ~]#

11、配置网络

配置虚拟机AlmaLinux-1的网络

[root@localhost ~]# nmcli con add con-name static-eth0 type ethernet ipv4.address 172.24.10.20/24 ipv4.method man
[root@localhost ~]# ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:78:34:cc brd ff:ff:ff:ff:ff:ff
    altname enp1s0
    inet 172.24.10.20/24 brd 172.24.10.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4613:29fd:e79:e20a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

配置host的网络

[root@bogon ~]# nmcli connection modify vm-bridge ipv4.address 172.24.10.3/24 ipv4.method manual 
[root@bogon ~]# nmcli connection up vm-bridge 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@bogon ~]# ip a show vm-bridge 
3: vm-bridge: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 172.24.10.3/24 brd 172.24.10.255 scope global noprefixroute vm-bridge
       valid_lft forever preferred_lft forever

由于网桥是十分脆弱的,当改了网桥之后,就需要重新桥接上去

简单的方式,重启

[root@bogon ~]# virsh destroy AlmaLinux-1
[root@bogon ~]# virsh start AlmaLinux-1

12、重新拉起虚拟机,配置额外的磁盘空间

创建lv

[root@bogon ~]# pvcreate /dev/sda 
  Physical volume "/dev/sda" successfully created.
[root@bogon ~]# vgcreate data /dev/sda 
  Volume group "data" successfully created
[root@bogon ~]# lvcreate -n data -L 9G data
  Logical volume "data" created.

重新拉起虚拟机

[root@bogon ~]# virsh destroy AlmaLinux-1
Domain 'AlmaLinux-1' destroyed
[root@bogon ~]# virsh undefine AlmaLinux-1 
Domain 'AlmaLinux-1' has been undefined
[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2,bus=virtio --disk path=/dev/data/data,bus=virtio --disk path=/dev/sdb,bus=virtio  --network bridge=vm-bridge,model=virtio --noautoconsole
data
[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2,bus=virtio --disk path=/dev/data/data,bus=virtio --disk path=/dev/sdb,bus=virtio  --network bridge=vm-bridge,model=virtio --noautoconsole
data
[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2,bus=virtio --disk path=/dev/data/data,bus=virtio --disk path=/dev/sdb,bus=virtio  --network bridge=vm-bridge,model=virtio --noautoconsole
WARNING  Requested memory 1024 MiB is less than the recommended 1536 MiB for OS almalinux9

Starting install...
Creating domain...                                                                    |         00:00:00     
Domain creation completed.

13、将cloud镜像文件的根分区扩大

因为根分区是标准的分区,所以没办法使用逻辑卷的方法进行扩容,所以我们要用到一个工具叫做virtresize

删除虚拟机

[root@bogon ~]# virsh destroy AlmaLinux-1 
Domain 'AlmaLinux-1' destroyed

[root@bogon ~]#  virsh undefine AlmaLinux-1
Domain 'AlmaLinux-1' has been undefined

查看qcow2的磁盘情况

[root@bogon ~]# virt-filesystems --long -h --all -a /opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2 
Name       Type        VFS      Label  MBR  Size  Parent
/dev/sda1  filesystem  unknown  -      -    1.0M  -
/dev/sda2  filesystem  vfat     -      -    200M  -
/dev/sda3  filesystem  xfs      -      -    448M  -
/dev/sda4  filesystem  xfs      -      -    9.2G  -
/dev/sda1  partition   -        -      -    1.0M  /dev/sda
/dev/sda2  partition   -        -      -    200M  /dev/sda
/dev/sda3  partition   -        -      -    512M  /dev/sda
/dev/sda4  partition   -        -      -    9.3G  /dev/sda
/dev/sda   device      -        -      -    10G   -

创建一个19G的qcow2文件,用来“夺舍”

[root@bogon ~]# qemu-img create -f qcow2 /opt/os_qcow2/os.qocow2 19G
Formatting '/opt/os_qcow2/os.qocow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=20401094656 lazy_refcounts=off refcount_bits=16

查看创建的这个qcow2文件

[root@bogon ~]# qemu-img info /opt/os_qcow2/os.qcow2 
image: /opt/os_qcow2/os.qcow2
file format: qcow2
virtual size: 19 GiB (20401094656 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false
Child node '/file':
    filename: /opt/os_qcow2/os.qcow2
    protocol type: file
    file length: 192 KiB (197120 bytes)
    disk size: 196 KiB
    Format specific information:
        extent size hint: 1048576

使用新创建的9G的qcow2文件来替换原来的qcow2文件,这里的磁盘是指qcow2里的磁盘

[root@bogon ~]# virt-resize --expand /dev/sda1 /opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2  /opt/os_qcow2/os.qcow2 
[   0.0] Examining /opt/image_qcow2/AlmaLinux-9-GenericCloud-9.3-20231113.x86_64.qcow2
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
**********

Summary of changes:

virt-resize: /dev/sda1: This partition will be resized from 1.0M to 9.0G.

virt-resize: /dev/sda2: This partition will be left alone.

virt-resize: /dev/sda3: This partition will be left alone.

virt-resize: /dev/sda4: This partition will be left alone.

**********
[  21.2] Setting up initial partition table on /opt/os_qcow2/os.qcow2
[  35.6] Copying /dev/sda1
[  35.6] Copying /dev/sda2
[  36.8] Copying /dev/sda3
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
[  40.7] Copying /dev/sda4
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00

virt-resize: Resize operation completed with no errors.  Before deleting 
the old disk, carefully check that the resized disk boots and works 
correctly.

查看新的文件,可以看到虚拟磁盘变大了

[root@bogon ~]# virt-filesystems --long -h --all -a /opt/os_qcow2/os.qcow2 
Name       Type        VFS      Label  MBR  Size  Parent
/dev/sda1  filesystem  unknown  -      -    9.0G  -
/dev/sda2  filesystem  vfat     -      -    200M  -
/dev/sda3  filesystem  xfs      -      -    448M  -
/dev/sda4  filesystem  xfs      -      -    9.2G  -
/dev/sda1  partition   -        -      -    9.0G  /dev/sda
/dev/sda2  partition   -        -      -    200M  /dev/sda
/dev/sda3  partition   -        -      -    512M  /dev/sda
/dev/sda4  partition   -        -      -    9.3G  /dev/sda
/dev/sda   device      -        -      -    19G   -

使用新的qcow2拉起虚拟机

[root@bogon ~]# virt-install --name AlmaLinux-1 --memory 1024 --vcpus 1 --import --os-variant almalinux9 --disk path=/opt/os_qcow2/os.qcow2,bus=virtio --disk path=/dev/data/kvm,bus=virtio   --network bridge=vm-bridge,model=virtio --noautoconsole
WARNING  Requested memory 1024 MiB is less than the recommended 1536 MiB for OS almalinux9

Starting install...
Creating domain...                                                                    |         00:00:00     
Domain creation completed.

14、XML文件

[root@bogon ~]# ll /etc/libvirt/qemu/AlmaLinux-1.xml 
-rw------- 1 root root 7110 Apr 11 08:26 /etc/libvirt/qemu/AlmaLinux-1.xml

如果virsh destory之后再virsh undefine虚拟机,这个文件就会消失。

如果你的xml文件做过高度定制化修改,那么一定要备份,下次拉起虚拟机就应该是用virsh define/path/xxx.xml,因为有一些xml文件支持的高级部分并不被virt-install的所有参数所支持。

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

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

相关文章

翻页电子图书制作小技巧分享给你

当今社会&#xff0c;二维码已经成为了信息传递的重要方式之一&#xff0c;其在电子商务、广告营销、活动推广等领域广泛应用。而如何将二维码巧妙地融入电子画册中&#xff0c;制作出高端、具有吸引力的作品&#xff0c;成为了许多设计师和营销人员关注的焦点 但是很多人却不知…

ABeam×StartUp丨蓝因机器人访问ABeam旗下德硕管理咨询(深圳)新创部门,展开合作交流

近日&#xff0c;深圳蓝因机器人科技有限公司&#xff08;以下简称“蓝因机器人”&#xff09;创始人陈卜铭先生来访ABeam旗下德硕管理咨询&#xff08;深圳&#xff09;有限公司&#xff08;以下简称“ABeam-SZ”&#xff09;&#xff0c;与新创部门展开合作交流。 交流中&am…

六西格玛管理培训:我的转变与成长之旅

4月初&#xff0c;我参与了天行健咨询的六西格玛管理培训&#xff0c;这次经历不仅极大地提升了我的工作效率&#xff0c;还帮助我在工作中实现了卓越。现在&#xff0c;我想分享一些我在这次培训中的学习心得和实践经验&#xff0c;希望能对正在寻求提升绩效和卓越之路的大家有…

【无线通信】OQPSK

调制 sps 8; RolloffFactor 0.2; FilterSpanInSymbols 10;bits randi([0, 1], 224*8, 1); % 1792symbols bits*2 - 1; % 1792 re -symbols(2:2:end); % 896 im -symbols(1:2:end); % 896pFilterTx comm.RaisedCosineTransmitFilter(...Shape, Square root, ...Rollo…

MySQL主从结构搭建

说明&#xff1a;本文介绍如何搭建MySQL主从结构&#xff1b; 原理 主从复制原理如下&#xff1a; &#xff08;1&#xff09;master数据写入&#xff0c;更新binlog&#xff1b; &#xff08;2&#xff09;master创建一个dump线程向slave推送binlog&#xff1b; &#xff…

GoJudge环境部署本地调用云服务器部署go-judge判题机详细部署教程go-judge多语言支持

前言 本文基于go-judge项目搭建&#xff0c;由于go-judge官网项目GitHub - criyle/go-judge: Sandbox Server in REST / gRPC API. Based on Linux container technologies.&#xff0c;资料太少&#xff0c;而且只给了C语言的调用样例&#xff0c;无法知道其他常见语言比如&am…

Python基础06-日期和时间的操作方法

在Python中处理日期和时间是编程中常见的需求&#xff0c;无论是安排任务、记录日志还是分析数据。本文将介绍如何在Python中获取当前日期和时间、创建特定日期和时间、格式化日期和时间、解析字符串中的日期和时间、使用时间差、比较日期和时间、从日期/时间中提取组件、处理时…

uni-app开发canvas绘图画画,如何实现后退功能

在uni-app中使用canvas进行绘图时&#xff0c;实现后退功能通常意味着你需要保存用户的每一步操作&#xff0c;然后提供一个机制来撤销最近的步骤。下面是一个基本的实现思路&#xff1a; 保存绘图步骤&#xff1a; 每当用户在canvas上绘制时&#xff08;比如通过touchMove事件…

出海不出局 | 小游戏引爆高线市场,新竞争态势下的应用出海攻略

出海小游戏&#xff0c;出息了&#xff01; 根据 Sensor Tower 近期发布的“2024 年 3 月中国手游收入 TOP30”榜单&#xff0c;出海小游戏在榜单中成了亮眼的存在。 其中&#xff0c;《菇勇者传说》3 月海外收入环比增长 63%&#xff0c;斩获出海手游收入增长冠军&#xff0c…

学习经验分享【33】YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 / RTDETR 基于 Pyside6 的图形化界面

大论文可以写两章关于算法创新模型&#xff0c;最后一章可以写对前两章提出方法进行封装&#xff0c;利用PyQT5搭建YOLOv5可视化界面&#xff0c;并打包成exe程序&#xff0c;构建检测平台实现简单的应用。用来凑大论文的字数和工作量&#xff0c;是简单又快速的方法&#xff0…

《龙之谷》游戏(客户端+服务端+视频架设教程+工具),本人收集的8个版本,云盘下载

龙之谷这个游戏本人觉得挺好玩的。你们可以下载研究一下看看&#xff0c;有能力的话&#xff0c;可以提取服务端文件出来&#xff0c;做成外网&#xff0c;让大家一起玩。。。。 《龙之谷》游戏&#xff08;客户端服务端视频架设教程工具&#xff09;&#xff0c;本人收集的8个…

WEB前端-笔记(三)

目录 一、事件 1.1类型 1.2对象 1.3页面加载事件 1.4滚动事件 1.5尺寸事件 1.6捕获&冒泡事件 1.7阻止表单提交 1.8全选案例 1.9事件委托 ​编辑 1.10client&offset 1.11换取元素的位置 1.12创建节点 1.13克隆节点 1.14删除节点 1.15setTimeout 1.16s…

【后端】PyCharm的安装指引与基础配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、PyCharm是什么二、PyCharm安装指引安装PyCharm社区版安装PyCharm专业版 三、配置PyCharm&#xff1a;四、总结 前言 随着开发语言及人工智能工具的普及&am…

MS1000TA超声波测量模拟前端

产品简述 MS1000TA 是一款超声波测量模拟前端芯片&#xff0c;广 泛应用于汽车工业和消费类电子。该芯片具有高度 的灵活性&#xff0c;发射脉冲个数、频率、增益及信号阈值 均可配置。同时&#xff0c;接收通道参数也可以灵活配置&#xff0c; 从而适用于不同尺寸容器、不…

Java——继承与组合

和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果。组合并没有涉及到特殊的语法 (诸如 extends 这样的关键字), 仅仅是将一个类的实例作为另外一个类的字段。 继承表示对象之间是is-a的关系&#xff0c;比如&#xff1a;狗是动物&#xff0c;猫是动…

ROM修改进阶教程------安卓7_____安卓13去除签名验证操作步骤解析

同类博文: 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】_qcn改区域锁-CSDN博客 安卓系列机型rom修改。如果你删减了系统相关的app。那么严重会导致开机系统卡米 定屏等问题。这类一般都是系统签名验证导致的。而破解签名验证一般都是修改…

计算机java项目|springboot校园一卡通

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、Python项目、前端项目、人工智能与大数据、简…

【Linux】文件系统——那就浅聊一下吧

前言 在上一篇文件描述符详解中谈论的都是打开的文件&#xff0c;但是在我们的系统中不仅有打开的文件还有许多未打开的文件&#xff0c;那么这些未打开的文件又该如何理解呢?阅读完本篇文章相信你会得到答案。 如果觉得文章内容对你有所帮助的话&#xff0c;可以给博主一键三…

请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+l到最后的字符移到字符串的前部。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

PLSQL数据库

目录 什么是PLSQL数据库 PL数据库的实现方法 PL数据库的基本语法 1.作用 2.语法 3.赋值输出 4.引用 5.异常处理 6.if 判断 7.loop循环 8.while循环 9.for循环 10.游标 11.参数游标 12.索引 13.分区表 什么是PLSQL数据库 PL/SQL&#xff08;Procedure Language/…
最新文章