889 commands · 48 cheat sheets · 6 subcategories
Linux master quick reference — Page 4
Browse 226 commands from 12 focused cheat sheets on page 4 of 4. Each example opens its matching detailed section.
Networking and Connectivity · 18 commands
iproute2 Routing and Traffic Control Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show concise addresses | ip -brief address show | View examples |
| Export routes as JSON | ip -json route show table all | View examples |
| Resolve an IPv4 path | ip route get 203.0.113.10 from 192.0.2.20 | View examples |
| Resolve an IPv6 path | ip -6 route get 2001:db8:2::10 from 2001:db8:1::20 | View examples |
| Show the main table | ip route show table main | View examples |
| Replace a route idempotently | sudo ip route replace 198.51.100.0/24 via 192.0.2.1 dev \
eth0 metric 100 | View examples |
| Delete an exact route | sudo ip route del 198.51.100.0/24 via 192.0.2.1 dev eth0 \
metric 100 | View examples |
| Show policy rules | ip -details rule show | View examples |
| Add a source policy | sudo ip rule add priority 1000 from 192.0.2.0/24 table \
100 | View examples |
| Add a policy-table default | sudo ip route replace default via 192.0.2.1 dev eth0 \
table 100 | View examples |
| Monitor network changes | ip monitor link address route rule | View examples |
| Show neighbor state | ip -details neighbor show dev eth0 | View examples |
| Flush failed neighbors | sudo ip neighbor flush dev eth0 nud failed | View examples |
| Show queue disciplines | tc -s qdisc show dev eth0 | View examples |
| Install fq_codel root qdisc | sudo tc qdisc replace dev eth0 root fq_codel | View examples |
| Add lab delay and loss | sudo tc qdisc replace dev veth-test root netem delay \
50ms loss 0.1% | View examples |
| Remove a root qdisc | sudo tc qdisc del dev veth-test root | View examples |
| Show iproute2 version | ip -Version | View examples |
Networking and Connectivity · 20 commands
Linux DNS Resolution and Resolver Tools Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Resolve through NSS | getent ahosts example.com | View examples |
| Inspect hosts lookup order | grep -E '^[[:space:]]*hosts:' /etc/nsswitch.conf | View examples |
| Identify resolv.conf owner | readlink -f /etc/resolv.conf | View examples |
| Show resolver directives | grep -E \
'^[[:space:]]*(nameserver|search|domain|options)[[:space:]]' \
/etc/resolv.conf | View examples |
| Query an A record | dig example.com A +noall +answer | View examples |
| Query an AAAA record | dig example.com AAAA +noall +answer | View examples |
| Query one DNS server | dig @192.0.2.53 example.com A +noall +answer +comments | View examples |
| Run a reverse lookup | dig -x 192.0.2.25 +noall +answer | View examples |
| Retry DNS over TCP | dig +tcp @192.0.2.53 example.com A | View examples |
| Trace delegation | dig +trace www.example.com | View examples |
| Show effective DNS policy | resolvectl status | View examples |
| Query through systemd-resolved | resolvectl query example.com | View examples |
| Inspect resolver statistics | resolvectl statistics | View examples |
| Bypass the local cache | resolvectl --cache=no query example.com | View examples |
| Flush resolved caches | sudo resolvectl flush-caches | View examples |
| Request DNSSEC records | dig example.com A +dnssec +multi | View examples |
| Show per-link domains | resolvectl domain | View examples |
| Set transient split DNS | sudo resolvectl domain tun0 '~corp.example' | View examples |
| Set a per-link DNS server | sudo resolvectl dns tun0 192.0.2.53 | View examples |
| Revert transient link DNS | sudo resolvectl revert tun0 | View examples |
Networking and Connectivity · 17 commands
Linux Network Diagnostics Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show interface addresses | ip -brief address show | View examples |
| Inspect link counters | ip -s link show dev eth0 | View examples |
| Show routes | ip route show | View examples |
| Resolve an outbound route | ip route get 1.1.1.1 | View examples |
| Inspect neighbors | ip neighbor show | View examples |
| Send a bounded ping | ping -c 4 example.com | View examples |
| Test IPv6 reachability | ping -6 -c 4 example.com | View examples |
| Show listening TCP sockets | ss -lnt | View examples |
| Show established TCP sockets | ss -nt state established | View examples |
| Include owning processes | sudo ss -lntp | View examples |
| Use system name resolution | getent ahosts example.com | View examples |
| Query an A record | dig example.com A | View examples |
| Show concise DNS answers | dig +short example.com AAAA | View examples |
| Fetch response headers | curl -I https://example.com/ | View examples |
| Print an HTTP status | curl -sS -o /dev/null -w '%{http_code}\n' \
https://example.com/ | View examples |
| Bound connection time | curl --connect-timeout 5 https://example.com/ | View examples |
| Trace a request | curl -v --connect-timeout 5 https://example.com/ | View examples |
Networking and Connectivity · 14 commands
Linux nftables Firewall Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| List the ruleset | sudo nft list ruleset | View examples |
| Show rule handles | sudo nft --handle list ruleset | View examples |
| Back up active rules | sudo nft list ruleset > ./nftables.backup | View examples |
| Validate a file | sudo nft --check --file ./nftables.conf | View examples |
| Load a batch | sudo nft --file ./nftables.conf | View examples |
| Create an inet table | sudo nft add table inet filter | View examples |
| Create an input base chain | sudo nft \
'add chain inet filter input { type filter hook input priority filter; policy drop; }' | View examples |
| Allow established traffic | sudo nft add rule inet filter input ct state \
established,related accept | View examples |
| Allow loopback | sudo nft add rule inet filter input iifname lo accept | View examples |
| Allow TCP service | sudo nft add rule inet filter input tcp dport 22 ct \
state new accept comment 'management SSH' | View examples |
| Create an address set | sudo nft \
'add set inet filter admins { type ipv4_addr; flags interval; }' | View examples |
| Count rule matches | sudo nft add rule inet filter input tcp dport 443 \
counter accept | View examples |
| Monitor traces | sudo nft monitor trace | View examples |
| Monitor ruleset events | sudo nft monitor ruleset | View examples |
Networking and Connectivity · 20 commands
NetworkManager Wi-Fi and Connections Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show overall status | nmcli general status | View examples |
| List devices | nmcli device status | View examples |
| List active profiles | nmcli connection show --active | View examples |
| Inspect a profile | nmcli -f connection,ipv4,ipv6 connection show id \
'Office Wi-Fi' | View examples |
| List access points | nmcli -f IN-USE,SSID,BSSID,CHAN,RATE,SIGNAL,SECURITY \
device wifi list ifname wlp2s0 | View examples |
| Request a rescan | nmcli device wifi rescan ifname wlp2s0 | View examples |
| Connect with a prompt | nmcli --ask device wifi connect 'Office Wi-Fi' ifname \
wlp2s0 name 'Office Wi-Fi' | View examples |
| Activate using a secrets file | nmcli connection up id 'Office Wi-Fi' ifname wlp2s0 \
passwd-file /run/user/1000/nm-secrets | View examples |
| Activate by UUID | nmcli connection up uuid \
3f4f1df0-a596-4ca4-94be-31d6c0674c5e ifname wlp2s0 | View examples |
| Deactivate a profile | nmcli connection down uuid \
3f4f1df0-a596-4ca4-94be-31d6c0674c5e | View examples |
| Set autoconnect priority | sudo nmcli connection modify id 'Office Wi-Fi' \
connection.autoconnect yes \
connection.autoconnect-priority 20 | View examples |
| Configure static IPv4 | sudo nmcli connection modify id 'Office LAN' ipv4.method \
manual ipv4.addresses 192.0.2.20/24 ipv4.gateway \
192.0.2.1 | View examples |
| Set profile DNS | sudo nmcli connection modify id 'Office LAN' \
ipv4.ignore-auto-dns yes ipv4.dns \
'192.0.2.53 192.0.2.54' | View examples |
| Add a profile route | sudo nmcli connection modify id 'Office LAN' \
+ipv4.routes '198.51.100.0/24 192.0.2.1, 50' | View examples |
| Reload profiles | sudo nmcli connection reload | View examples |
| Reapply compatible settings | sudo nmcli device reapply wlp2s0 | View examples |
| Run under a checkpoint | sudo nmcli device checkpoint --timeout 60 wlp2s0 -- \
nmcli connection up id 'Office Wi-Fi' | View examples |
| Monitor changes | nmcli monitor | View examples |
| Read service logs | journalctl -u NetworkManager.service --since today \
--no-pager | View examples |
| Show nmcli version | nmcli --version | View examples |
Networking and Connectivity · 22 commands
WireGuard VPN Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show all interfaces | sudo wg show | View examples |
| Show runtime configuration | sudo wg showconf wg0 | View examples |
| List WireGuard interfaces | wg show interfaces | View examples |
| Generate a private key | umask 077; wg genkey > privatekey | View examples |
| Derive a public key | wg pubkey < privatekey > publickey | View examples |
| Generate a preshared key | umask 077; wg genpsk > presharedkey | View examples |
| Create an interface | sudo ip link add dev wg0 type wireguard | View examples |
| Load configuration | sudo wg setconf wg0 /etc/wireguard/wg0.conf | View examples |
| Assign a tunnel address | sudo ip address add 10.20.0.1/24 dev wg0 | View examples |
| Bring the link up | sudo ip link set up dev wg0 | View examples |
| Start with wg-quick | sudo wg-quick up wg0 | View examples |
| Stop with wg-quick | sudo wg-quick down wg0 | View examples |
| Save runtime state | sudo wg-quick save wg0 | View examples |
| Synchronize peer config | sudo wg syncconf wg0 /run/wireguard/wg0.stripped.conf | View examples |
| Strip wg-quick fields | sudo wg-quick strip wg0 | View examples |
| Check route selection | ip route get 10.20.0.2 | View examples |
| Show handshake epochs | sudo wg show wg0 latest-handshakes | View examples |
| Show transfer counters | sudo wg show wg0 transfer | View examples |
| Show learned endpoints | sudo wg show wg0 endpoints | View examples |
| Update one peer | sudo wg set wg0 peer PUBLIC_KEY allowed-ips 10.20.0.2/32 \
endpoint vpn.example.net:51820 | View examples |
| Remove a peer | sudo wg set wg0 peer PUBLIC_KEY remove | View examples |
| Show tools version | wg --version | View examples |
Containers, Virtualization, and Performance · 16 commands
cgroup v2 Resource Control Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Confirm cgroup v2 | stat -fc %T /sys/fs/cgroup | View examples |
| Show current cgroup | cat /proc/self/cgroup | View examples |
| List available controllers | cat /sys/fs/cgroup/cgroup.controllers | View examples |
| Find unit cgroup | systemctl show api.service -p ControlGroup | View examples |
| Run a limited scope | systemd-run --user --scope -p MemoryHigh=768M -p \
MemoryMax=1G -p CPUQuota=150% make -j4 | View examples |
| Apply memory throttle | MemoryHigh=768M | View examples |
| Apply hard memory limit | MemoryMax=1G | View examples |
| Read memory events | cat \
/sys/fs/cgroup/system.slice/api.service/memory.events | View examples |
| Set relative CPU weight | CPUWeight=200 | View examples |
| Cap CPU bandwidth | CPUQuota=150% | View examples |
| Set relative I/O weight | IOWeight=200 | View examples |
| Limit tasks | TasksMax=512 | View examples |
| List member processes | cat /sys/fs/cgroup/system.slice/api.service/cgroup.procs | View examples |
| Enable child controllers | printf '%s\n' '+cpu +memory +pids' |
sudo tee \
/sys/fs/cgroup/ops.slice/cgroup.subtree_control | View examples |
| Watch cgroup usage | systemd-cgtop --depth=3 | View examples |
| Read CPU pressure | cat /sys/fs/cgroup/system.slice/api.service/cpu.pressure | View examples |
Containers, Virtualization, and Performance · 20 commands
Containers with Podman Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Inspect engine and host | podman info --format json | View examples |
| Check subordinate ID ranges | getent subuid "$USER"; getent subgid "$USER" | View examples |
| Pull an immutable image | podman pull docker.io/library/nginx@sha256:DIGEST | View examples |
| Run with a read-only root | podman run --read-only --cap-drop=all \
--security-opt=no-new-privileges --tmpfs \
/tmp:rw,noexec,nosuid,nodev IMAGE | View examples |
| Publish only on loopback | podman run -p 127.0.0.1:8080:8080 IMAGE | View examples |
| Bound memory and CPUs | podman run --memory=512m --cpus=1.5 --pids-limit=256 \
IMAGE | View examples |
| Create an application network | podman network create app-net | View examples |
| Create a named volume | podman volume create app-data | View examples |
| Relabel a private bind mount | podman run -v /srv/app/config:/app/config:ro,Z IMAGE | View examples |
| Create a secret from standard input | printf '%s' "$DB_PASSWORD" |
podman secret create db_password - | View examples |
| Mount a runtime secret | podman run --secret db_password,type=mount IMAGE | View examples |
| Provide a build secret | podman build --secret id=npmrc,src="$HOME/.npmrc" -t \
localhost/app:build . | View examples |
| Regenerate rootless units | systemctl --user daemon-reload | View examples |
| Verify generated service | systemd-analyze --user --generators=true verify \
app.service | View examples |
| Inspect health state | podman inspect --format '{{.State.Health.Status}}' app | View examples |
| Stream lifecycle events | podman events --filter container=app | View examples |
| Preview automatic updates | podman auto-update --dry-run | View examples |
| Export a named volume | podman volume export app-data --output app-data.tar | View examples |
| Archive an OCI image | podman save --format oci-archive --output app-image.tar \
IMAGE | View examples |
| Run Podman diagnostics | podman system check --quick | View examples |
Containers, Virtualization, and Performance · 17 commands
Linux Performance Observability Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show load and uptime | uptime | View examples |
| Sample system activity | vmstat 1 5 | View examples |
| Count available CPUs | nproc | View examples |
| Sample every CPU | mpstat -P ALL 1 5 | View examples |
| Sample process CPU | pidstat -u -p ALL 1 5 | View examples |
| Summarize memory | free --human | View examples |
| Sample process memory | pidstat -r -p ALL 1 5 | View examples |
| Read memory pressure | cat /proc/pressure/memory | View examples |
| Sample extended device I/O | iostat -xz 1 5 | View examples |
| Sample process I/O | pidstat -d -p ALL 1 5 | View examples |
| Read I/O pressure | cat /proc/pressure/io | View examples |
| Read historical CPU data | sar -u -f /var/log/sa/sa12 | View examples |
| Sample queue and load | sar -q ALL 1 5 | View examples |
| Measure a bounded command | perf stat -- openssl speed -seconds 5 sha256 | View examples |
| List available events | perf list | View examples |
| Sample one process | sudo perf record --call-graph dwarf --pid 4242 -- sleep \
30 | View examples |
| Read a profile | perf report --stdio --input=perf.data | View examples |
Containers, Virtualization, and Performance · 23 commands
perf, ftrace, and eBPF Observability Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Measure one command | perf stat -- sleep 10 | View examples |
| Measure one process | sudo perf stat --pid 1234 -- sleep 10 | View examples |
| List available perf events | perf list | View examples |
| List dynamic probes | sudo perf probe --list | View examples |
| Record process call graphs | sudo perf record --call-graph dwarf --pid 1234 -- sleep \
30 | View examples |
| Open a perf report | perf report --stdio --input perf.data | View examples |
| Profile one process live | sudo perf top --pid 1234 | View examples |
| Trace one process syscalls | sudo timeout 10 perf trace --pid 1234 | View examples |
| Locate tracefs | findmnt -t tracefs -o TARGET,SOURCE,OPTIONS | View examples |
| List ftrace tracers | sudo cat /sys/kernel/tracing/available_tracers | View examples |
| List tracepoints | sudo cat /sys/kernel/tracing/available_events | View examples |
| Stream ftrace output | sudo cat /sys/kernel/tracing/trace_pipe | View examples |
| Clear the trace buffer | sudo sh -c ': > /sys/kernel/tracing/trace' | View examples |
| Disable global tracing | sudo sh -c 'echo 0 > /sys/kernel/tracing/tracing_on' | View examples |
| Probe BPF support | sudo bpftool feature probe kernel | View examples |
| List loaded BPF programs | sudo bpftool prog show | View examples |
| List BPF maps | sudo bpftool map show | View examples |
| List matching probes | sudo bpftrace --list 'tracepoint:sched:sched_process_*' | View examples |
| Count process executions | sudo timeout 30 bpftrace -e \
'tracepoint:sched:sched_process_exec { @[comm] = count(); }' | View examples |
| Show bpftrace environment | bpftrace --info | View examples |
| Check kernel lockdown | cat /sys/kernel/security/lockdown | View examples |
| Read perf restrictions | sysctl kernel.perf_event_paranoid kernel.kptr_restrict | View examples |
| Inspect profile artifact | stat --format='%a %U:%G %s %n' perf.data | View examples |
Containers, Virtualization, and Performance · 24 commands
QEMU, KVM, and libvirt Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Inspect CPU virtualization flags | lscpu | grep -E 'Virtualization|Hypervisor vendor' | View examples |
| Validate the KVM host | sudo virt-host-validate qemu | View examples |
| Show the active libvirt URI | virsh --connect qemu:///system uri | View examples |
| Inspect domain capabilities | virsh --connect qemu:///system domcapabilities | View examples |
| List every domain | virsh --connect qemu:///system list --all | View examples |
| Inspect domain state | virsh --connect qemu:///system dominfo prod-vm | View examples |
| Export inactive domain XML | virsh --connect qemu:///system dumpxml --inactive \
prod-vm | View examples |
| Request a graceful shutdown | virsh --connect qemu:///system shutdown prod-vm | View examples |
| Create a qcow2 disk | qemu-img create -f qcow2 ./prod-vm.qcow2 80G | View examples |
| Inspect image metadata | qemu-img info --backing-chain \
/var/lib/libvirt/images/prod-vm.qcow2 | View examples |
| List storage-pool volumes | virsh --connect qemu:///system vol-list default \
--details | View examples |
| Map guest disks to sources | virsh --connect qemu:///system domblklist prod-vm \
--details | View examples |
| Query guest filesystems | virsh --connect qemu:///system domfsinfo prod-vm | View examples |
| Inspect vCPU placement | virsh --connect qemu:///system vcpuinfo prod-vm | View examples |
| List domain interfaces | virsh --connect qemu:///system domiflist prod-vm | View examples |
| List DHCP leases | virsh --connect qemu:///system net-dhcp-leases default | View examples |
| Inspect network configuration | virsh --connect qemu:///system net-dumpxml default | View examples |
| List snapshot ancestry | virsh --connect qemu:///system snapshot-list prod-vm \
--tree | View examples |
| Start a defined live backup | virsh --connect qemu:///system backup-begin prod-vm \
--backupxml /etc/libvirt/backup/prod-vm.xml | View examples |
| Inspect a block job | virsh --connect qemu:///system blockjob prod-vm vda \
--info --bytes | View examples |
| Check an offline image | qemu-img check /srv/backups/prod-vm/prod-vm.qcow2 | View examples |
| Check destination CPU compatibility | virsh --connect qemu+ssh://hv2/system \
hypervisor-cpu-compare prod-vm.migratable.xml --error \
--validate | View examples |
| Inspect domain security labels | virsh --connect qemu:///system dominfo prod-vm |
grep -E '^Security' | View examples |
| Read the QEMU domain log | sudo journalctl -u 'virtqemud*' --since -30min | View examples |



