The Proxmox VE shell commands you'll use most: VMs (qm), containers (pct), storage, backups and restores, templates, networking, updates, and troubleshooting.
Ask AI about this cheatsheetChatGPT, Claude, or any assistant
These open a new chat with a prompt that points the assistant to this cheatsheet. It only sees the cheatsheet if it can open the link. If it says it can't, use Copy cheatsheet for AI and paste the text into the chat.
Nothing goes to an AI service unless you choose one. AI answers can be wrong: check them against the cheatsheet before you change anything important.
Every command here is checked against Proxmox VE 9.x docs, not lab-tested on a 9.2 host (re-checked October 27, 2026). Replace 100 (VM), 200 (container), and storage names such as local-lvm and backups with your own. Run qm help <command> or pct help <command> for every option.
Host and version#
pveversion -v # Proxmox VE and package versions
apt update && apt full-upgrade # update the host (never plain "apt upgrade")
pvesm status # storage, type, and free space
ip -br addr # network interfaces and addresses
systemctl status pveproxy # web interface service
Virtual machines (qm)#
qm list # all VMs with status
qm config 100 # a VM's configuration
qm start 100
qm shutdown 100 # clean shutdown (needs ACPI or the guest agent)
qm reboot 100
qm set 100 --memory 4096 --cores 2
qm set 100 --onboot 1 # start at host boot
qm set 100 --agent enabled=1 # use the QEMU guest agent
qm disk resize 100 scsi0 +10G # grow a disk ("qm resize" is an alias); then grow the filesystem inside the guest
qm guest cmd 100 network-get-interfaces # guest IPs via the agent
qm stop 100 # hard power-off, like pulling the plug
qm destroy 100 --purge # deletes the VM and its disks; --purge also removes it from backup, replication and HA jobs
qm unlock 100 # clears a stuck lock: only if no task is running
Containers (pct)#
pct list
pct config 200
pct start 200
pct shutdown 200
pct enter 200 # root shell inside the container
pct exec 200 -- df -h # run one command inside
pct set 200 --memory 1024 --cores 1
pct resize 200 rootfs +4G # grow the root disk
pct push 200 ./file.conf /etc/app/file.conf # copy a file in
pct pull 200 /var/log/app.log ./app.log # copy a file out
pct stop 200 # immediate stop
pct destroy 200 --purge # deletes the container and its volumes; --purge also removes it from backup, replication and HA jobs
Snapshots#
qm snapshot 100 before-update --description "Before updates"
qm listsnapshot 100
qm rollback 100 before-update # destructive: discards changes since the snapshot (a snapshot with RAM also starts the VM)
qm delsnapshot 100 before-update
pct snapshot 200 before-update # same idea for containers
Backups and restores#
vzdump 100 --storage backups --mode snapshot --compress zstd
vzdump 100 200 --storage backups --mode snapshot --compress zstd --notes-template "{{guestname}}"
ls /var/lib/vz/dump/ # backups on the "local" storage
qmrestore /var/lib/vz/dump/vzdump-qemu-100-<date>.vma.zst 150 --storage local-lvm # restore to new VM ID 150
pct restore 250 /var/lib/vz/dump/vzdump-lxc-200-<date>.tar.zst --storage local-lvm # restore to new CT ID 250
Templates and clones#
pveam update # refresh the container template list
pveam available --section system # OS templates you can download
pveam list local # templates already downloaded
qm template 100 # convert a VM into a template
qm clone 100 101 --name web01 --full # full clone of template 100 as VM 101
Networking#
cat /etc/network/interfaces # host network configuration
ifreload -a # apply changes to the interfaces file
bridge vlan show # VLANs on VLAN-aware bridges
ZFS (if you installed on ZFS)#
zpool status # health of each pool and disk
zpool list # size and free space
zfs list # datasets and volumes
zpool scrub rpool # start a data integrity check
Troubleshooting#
journalctl -b -p err # errors since the last boot
journalctl -u pveproxy -b # web interface logs
systemctl restart pveproxy pvedaemon # restart the web interface services
qm showcmd 100 --pretty # the QEMU command line a VM starts with
grep -Ec '(vmx|svm)' /proc/cpuinfo # 0 = virtualization not enabled in firmware
Related#
- Building your first host: Building Your First Proxmox Homelab
- For deduplicated, incremental backups, see Proxmox Backup Server.
Sources and official documentation
Review history
- Technical review: Jeremiah Ellington,
- Editorial review: Jeremiah Ellington,
- Next scheduled review:
Spotted something out of date or wrong? Email a correction and I'll fix it. See how these guides are made.