这是一个全面的 virsh 命令备忘单: virsh 是 KVM 虚拟机的命令管理用户界面。virsh 可用于创建、暂停、重新启动和关闭域。此外,virsh 可用于列出您的虚拟化管理程序平台中可用的当前域。

virsh 与 Libvirt 交互,后者是一个旨在提供长期稳定的 C API 的库。目前支持 Xen、QEMU、KVM、LXC、OpenVZ、VirtualBox 和 VMware ESX。

Virsh 命令备忘单

在这个 virsh 命令备忘单中,我将向您展示最常用的 virsh 命令来管理在 KVM 或 Xen Hypervisor 上运行的来宾虚拟机。

大多数virsh用法的基本结构是:

$ virsh [OPTION]... <command> <domain> [ARG]...

Virsh 显示节点信息:

这是我们的 virsh 命令备忘单上的第一项。这将显示主机节点信息和支持虚拟化过程的机器。

# virsh nodeinfo
CPU 型号:        x86_64
CPU:               2
CPU 频率:        2790 MHz
CPU socket:        2
每个 socket 的内核数: 1
每个内核的线程数: 1
NUMA 单元:       1
内存大小:      3826180 KiB

列出操作系统变体

要获取--os-variant运行以下命令的值:

$ osinfo-query os

Virsh 列出所有域

要列出非活动域和活动域,请使用以下命令:

# virsh list --allId   名称             状态
------------------------------    CentOS-Stream    关闭-    centos-stream8   关闭

仅列出活动域

要使用virsh 命令仅列出活动域 ,请使用:

# virsh listId   名称   状态
-------------------

Virsh 重命名域

句法:

virsh domrename currentname  newname

列出可用域

# virsh list --allId   名称             状态
------------------------------    CentOS-Stream    关闭-    centos-stream8   关闭# virsh domrename CentOS-Stream CentOS-Stream-New
Domain successfully renamed# virsh list --allId   名称                状态
---------------------------------    CentOS-Stream-New   关闭-    centos-stream8      关闭

我们已经将域的名称从CentOS-Stream更改为CentOS-Stream-New

Virsh 更改域启动盘

通过传递名称来编辑域:

virsh  edit domain

向下滚动直到<devices>部分并修改以下行的值:

<source file=''/>

例子

<source file='/var/lib/libvirt/images/apacheserver01.qcow2'/>

Virsh 启动虚拟机

这是一个关于如何使用 virsh 命令启动来宾虚拟机的示例。我们将启动 test 上面显示的域:

$ sudo virsh start test
Domain test started$ sudo virsh list      Id    Name                           State----------------------------------------------------3     test                           running

Virsh 自动启动虚拟机

要将 vm 设置为在系统启动时自动启动,请执行以下操作:

$ sudo virsh autostart test
Domain test marked as autostarted$ sudo virsh dominfo test
Id:             9
Name:           test
UUID:           a943ed42-ba62-4270-a41d-7f81e793d754
OS Type:        hvm
State:          running
CPU(s):         2
CPU time:       144.6s
Max memory:     2048 KiB
Used memory:    2048 KiB
Persistent:     yes
Autostart:      enable
Managed save:   no
Security model: none
Security DOI:   0

密切关注该选项 Autostart: enable

Virsh 自动启动禁用

要禁用虚拟机的自动启动功能:

$ virsh autostart --disable testDomain test unmarked as autostarted$ virsh dominfo testId:             -Name:           testUUID:           a943ed42-ba62-4270-a41d-7f81e793d754OS Type:        hvmState:          shut offCPU(s):         2Max memory:     2048 KiBUsed memory:    2048 KiBPersistent:     yesAutostart:      disableManaged save:   noSecurity model: noneSecurity DOI:   0

virsh 停止虚拟机,virsh 关闭虚拟机

要优雅地关闭正在运行的虚拟机,请使用:

$ sudo virsh shutdown test
Domain test is being shutdown$ sudo virsh listId    Name                           State----------------------------------------------------

Virsh 强制关闭虚拟机

您可以使用以下命令强制关闭活动域:

$ sudo virsh destroy test

Virsh 停止所有正在运行的虚拟机

