虚拟机通过命令行管理,核心就一句话:用SSH连上宿主机或借助vmrun、virsh这类专用工具,把日常操作变成脚本和命令,效率远超鼠标点击。图形界面能点出来的功能,命令行几乎都能做,而且更适合批量处理、定时任务和远程运维。
虚拟机命令行操作命令大全:先从这几个最常用的开始
刚接触命令行管理虚拟机的人,容易陷入一个误区:想把所有命令都背下来,没必要,日常高频操作就那么几个,先掌握这些,基本能覆盖九成场景。
启动、关机、重启:三件事就够了
- 启动虚拟机:
virsh start 虚拟机名(KVM环境),vmrun start 虚拟机路径(VMware环境)。 - 优雅关机:
virsh shutdown 虚拟机名,相当于给虚拟机发送ACPI关机信号,比直接断电安全。 - 强制断电:
virsh destroy 虚拟机名,适合系统卡死、无响应时兜底。
有朋友会问,为什么不用virsh reboot?这个命令确实存在,但实际使用中,很多系统对ACPI重启信号响应不稳定,日常维护我更喜欢先shutdown再start,步骤虽然多一步,胜在可控。
查看虚拟机状态和资源使用
virsh list --all:列出所有虚拟机,running或shut off一眼看清。virsh dominfo 虚拟机名:查看单台虚拟机的CPU、内存配置、UUID等详细参数。top或htop:直接在宿主机上查看所有虚拟机的进程资源占用,找出”偷吃”CPU的那台。
快照:后悔药得提前备好
- 创建快照:
virsh snapshot-create-as 虚拟机名 snapshot1。 - 查看快照:
virsh snapshot-list 虚拟机名。 - 回滚快照:
virsh snapshot-revert 虚拟机名 snapshot1。
行业共识是,任何系统升级、配置变更、高危操作之前先打快照,哪怕操作失误,一条命令就能回到安全状态,这比在图形界面里右键菜单找”快照”选项快得多。
vmware命令行管理工具实战:一台机器搞定所有虚拟机
如果你用的是VMware Workstation或ESXi,vmrun和esxcli这两个命令就是核心工具。
vmrun:Workstation和Fusion的遥控器
vmrun是VMware官方提供的命令行工具,装好VMware Workstation后,找到安装目录下的vmrun.exe(Windows)或直接终端敲vmrun(Linux/Mac)。
常用命令示例:
- 列出所有虚拟机:
vmrun list。 - 启动指定虚拟机:
vmrun start "/path/to/your.vmx"。 - 关闭虚拟机:
vmrun stop "/path/to/your.vmx"。 - 启动时带GUI界面:加参数
gui,比如vmrun start xxx.vmx gui。 - 无界面启动:不加参数,默认后台运行,不弹窗口。
这里有个实际场景:你在一台Windows宿主机上装了5台虚拟机,每天上班第一件事是挨个打开VMware Workstation,再逐个点启动图标,用命令行的话,建一个start_all.bat批处理脚本,里面写5行vmrun start,双击一下全搞定。
esxcli:ESXi宿主机的大总管
ESXi是VMware的裸机虚拟化系统,本身没有图形界面,全靠命令行管理,用SSH登上去之后,esxcli命令就是主要操作入口。
- 查看虚拟机列表:
esxcli vm process list。 - 关闭指定虚拟机:
esxcli vm process kill --type=soft --world-id=进程ID。 - 查看宿主机硬件和存储状态:
esxcli hardware status list、esxcli storage core device list。
还有个高频操作是排查”某个虚拟机的磁盘占用是不是把宿主机塞满了”,这时候用df -h看存储挂载点,用du -sh /vmfs/volumes/datastore1/找出占用大户。
KVM与virsh命令详解:开源方案里的效率神器
KVM是Linux内核自带的虚拟化模块,virsh是它最常用的命令行管理工具,相比VMware,KVM的命令行生态更开放,脚本化能力也更强。
批量创建虚拟机:从模板克隆
生产环境里创建一台新虚拟机,从头安装操作系统又慢又费事,常规做法是先装好一台”模板机”,打上补丁、装好常用软件、清空历史记录,然后用命令克隆:
virt-clone --original 模板机名 --name 新虚拟机名 --file /path/to/new-disk.qcow2
一条命令生成一台新机器,配合bash循环,还能一次性创建多台:
for i in 1 2 3; do
virt-clone --original template --name web-$i --file /var/lib/libvirt/images/web-$i.qcow2
done
业内专家指出,批量克隆是KVM环境最常见的自动化需求,很多运维团队维护一套模板库,配合ansible或saltstack,几分钟就能拉起一套多节点集群。
配置虚拟机的CPU和内存
临时给某台虚拟机调高配置,不用关机修改配置文件,直接在线调整:
- 修改CPU核数:
(–live表示立即生效)。virsh setvcpus 虚拟机名 4 --live
- 修改内存大小:
virsh setmem 虚拟机名 8G --live。
注意,在线调整内存只能增加,不能减少,要缩内存必须关机改配置再开机。
网络管理:虚拟网卡和网桥
命令行查网络信息比图形界面更直观:
virsh net-list --all:查看所有虚拟网络。virsh domiflist 虚拟机名:查看这台虚拟机的网卡配置。virsh attach-interface 虚拟机名 --type bridge --source br0:给虚拟机加一张桥接网卡。
虚拟机性能差怎么解决?命令行排查三板斧
很多人碰到虚拟机卡顿,第一反应是加大CPU和内存,但在命令行环境下,还真得先看看瓶颈到底在哪儿。
第一板斧:看宿主机资源余量
宿主机本身快被掏空了,虚拟机自然跑不动,直接在宿主机上跑free -h看内存,跑top看CPU负载,用iostat -x 1看磁盘I/O,如果宿主机各项指标正常,问题大概率出在虚拟机内部。
第二板斧:看虚拟机内部的资源消耗
SSH登录到虚拟机内部,用top或htop看是哪个进程占了资源,如果是数据库进程长期占满CPU,可能要优化SQL或加索引,而不是盲目给虚拟机加配置。
第三板斧:检查磁盘和CPU的调度冲突
KVM虚拟机一个常见的性能问题,是多个虚拟机的vCPU争抢同一批物理核心,这时候用virsh vcpuinfo 虚拟机名查看vCPU绑定情况,如果发现所有虚拟机都绑在同一组核心上,用virsh vcpupin把不同虚拟机分配到不同核心,能明显改善卡顿。
Windows环境下的虚拟机命令行管理
Linux生态里的命令千篇一律,Windows这边也有对等的玩法,管理Hyper-V虚拟机,用的是一套PowerShell命令。
- 启动虚拟机:
Start-VM -Name 虚拟机名。 - 关闭虚拟机:
Stop-VM -Name 虚拟机名。 - 创建检查点(快照):
Checkpoint-VM -Name 虚拟机名 -SnapshotName 快照名。 - 查看资源占用:
Get-VM | Select-Object Name, State, CPUUsage, MemoryDemand。
Windows管理员把PowerShell命令打包成.ps1脚本,配合Windows任务计划程序,还能实现定时开机关机,开发环境周一至周五每天早上8点自动启动虚拟机,晚上6点自动关闭,完全不用人管。
把命令串起来:脚本化才是趋势
单条命令解决的是单个任务,真正提升效率的是把它们串成脚本,现有一套多虚拟机组成的环境需要批量维护,可以把以下逻辑写进一个脚本里:
- 依次关闭所有虚拟机:先优雅关机,等30秒没关掉再强制关闭。
- 维护宿主机的内核或驱动。
- 按依赖顺序启动虚拟机,并检查每个虚拟机的网络是否连通。
逻辑不复杂,用bash或PowerShell都能实现,搭建好这套机制之后,以后无论是升级内核还是打安全补丁,一杯咖啡的时间就完成了,反观还在用图形界面操作的团队,可能要花一整个下午来手动开关机。
命令行和图形界面之间不存在谁消灭谁的问题,图形界面适合新手入门、单次查看、临时操作;命令行适合批量处理、远程运维、自动化管理,真实的运维场景里,两者往往交替使用,但只要你管理的虚拟机数量超过三台,命令行就成了真正的效率杠杆,先掌握virsh list、vmrun start、esxcli vm process list这几个基础命令,再逐步扩展到脚本,这条路走一个月,基本就回不去图形界面了。
常见问题解答
虚拟机命令行操作命令大全里,哪几条是必须背下来的?
如果只记三条,那么是:查看虚拟机状态的命令(virsh list或esxcli vm process list)、开关机命令(virsh start/shutdown或vmrun start/stop)、创建回滚快照的命令(virsh snapshot-create-as或Checkpoint-VM),这三条覆盖了日常管理中最频繁的操作场景。
用命令行管理vmware虚拟机,会不会误操作删除数据?
存在风险,但可以规避,核心原则是生产环境操作前先打快照,删除类操作执行前先用--dry-run(如果支持)或查询类命令确认对象是否正确,比如vmrun和virsh删除磁盘的命令都会要求手动指定路径,仔细检查路径无误再执行,定期备份配置文件和数据盘,也是补救措施。
虚拟机性能差怎么解决,加配置是最直接的方法吗?
不是,加配置只是堆硬件,命令行的排查逻辑是先定位瓶颈再对症下药,宿主机内存不足加内存,磁盘I/O过高换SSD或优化存储策略,虚拟机内部CPU占用高则可能要优化应用代码,只有vCPU和物理核心争抢时才考虑调整pin绑定或增加核心数量,盲目加配置往往治标不治本,还有可能引发宿主机资源分配不均。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/627897.html





