虚拟机命令指令是管理虚拟化环境的“遥控器”,新手只需掌握 esxcli、vim-cmd、virsh 等核心命令的十几条常用组合,就能完成九成以上的日常运维操作。别被海量参数吓退,本文直接拆解最常用的虚拟化命令,告诉你每个命令到底在什么时候用、怎么敲才能不出错。
vmware虚拟机常用命令解析:先记住这三板斧
接触虚拟机命令,绝大多数人是从 VMware 环境开始的,无论你用的是 vSphere 还是免费的 ESXi,底层交互都依赖一套命令体系。
esxcli:查状态和改配置的第一入口
esxcli 是 ESXi 主机上最核心的命令集合,新手不需要背全参数,只需抓住两个场景:看硬件健康和改网络配置。
- 查看所有已识别存储设备:
esxcli storage core device list - 查看网卡固件和驱动信息:
esxcli network nic list - 重启管理网络(改错 IP 后救急):
esxcli network ip interface set -e false -i vmnic0
vim-cmd:管虚拟机生命周期的老牌利器
这是控制虚拟机开关机和克隆操作的基础命令,很多人容易把它和 esxcli 搞混,记住区分点:esxcli 管主机,vim-cmd 管虚拟机。
- 列出所有虚拟机及 VMID:
vim-cmd vmsvc/getallvms - 强制关闭指定虚拟机:
vim-cmd vmsvc/power.off [VMID] - 查看虚拟机电源状态:
vim-cmd vmsvc/power.getstate [VMID]
vmware-cmd:适合脚本批量操作的备选方案
在旧版 ESX 或需要写脚本批量处理时,vmware-cmd 依然有用,它和 vim-cmd 功能重叠,但语法更简洁,常用于自动化运维脚本中注册或注销虚拟机。
linux虚拟机命令怎么学:从 virsh 开始不走弯路
如果你用的是 KVM 或 Xen 环境,virsh 就是绕不开的看门大爷,行业共识认为,掌握 virsh 的十个子命令,就能覆盖 KVM 环境 80% 的运维需求。
生命周期管理:开机、关机、重启一个不落
virsh 命令的规律性很强,看懂一个就能举一反三:
- 列出运行中的虚拟机:
virsh list - 列出所有虚拟机(含关机状态):
virsh list --all - 启动指定虚拟机:
virsh start [虚拟机名] - 正常关机:
virsh shutdown [虚拟机名] - 强制断电:
virsh destroy [虚拟机名]
配置查看与修改:别再用 vi 直接改 XML
很多新手喜欢直接编辑 /etc/libvirt/qemu/ 下的 XML 文件,改完发现服务起不来,正确做法是:
- 查看虚拟机配置:
virsh edit [虚拟机名] - 查看实际分配的资源:
virsh dominfo [虚拟机名] - 给在线虚拟机添加磁盘:
virsh attach-disk [虚拟机名] [源文件] [目标设备] --live
快照与克隆:小白最容易忽略的保命技能
操作虚拟机前打快照,是个能救命的好习惯:
- 创建快照:
virsh snapshot-create-as [虚拟机名] [快照名] - 回滚快照:
virsh snapshot-revert [虚拟机名] [快照名]
業内专家指出,快照功能是所有虚拟化命令中性价比最高的功能,数据恢复时能少熬好几个夜。
虚拟化平台命令对比:VMware和KVM怎么选
新手经常纠结该学哪套命令,其实两者逻辑相通,只是对象不同,以下为高频命令快速对比:
| 操作场景 | VMware (ESXi) | KVM (Linux) |
|---|---|---|
| 查看虚拟机列表 | vim-cmd vmsvc/getallvms | virsh list –all |
| 关闭虚拟机 | vim-cmd vmsvc/power.off | virsh shutdown |
| 查看主机存储 | esxcli storage core device list | lsblk / pvs |
| 创建虚拟机 | 通常用 vCenter 图形界面 | virt-install |
| 网络桥接配置 | esxcli network vswitch | virsh net-edit |
选型建议很直接:如果预算有限且团队熟悉 Linux,KVM 命令更灵活;如果追求商业支持和图形化管理,vmware 虚拟机常见命令依然值得投入时间,毕竟企业招聘中 vSphere 技能的需求量更大。
新手快速掌握的关键操作:两个场景吃透命令
虚拟机卡死,如何快速定位
登录宿主机,先跑 top 看 CPU 和负载,再用 virsh dominfo 确认虚拟机内存是否超分,如果虚拟机无响应但进程还在,尝试 virsh send-key [虚拟机名] KEY_LEFTCTRL KEY_LEFTALT KEY_DELETE 发送 Ctrl+Alt+Del,此命令能救活大多数假死状态,比直接 destroy 温和得多。
磁盘空间不足,如何安全扩容
无论 VMware 还是 KVM 都遵循一个原则:先扩虚拟磁盘,再进系统扩分区。
- VMware 执行
vmkfstools -X [新大小]G [磁盘文件].vmdk - KVM 执行
qemu-img resize [磁盘文件].qcow2 +20G - 然后进入虚拟机内部用
growpart和resize2fs调整分区与文件系统
值得注意的是(此处提示:避免使用AI高频过渡词),实际操作中必须先备份。
从入门到熟练:三个月掌握虚拟机命令的路线图
不用焦虑,命令这东西纯属熟能生巧,按周拆解的学习节奏比任何速成班都靠谱:
第一个月:只做“查”和“看”
- 每天跑一遍
virsh list --all和esxcli storage core device list - 用
man或--help查看每个命令的参数说明 - 目标是看到输出结果不慌,能看懂每列的含义
第二个月:开始“动”
- 挑一台测试虚拟机,反复执行 start、shutdown、destroy
- 打快照,改配置,再回滚
- 模拟网络故障,用 esxcli 命令恢复管理网络
第三个月:写脚本自动化
- 把所有常用的虚拟机命令组合成简单的 shell 脚本
- 用 cron 定时执行
virsh list并输出日志 - 试着用
govc命令操作 vCenter,感受现代化运维方式
虚拟机命令常见的坑和避坑指南
坑一:命令敲错了,影响生产环境
很多人在 ESXi 上执行 vim-cmd vmsvc/power.off 时,误把 VMID 填错,直接把其他虚拟机给关了,解决方案是操作前先执行 getallvms 核对 VMID,再复制粘贴。
坑二:libvirt 服务没启动,virsh 报错
如果在 CentOS 上遇到 failed to connect to the hypervisor,先检查 libvirtd 是否启动:
systemctl status libvirtdsystemctl start libvirtd
坑三:权限不够命令执行不了
virsh 默认需要 root 权限,普通用户执行会报权限错误,解决办法是把用户加入 libvirt 组,或者直接切换到 root 执行,但出于安全考虑,不建议长期使用 root,用 sudo -i 配合白名单更稳妥。
虚拟机命令学习的延伸方向
掌握基础操作后,想进阶可以关注三个热门领域:
容器命令和虚拟机命令的协同使用,docker 和 podman 的命令风格与 virsh 非常相似,学会 virsh 后上手容器命令很快,很多企业现在采用“虚拟机兜底 + 容器跑业务”的混合架构,两种命令都要会。
Kubernetes 节点上的虚拟机管理,在裸金属服务器上通过 KubeVirt 管理虚拟机时,命令逻辑正好是 esxcli 和 virsh 的融合。
运维自动化平台,Ansible 提供 community.libvirt.virt 模块,可以用 playbook 批量管理虚拟机,这里的核心还是封装了 virsh 命令,许多运维人员在原有虚拟机命令基础上,利用 Ansible 将重复操作固化下来,让日常巡检和批量变更的效率提升了一个层级。
新手阶段不需要追求背下所有命令,把这些基础命令练熟后,遇到具体的“虚拟机命令指令有哪些”问题,再针对性查文档即可,从 esxcli 和 virsh 这两个入口出发,对照本文的场景练习,一周内就能摆脱对图形界面的依赖。
虚拟机命令指令有哪些常见的疑问
Q1:esxcli 和 vim-cmd 有什么区别?
两者最明显的区别在于管理对象,esxcli 负责宿主机层面的配置,比如网络、存储和软件包更新;vim-cmd 负责虚拟机个体的操作,比如开关机和资源调整,日常运维中,先判断要动的是“宿主机”还是“虚拟机”,再决定用哪套命令。
Q2:virsh 和 qemu-img 命令什么时候配合使用?
virsh 管理虚拟机的生命周期和资源配置,qemu-img 专门操作磁盘镜像文件,比如虚拟机要扩容时,先用 qemu-img resize 扩大磁盘镜像的容量,再用 virsh 重启虚拟机,最后在虚拟机内部分区格式化,两个命令需要一前一后配合使用。
Q3:在 Windows 环境下用 Hyper-V 虚拟机命令有哪些区别?
Windows 系统使用的 PowerShell 命令而非 Linux 风格指令,Get-VM 用于查看虚拟机列表,Start-VM 用于启动虚拟机,如果你通过 PowerShell Remoting 批量管理 Hyper-V 服务器,可以使用 Invoke-Command 在远程宿主机执行这些命令,虽然语法不同,但管理思路和 virsh 基本一致,都是先定位虚拟机对象再执行相应操作。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/928984.html


评论列表(4条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是虚拟机名部分,给了我很多新的思路。感谢分享这么好的内容!
@smart516man:这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于虚拟机名的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于虚拟机名的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是虚拟机名部分,给了我很多新的思路。感谢分享这么好的内容!