如果您想关闭所有正在运行的域,只需发出以下命令:

$ for i in `sudo virsh list | grep running | awk '{print $2}'` dosudo virsh shutdown $i
done

Virsh 重启虚拟机

要重新启动名为 的虚拟机 test,使用的命令是:

sudo virsh reboot test

Virsh 删除虚拟机

要彻底删除 vm 及其存储列,请使用如下所示的命令。该域 test 应替换为要删除的实际域。

sudo virsh destroy test 2> /dev/null
sudo virsh undefine  test
sudo virsh pool-refresh default
sudo virsh vol-delete --pool default test.qcow2

在这个例子中,存储卷被命名为 /var/lib/libvirt/images/test.qcow2

您还可以将 undefine 与–remove-all-storage选项一起使用:

virsh undefine test --remove-all-storage

Virsh 创建一个虚拟机

如果你想用 virsh 创建一个新的虚拟机,要使用的相关命令是virt-install. 这是至关重要的,不能错过 virsh 命令备忘单库。下面的示例将从 CentOS 7 ISO 映像安装一个新的操作系统。

sudo virt-install \
--name centos7 \
--description "Test VM with CentOS 7" \
--ram=1024 \
--vcpus=2 \
--os-type=Linux \
--os-variant=rhel7 \
--disk path=/var/lib/libvirt/images/centos7.qcow2,bus=virtio,size=10 \
--graphics none \
--location $HOME/iso/CentOS-7-x86_64-Everything-1611.iso \
--network bridge:virbr0 \
--console pty,target_type=serial -x 'console=ttyS0,115200n8 serial'

Virsh 连接到虚拟机控制台

要连接到访客控制台,请使用以下命令:

$ sudo virsh console test

如果提供的域存在活动控制台会话,这将返回失败消息。要解决此运行:

$ sudo virsh console test --force

Virsh 编辑 vm xml 文件

要编辑 vm xml 文件,请使用:

$ sudo EDITOR=vim
$ virsh edit test

使用 nano 文本编辑器

$ sudo EDITOR=nano
$ virsh edit test

Virsh 挂起虚拟机,virsh 恢复虚拟机

要挂起名为 testwith virsh 命令的来宾,请运行:

$ sudo virsh suspend test
Domain test suspended

注意:当域处于挂起状态时,它仍会消耗系统 RAM。来宾挂起时不会发生磁盘和网络 I/O。

恢复访客虚拟机:

使用 resume 选项使用 virsh 恢复挂起的客户机:

$ sudo virsh resume test
Domain test resumed

Virsh 保存虚拟机

使用 virsh 命令将虚拟机的当前状态保存到文件中:

语法是:

$ sudo virsh save test test.saved
Domain test saved to test.save$ ls -l test.save
-rw------- 1 root root 328645215 Mar 18 01:35 test.saved

恢复保存的虚拟机

从文件中恢复保存的虚拟机:

$ sudo virsh restore test.save
Domain restored from test.save$ sudo virsh listId    Name                           State----------------------------------------------------7     test                           running

Virsh 管理卷

在这里,我们将介绍如何创建存储卷、将其附加到 vm、将其从 vm 分离以及如何删除卷。

Virsh 创建卷

要在默认存储池上创建一个名为 test_vol2 的 2GB 卷,请使用:

$ sudo virsh vol-create-as default test_vol2.qcow2 2G
Vol test_vol2.qcow2 created$ sudo du -sh /var/lib/libvirt/images/test_vol2.qcow2
2.0G/var/lib/libvirt/images/test_vol2.qcow2
  • 默认值:是池名称。
  • test_vol2:这是卷的名称。
  • 2G:这是卷的存储容量。

列出卷

sudo virsh vol-list --pool default
sudo virsh vol-list --pool images

Virsh 将卷附加到 vm

要将上面创建的卷附加到 vm 测试,请运行:

$ sudo virsh attach-disk --domain test \
--source /var/lib/libvirt/images/test_vol2.qcow2 \
--persistent --target vdb
  • --persistent:使实时更改持久化
  • --target vdb: 磁盘设备的目标

您可以确认该卷已作为块设备添加到 vm /dev/vdb

