If you have worked on Cisco devices for any length of time, or even if you have just started work with Cisco routers, you know that the Cisco command line interface can be a frustrating thing. The consistency of the syntax of a given command can vary significantly from platform to platform, device to device and even between different versions of IOS. Don’t get me wrong it is getting better but it can still be a point of frustration
Some History on the Cisco Command Syntax.
In the old days we used to have Catalyst switches and IOS routers. This was mainly due to aquisition of the Catalyst platform. Most of the issues with variances in the command syntax is due to aquisition. Many new network equipment vendors will actually create their appliances with a Cisco like command structure. Not only to leverage the technical support base but to also make any potential future aquisition appealing to Cisco.
But with as many aquisitions as Cisco has had, remembering command line systax becomes almost useles.
Then we had PIX firewalls that used something known as conduits to enable traffic to securely flow through the firewall. This was later changed to ACL’s, which are completely opposite of conduits. Talk about confusing.
Can I get an AMEN for the question mark?
If you pull out any Cisco IOS command reference the main disclosure statement included at the top of everyone is:
“The supported commands can vary depending on the version of software in use.”
This is their way to saying the command SHOULD work like this but when in doubt, punt!
“To display a comprehensive list of commands, enter a question mark (?) at the prompt.”
And now to make things even more interesting we now have the Cisco Nexus platform.
Nexxus is the next generation of switching platforms for Cisco and the syntax is even more precarious.
- IGP protocols are defined at the interface level.
- IP addresses are stored in CIDR notation.
- Displaying HSRP information is completely different.
- Good luck trying to do a “show standby” That command is completely gone!
This is just the tip of the iceburg.
If you have ever setup a network monitoring system, pull backups, query an SNMP MIB, or run a regular expression
against your inventory of Cisco gear if can be MADDENING!!!
Take routing protocols for example. I want to see my neighbors for bgp and for ospf.
show ip bgp neighbors
show ip ospf neighbor <– neighbor? NOT neighbors?!?!
I honestly feel for new network admins and engineers who are studying for a Cisco Certification Exam and trying to memorize these differences in Cisco commands. They are all extremely similar but different enough to be wrong (especially on a test).
So how on earth does Cisco expect us to keep up with all of this.
Granted most people never even realize some fo these nuances. they hit tab to complete the command or simply use the question mark (?) to see the syntax. And then we all just type in the first couple of letters and hit tab again.
What inconsistencies piss you off with the Cisco command line? Feel free to join in the frustration. Leave your comment below?