Cisco IOS

What is show running-config in Linux?

There is no single equivalent, because Linux has no unified device configuration. Network state is spread across the kernel's addresses, its routing tables, the netfilter rule set and any routing daemons. To see what show running-config would show, you run several commands: ip addr show, ip route show, iptables-save (or iptables -S for one table), and birdc show protocols where a routing daemon is in use.
Try it in a live lab

Free interactive lab. No signup. Runs in your browser.

Command by command

Cisco IOSLinuxWhat it gives you
show running-configip addr show; ip route show; iptables-saveThe nearest composite view
show running-config interface ge0ip addr show dev ge0One interface
show running-config | include routeip route showRouting only
show startup-configno direct equivalentDepends on the distribution's config files, not a command
copy running-config startup-configno direct equivalentNo equivalent — nothing is running-only in the same sense

What the output looks like

$ ip addr show dev ge0
2: ge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet 10.0.2.2/24 scope global ge0

$ ip route show
default via 10.0.2.1 dev ge0
10.0.2.0/24 dev ge0 proto kernel scope link src 10.0.2.2
10.0.3.0/24 dev ge1 proto kernel scope link src 10.0.3.1
10.0.4.0/24 via 10.0.3.2 dev ge1 proto bird metric 32

$ iptables-save -t filter
# Generated by iptables-save v1.8.9 (nf_tables) on Mon Sep 14 12:00:00 2026
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT
COMMIT
# Completed on Mon Sep 14 12:00:00 2026

Why the two differ

IOS treats the device as one configured object with a single text representation, which is why show run exists and why copy run start is meaningful. Linux has no such object. The kernel holds live state that was put there by some combination of boot-time config files, a network manager, DHCP and manual commands, and it does not record which. So there is no authoritative text to print — only the current state, read out of several subsystems.

The trap

The distinction between running and startup config does not exist either, and that catches people out in the opposite direction. Every change made with ip is immediately live and immediately volatile: there is no copy run start to make it stick, and a reboot throws it away, much as an IOS reload discards an unsaved change. Persistence means editing whatever your distribution uses — netplan, NetworkManager, systemd-networkd — which is a completely separate step.

Common questions

Is there a tool that prints everything at once?

Not as a readable configuration. ip addr show, ip route show table all and iptables-save cover most of it. The nearest thing to show tech-support is sos report on Red Hat and Ubuntu systems, which gathers a diagnostic archive rather than printing a config.

Where does the configuration actually live on disk?

It depends entirely on the distribution. Ubuntu server typically uses netplan YAML under /etc/netplan/, desktop systems usually NetworkManager under /etc/NetworkManager/, and others use systemd-networkd under /etc/systemd/network/. Checking which one is active is the first step.

Stop reading, start running

Open the lab, go live, and run iptables -S against real Linux networking in your browser. No install, no signup.

Launch the lab →