$ ssh test
Last login: Fri Mar 17 19:30:54 2017 from gateway
[root@test ~]# [root@test ~]# lsblk --output NAME,SIZE,TYPE
NAME              SIZE TYPE
sr0              1024M rom
vda                10G disk
├─vda1              1G part
└─vda2              9G part├─cl_test-root    8G lvm└─cl_test-swap    1G lvmvdb                 2G disk

显示如何创建和附加辅助虚拟磁盘的示例:

export VM=test-vm
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/${VM}-disk2.qcow2 20gsudo virsh attach-disk  \--source /var/lib/libvirt/images/${VM}-disk2.qcow2 \--target vdb \--persistent \--subdriver qcow2 \--driver qemu \--type disk

虚拟机上的 Virsh 分离卷

要将上面的卷 test_vol2 从 vm 测试中分离出来:

$ sudo virsh detach-disk --domain test --persistent --live --target vdb
Disk detached successfully$ ssh test
Last login: Sat Mar 18 01:52:33 2017 from gateway
[root@test ~]#
[root@test ~]# lsblk --output NAME,SIZE,TYPE
NAME SIZE TYPE
sr0 1024M rom
vda 10G disk
├─vda1 1G part
└─vda2 9G part
├─cl_test-root 8G lvm
└─cl_test-swap 1G lvm
[root@test ~]#

您确实可以从此输出确认设备 /dev/vdb 已分离

请注意,您可以使用 qemu-img 命令直接为 vm 增加磁盘映像,这将如下所示:

$ sudo qemu-img resize /var/lib/libvirt/images/test.qcow2 +1G

上述命令的主要缺点是您无法调整具有快照的图像的大小。

Virsh 删除卷

列出存储池:

$ sudo virsh pool-listName     State    Autostart
------------------------------default   active   yes

要使用 virsh 命令删除卷,请使用:

# List volumes
$ sudo virsh vol-list --pool default$ sudo virsh vol-delete test_vol2.qcow2 --pool default
Vol test_vol2.qcow2 deleted$ sudo virsh pool-refresh default
Pool default refreshed$ sudo virsh vol-list defaultName                 Path                                    ------------------------------------------------------------------------------
admin.qcow2          /var/lib/libvirt/images/admin.qcow2
cloudstack.qcow2     /var/lib/libvirt/images/cloudstack.qcow2
ipa.qcow2            /var/lib/libvirt/images/ipa.qcow2
katello.qcow2        /var/lib/libvirt/images/katello.qcow2
node1.qcow2          /var/lib/libvirt/images/node1.qcow2
node2.qcow2          /var/lib/libvirt/images/node2.qcow2
node3.qcow2          /var/lib/libvirt/images/node3.qcow2
test.qcow2           /var/lib/libvirt/images/test.qcow2
ubuntu14.04.qcow2    /var/lib/libvirt/images/ubuntu14.04.qcow2
zenoss.qcow2         /var/lib/libvirt/images/zenoss.qcow2 

Virsh 管理快照

在使用 virsh 命令管理 kvm 来宾机器的最后第二部分中,我们将了解管理 VM 快照。

Virsh 为虚拟机创建快照

让我们为我们的测试虚拟机创建一个快照。

$ sudo virsh snapshot-create-as --domain test \
--name "test_vm_snapshot1" \
--description "test vm snapshot 1-working"Domain snapshot test_vm_snapshot1 created

虚拟机的 Virsh 列表快照

要列出 vm 的可用快照,请使用:

$ sudo virsh snapshot-list testName                 Creation Time             State------------------------------------------------------------1489689679           2017-03-16 21:41:19 +0300 shutofftest_fresh           2017-03-16 22:11:48 +0300 shutofftest_vm_snapshot1    2017-03-18 02:15:58 +0300 running

Virsh 显示有关快照的信息:

要检索有关域的更多信息,请使用:

$ sudo virsh snapshot-info --domain test --snapshotname test_vm_snapshot1
Name:           test_vm_snapshot1
Domain:         test
Current:        yes
State:          running
Location:       internal
Parent:         test_fresh
Children:       0
Descendants:    0
Metadata:       yes

