In a previous life I wrote (about a third of) a system that configured routers by sending them IOS commands over telnet. It didn't seem like an improvement over SNMP to me — we configured most routers over SNMP, but couldn't for the Cisco IOS ones — but it's definitely a better way to navigate a menu tree than the traditional
[1] Configure from NV memory
[2] Configure from a TFTP network host
[3] Overwrite NV memory from TFTP network host
[0] Return to previous menu
Enter your selection> |
For things that don't fit well into a hierarchical tree of selections augmented with bureaucratic forms — either because it isn't obvious what category you're going to find something in (
why is "Preferences" on the "Edit" menu‽) or because it involves operations on more than one object at a time, or creating objects that don't exist yet — the improvement is zero or negative.
This appears even in the above example: you can get configuration data from three places and send it to two places (running-config and startup-config), but only four of the six combinations of source and destination are available. If you want to overwrite NV memory from the terminal, you first "configure terminal", and when you're done, you use a totally different command, "copy running-config startup-config", to overwrite NV memory. And there's a third unrelated command to send a configuration to your terminal, "show running-config" (or, as you would expect, "show startup-config" or for that matter "sh start".)
When it comes to things like "ip route 10.2.0.0 255.255.0.0 10.1.0.2" I really don't want to be using the CLI interactively; I want to be using a text editor so that I can copy the line for 10.4.0.0/16 which goes through the same router and just change 4 to 2, and then I can diff the config with the config I'm setting on the other router and see if the differences are only the intended differences. But if I were using it interactively, it would sure be nice to be able to move the damn cursor field by field rather than character by character and see some kind of real-time indication that 10.1.0.2 is not a valid netmask if I get the order of fields wrong.