Linux / Linux Basic / Linux & Proxmox Fundamentals
Linux Basic

Linux & Proxmox Fundamentals: Shell Prompts, Commands, and /etc

Before you touch a single VM or config file, you need to understand what the shell is telling you, how every Linux command is built, and where the system keeps its configuration. This guide covers it all.

Proxmox VE Shell Prompt $ # ~ Commands /etc Directory Linux Basics

What is Proxmox VE?

Proxmox Virtual Environment (PVE) is a free, open-source, enterprise-grade server virtualization platform built on Debian Linux. It combines two powerful virtualization technologies into one browser-managed solution:

  • KVM/QEMU — Full virtual machines (Windows, Linux, BSD, etc.)
  • LXC — Lightweight Linux containers

You manage everything from a clean web interface at https://YOUR-IP:8006. The current version (9.x) runs on Debian 13 (Trixie) with Linux kernel 6.17+, is free under AGPLv3, and is a popular cost-effective alternative to VMware vSphere.

Hardware requirements: 64-bit CPU with Intel VT-x or AMD-V, at least 8 GB RAM, and a 32 GB+ SSD/NVMe for the host OS.

Shell Prompt Symbols: $, #, and ~

When you open a terminal or SSH into a Proxmox server, the shell prompt gives you two critical pieces of information at a glance: who you are and where you are in the filesystem.

$ — Regular (Non-Root) User
Regular user prompt
user@pve:~$

The dollar sign means you are logged in as a regular user with limited privileges. Most Proxmox management commands will fail or require sudo from this prompt.

Behaviour at the $ prompt
user@pve:~$ ls /etc           # Works fine
user@pve:~$ apt update        # Permission denied
user@pve:~$ sudo apt update   # Works with sudo
# — Root User (Administrator)
Root user prompt
root@pve:~#

The hash sign means you are root — full, unrestricted system access. No sudo needed. This is the default on a fresh Proxmox install and what every official guide assumes.

Common root commands in Proxmox
root@pve:~# apt update && apt full-upgrade -y
root@pve:~# qm start 100
root@pve:~# zpool status
Pro Tip: If a command fails unexpectedly, check your prompt first. Running admin commands as $ instead of # is the most common beginner mistake in Proxmox.
~ — Home Directory Shortcut

The tilde in your prompt shows you are in your home directory. It is also a shortcut in any command. As root, ~ = /root. As a regular user, ~ = /home/username.

Using ~ in commands
cd ~             # Jump to home from anywhere
cd ~/backups     # Navigate to a subfolder of home
ls ~             # List home directory contents
nano ~/.bashrc   # Edit your Bash configuration
SymbolMeaningPrivilegeHome Path
$Regular user promptLimited — needs sudo/home/username
#Root user promptFull administrator/root
~Home directory shortcutDepends on current user

Command Structure: Command, Option, Argument

Every Linux command follows the same universal three-part pattern. Learn this once and any new tool becomes easier to understand.

Universal Linux syntax
command [options] [arguments]

The command is the program to run. Options modify its behaviour — short with one dash (-y), long with two (--yes). Arguments are the specific targets it acts on — a VM ID, file path, hostname, etc.

Annotated examples
# command: ls | option: -1 | argument: /etc
root@pve:~# ls -1 /etc

# command: qm | sub-command: start | argument: 101
root@pve:~# qm start 101

# command: apt | sub-command: upgrade | option: -y
root@pve:~# apt upgrade -y
Create a VM — command + argument + multiple options
root@pve:~# qm create 101 \
  --name "UbuntuServer" \
  --memory 4096 \
  --cores 2 \
  --net0 virtio,bridge=vmbr0 \
  --scsi0 local-lvm:32
Other common Proxmox commands
qm shutdown 101 --timeout 60          # Shutdown VM with timeout
pct create 201 local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst \
  --hostname debian-ct --memory 1024   # Create container
pvesm list local-zfs                  # List storage contents
pvecm status                          # Check cluster status
Best practices: Use long options (--memory not -m) in scripts — they are self-documenting. Quote values with spaces: --name "My VM". Press Tab for auto-completion. Run man qm or qm --help when stuck.

Navigating /etc — The Configuration Directory

/etc is the central home for system-wide configuration files in any Linux system. Every major service — networking, SSH, DNS, package management, user accounts — stores its settings here. In Proxmox, it also holds all VM, container, and cluster definitions.

Navigate into /etc
root@pve:~# cd /etc
root@pve:/etc#

Notice the prompt updates from ~ to /etc once inside. Useful navigation commands:

Directory navigation
cd /etc     # Go to /etc from anywhere
pwd         # Confirm your location
cd -        # Go back to the previous directory
cd ~        # Return to home (/root as root)
List /etc — one entry per line
root@pve:~# ls -1 /etc

The -1 flag (the number one, not the letter L) prints one entry per line — clean and easy to pipe into grep.

Useful /etc listing variations
ls -1 /etc              # One per line
ls -la /etc             # Detailed: permissions, sizes, dates
ls /etc | grep ssh      # Find SSH-related configs
ls -1 /etc/pve/         # Explore the Proxmox config folder
PathPurpose
/etc/hostnameThe server’s hostname
/etc/hostsStatic hostname-to-IP mappings
/etc/resolv.confDNS resolver settings
/etc/fstabFilesystem mount table
/etc/ssh/sshd_configSSH server configuration
/etc/network/interfacesNetwork config — bridges, bonds, VLANs
/etc/apt/sources.list.d/APT repository definitions
/etc/pve/Proxmox cluster filesystem — all VM/CT configs, storage, user data
/etc/pve/storage.cfgStorage pool definitions
/etc/pve/datacenter.cfgGlobal Proxmox settings
Practical /etc commands for Proxmox
cat /etc/pve/storage.cfg        # View storage definitions
cat /etc/network/interfaces     # View network config
cat /etc/os-release             # View OS and kernel version
ls /etc/apt/sources.list.d/     # Check APT repositories
Important: Files in /etc are readable by all users, but only root can edit them. Always back up before modifying a config in production — a typo in /etc/network/interfaces can cut off SSH access entirely.

cp /etc/network/interfaces /etc/network/interfaces.bak
Summary: The # prompt means root access. The ~ shortcut means home directory. Every command follows command [options] [arguments]. And /etc is where Linux keeps all its configuration. Master these four things and no Proxmox guide or man page will feel foreign.