Virsh 还原虚拟机快照

在这里,我们将创建另一个名为 test_vm_snapshot2 的快照,然后还原为快照 test_vm_snapshot1

$ sudo virsh snapshot-create-as \
--domain test --name "test_vm_snapshot2" \
--description "test vm snapshot 2-working"Domain snapshot test_vm_snapshot2 created

让我们恢复之前创建的快照:

$ sudo virsh snapshot-list testName                 Creation Time             State------------------------------------------------------------1489689679           2017-03-16 21:41:19 +0300 shutofftest_fresh           2017-03-16 22:11:48 +0300 shutofftest_vm_snapshot1    2017-03-18 02:15:58 +0300 runningtest_vm_snapshot2    2017-03-18 02:23:29 +0300 running$ sudo virsh snapshot-revert --domain test  --snapshotname test_vm_snapshot1  --running

Virsh 删除快照

让我们删除我们创建的两个快照:

$ sudo  virsh snapshot-delete --domain test --snapshotname  test_vm_snapshot2
Domain snapshot test_vm_snapshot2 deleted$ sudo  virsh snapshot-delete --domain test --snapshotname  test_vm_snapshot1
Domain snapshot test_vm_snapshot1 deleted$ sudo virsh snapshot-list testName                 Creation Time             State------------------------------------------------------------1489689679           2017-03-16 21:41:19 +0300 shutofftest_fresh           2017-03-16 22:11:48 +0300 shutoff

Virsh 克隆一个虚拟机

具有要克隆的设备的域必须暂停或关闭。所以让我们关闭它:

$ sudo virsh destroy test
Domain test destroyed

然后克隆一个虚拟机,如下图所示:

$ sudo virt-clone --connect qemu:///system \
--original test \
--name test_clone \
--file /var/lib/libvirt/images/test_clone.qcow2 Allocating 'test_clone.qcow2'       |  10 GB  00:00:06Clone 'test_clone' created successfully.$ sudo virsh dominfo test_clone
Id:             -
Name:           test_clone
UUID:           be0621fd-51b5-4d2b-a05c-ce76e59baafa
OS Type:        hvm
State:          shut off
CPU(s):         1
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

Virsh 管理虚拟机 vcpus

这个 virsh 命令备忘单部分介绍了如何向虚拟机添加额外的虚拟 CPU:

$ sudo virsh setvcpus --domain test --maximum 2 --config
$ sudo virsh setvcpus --domain test --count 2 --config
$ sudo virsh shutdown test
$ sudo virsh start test

确认vcpu的数量发生了变化,之前是1,现在是2:

$ virsh dominfo test
Id:             -
Name:           test
UUID:           a943ed42-ba62-4270-a41d-7f81e793d754
OS Type:        hvm
State:          shut off
CPU(s):         2
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

Virsh 管理虚拟机内存

同样在 virsh 命令备忘单上使用 virsh 管理 RAM。要调整客户机操作系统使用的总内存,使用以下命令:

# In MB
sudo virsh setmaxmem test 2048 --config
sudo virsh setmem test 2048 --config
sudo virsh shutdown test
sudo virsh start test# Same in GB
sudo virsh setmaxmem test 16G --config
sudo virsh setmem test 16G --config
sudo virsh shutdown test
sudo virsh start test

检查域信息以确认分配给 VM 的当前 RAM。

$ virsh dominfo test
Id:             9
Name:           test
UUID:           a943ed42-ba62-4270-a41d-7f81e793d754
OS Type:        hvm
State:          running
CPU(s):         2
CPU time:       70.7s
Max memory:     2048 KiB
Used memory:    2048 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

注意当前分配给VM的ram是2048

挂载虚拟磁盘

您可以在 KVM 上挂载虚拟磁盘以进行离线管理。为此,我们有一篇现成的文章,您可以从以下链接中参考:

如何在 KVM 管理程序上挂载 VM 虚拟磁盘

ls 虚拟机中的目录

要在正在运行的 VM 上 ls 目录,您需要安装 libguestfs-tools。

运行:

# virt-ls -l -d <domain>  <directory>

例如

# virsh listId Name State
----------------------------------------------------10 allot_netxplorer_01 running19 sg-ve-01 running# virt-ls -l -d allot_netxplorer_01 /root
total 28
dr-xr-x---. 2 root root 135 Mar 22 14:26 .
dr-xr-xr-x. 17 root root 224 Mar 21 10:37 ..
-rw-------. 1 root root 385 Mar 22 14:26 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
-rw-------. 1 root root 1447 Mar 21 10:38 anaconda-ks.cfg

常见的选项有:

-R |--recursive --> Recursive listing
-h |--human-readable --> Human-readable sizes in output
-d |--domain guest --> Add disks from libvirt guest
-l |--long --> Long listing

cat 虚拟机中的文件

您也可以在不对 VM 执行 ssh 或通过控制台访问它的情况下 cat 文件。您需要在管理程序上安装 libguestfs 工具才能使其工作。

$ sudo virt-cat -d <domain>  <file_path>
$ sudo virt-cat -d sg-ve-01 /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)$ sudo dufo virt-cat -d sg-ve-01 /etc/redhat-release > check_os
$ cat check_os
CentOS Linux release 7.1.1503 (Core)

在虚拟机中编辑文件

在管理程序上安装 libguestfs-tools 后,使用 virsh-edit 命令:

# virt-edit -d sg-ve-01 /etc/hosts

显示虚拟机磁盘使用情况

使用 virt-df 命令:

$ sudo virt-df -d sg-ve-01
Filesystem 1K-blocks Used Available Use%sg-ve-01:/dev/sda1 20469760 3954792 16514968 20%
sg-ve-01:/dev/sda2 27739924 173828 27566096 1%

列出
虚拟机或磁盘映像中的文件系统、分区、块设备、LVM

$ sudo virt-filesystems -l -d sg-ve-01
Name Type VFS Label Size Parent
/dev/sda1 filesystem xfs - 20971520000 -
/dev/sda2 filesystem xfs - 28419555328 -$ sudo virt-filesystems -l -h -d sg-ve-01
Name Type VFS Label Size Parent
/dev/sda1 filesystem xfs - 20G -
/dev/sda2 filesystem xfs - 26G -$ sudo virt-filesystems -l -h -d sg-ve-01 --partitions
Name       Type    MBR Size Parent
/dev/sda1 partition 83 20G /dev/sda
/dev/sda2 partition 83 26G /dev/sda
/dev/sda3 partition 82 4.0G /dev/sda$ sudo virt-filesystems -d sg-ve-01 --all --long --uuid -h
Name Type VFS Label MBR Size Parent UUID
/dev/sda1 filesystem xfs - - 20G - 97074514-612e-4d1c-8433-935dbb3ec775
/dev/sda2 filesystem xfs - - 26G - 8cc9e0cd-282d-46a4-9a37-069dfb93c4f2
/dev/sda3 filesystem swap - - 4.0G - ad7dcd49-fe1a-4938-8600-f7299a59c57a
/dev/sda1 partition - - 83 20G /dev/sda -
/dev/sda2 partition - - 83 26G /dev/sda -
/dev/sda3 partition - - 82 4.0G /dev/sda -
/dev/sda device - - - 100G - -

显示虚拟化域的统计信息

使用 virt-top 显示虚拟化域的统计信息。您可以按 CPU、RAM 等过滤并将输出保存到 CSV 文件。

$ virt-top
$ sudo virt-top --csv file.csv

您还可以将调试和错误消息发送到文件名。要将错误消息发送到 syslog,您可以执行以下操作:

$ sudo virt-top --debug >(logger -t virt-top)

显示来自虚拟机的日志文件

“virt-log”是一个命令行工具,用于显示来自命名虚拟机(或磁盘映像)的日志文件。该工具理解并显示纯文本日志文件(例如 /var/log/messages)和二进制格式,例如 systemd 日志。

$ sudo virt-log -d <domain> | less
$ sudo virt-log -d <domain> | grep 'dhclient.*bound to'

Virsh 管理网络

要结束我们的 virsh 命令备忘单内容,请阅读我之前的文章:

在 Linux 中使用 virsh、nmcli 和 brctl 配置 KVM 网络

结论

我们的 virsh 命令备忘单现已完成。

KVM 虚拟机 virsh 命令备忘单相关推荐

  1. freedos 常用命令_庆祝FreeDOS 24周年:有用的命令备忘单

    freedos 常用命令 FreeDOS在6月29日满24岁. FreeDOS是一个完整的,免费的,与DOS兼容的操作系统,您可以使用它来玩经典的DOS游戏 , 运行商务软件或开发嵌入式系统. 在MS ...

  2. RedHat Yum 命令备忘单

    Yum 是Red Hat和基于 Red Hat 的 Linux 发行版中的包管理器,它允许您管理 Red Hat 系统上软件的各个方面. 你不会在这里详细学习 Yum 命令,相反,这个 Yum 备忘单 ...

  3. Docker 常用命令备忘单

    Docker是一个容器化系统,它打包并运行应用程序及其在容器内的依赖项.在使用 Docker 时,您必须了解几个 Docker 命令.这篇文章就是关于这一点的. 查看版本 您想知道的第一件事就是如何查 ...

  4. 20多个Maven命令和选项(备忘单)

    If you are working on Java, you must know Maven. Maven is the most popular project and dependency ma ...

  5. Cheat—— 给Linux初学者和管理员一个终极命令行备忘单

    当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像'help','whereis'和'what ...

  6. linux mt命令,Cheat—— 给Linux初学者和管理员一个终极命令行备忘单

    当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像'help','whereis'和'what ...

  7. virsh 关机_聊聊:kvm虚拟机管理命令virsh的基本操作

    原标题:聊聊:kvm虚拟机管理命令virsh的基本操作 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个 ...

  8. bash:附近有语法错误_Bash备忘单:按键组合和特殊语法

    bash:附近有语法错误 Bourne Again Shell(Bash)是POSIX计算机的文本界面. Shell,Bash或其他方式为您提供了一种无需回旋接口即可直接与计算机对话的方法:您键入希望 ...

  9. kvm 虚拟机常用命令

    kvm 虚拟机常用命令 管理kvm虚拟机 列出所有虚拟机 visrh list --all Id 名称 状态 --------------------------------------------- ...

最新文章

  1. guava中 graphs 六
  2. 成功解决AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘?
  3. java--java语言基础(4)--黑马程序员
  4. Linux E325: ATTENTION Found a swap file by the name “./.backu.sh.swp“
  5. mysql备份psb文件怎么打开,当迁移 Navicat 到新电脑时,如何保留数据库连接信息?...
  6. django模板-if标签、for标签、自定义标签和过滤器
  7. Node.js mm131图片批量下载爬虫1.00 iconv协助转码
  8. apipost如何使用mock测试
  9. ppt模板怎样用到html中,ppt怎样使用在线模板
  10. 【hadoop】 3007-hadoop的提交job的源码分析
  11. 用计算机算e的次方,e的值(万能计算器在线使用)
  12. Android Data Binding 初识
  13. 【论文阅读】A Survey of Incentive Mechanism Design for Federated Learning 联邦学习激励机制设计综述
  14. 微信小程序中实现吸顶效果(流畅、不卡顿)
  15. 有没有网上打印可以派送的?
  16. 助力自动驾驶商业化 高德公布高精地图技术路线图
  17. 做自媒体视频剪辑怎么赚钱呢?
  18. 解决华为云服务器没有公网Ip无法上网问题
  19. 美通企业日报 | 内容质量是亚太媒体最重视的指标;“豆蔻青”将成2020年度色彩...
  20. C++模板函数的声明和定义是否可以分开?

热门文章

  1. python文件编译_python下编译py成pyc和pyo
  2. Vue实现登录功能全套详解(含封装axios)
  3. C# HttpWebRequest详解
  4. 0. Canal 的安装和使用
  5. 全新一代迅捷文本格式转换器
  6. BootStrap Div居中
  7. 传神助力进博会语言服务全覆盖 ,专业译员、翻译神器齐上阵
  8. 《最强大脑》第八季丨蔡子星邀你一起燃烧大脑!
  9. 2010年10大趋势
  10. PC基于wifi采用UDP协议实现ESP32无线图传显示在1.44寸屏幕