Cisco IOS CLI Survival Kit
Was man eigentlich schon immer über das Cisco Commandline Interface wissen wollte, aber nie zu fragen wagte.
Ein IOS Gerät kennt eigentlich 3 Modi: Exec, Privileged und Configuration.
Die 3 Modi unterscheiden sich durch den Prompt am Anfang der Zeile. Im Exec Modus sieht er etwa so aus:
Router>
Im Exec Modus stehen nur eine begrenzte Anzahl von Befehlen zur Verfügung.
Router>? Exec commands: connect Open a terminal connection disconnect Disconnect an existing network connection enable Turn on privileged commands exit Exit from the EXEC help Description of the interactive help system logout Exit from the EXEC ping Send echo messages ppp Start IETF Point-to-Point Protocol (PPP) rlogin Open an rlogin connection set Set system parameter (not config) show Show running system information ssh Open a secure shell client connection systat Display information about terminal lines telnet Open a telnet connection terminal Set terminal line parameters traceroute Trace route to destination where List active connections
In den Enable Modus wechselt man durch Eingabe von enable
und dem Enable Passwort, wenn denn eins gesetzt ist.
Router>enable Router#
Der Prompt ändert sich in Router#
und man kann jetzt zum Beispiel in den Config-Modus wechseln, sich die laufende oder Startkonfiguration anzeigen lassen, clear
Befehle absetzen und generell das System beeinflussen.
Bewegen auf der Kommandozeile
Wer sich einigermaßen auf einer Unix Shell bewegen kann sollte auch mit dem IOS keine Probleme haben. IOS bietet eine Historyfunktion über die Cursortasten und emacs-Tastaturkürzel. ctrl-a
springt zum Anfang der Zeile, ctrl-e
zum Ende, ctrl-w
löscht ein Wort rückwärts und kann auch mehrfach verwendet werden. ctrl-y
fügt das soeben gelöschte wieder ein. Befehle lassen sich durch ein- oder mehrfache Eingabe von ctrl-^
abbrechen. Unter Windows ist das meistens ctrl-shift-6
, sieht aber auf dem Mac oder unter Unix ganz anders aus
Kommando Vervollständigung
Ist man sich nicht mehr ganz sicher, ob das Kommando das man grade absetzen möchte das richtige ist, oder wenn man die Parameter nicht mehr so ganz im Kopf hat, bietet sich das ?
an. Durch Eigabe eine ?
erhält man eine kontextsensitive Hilfe, die mögliche Eingaben oder Kommandovervollständigungen anbietet.
Ein nicht ganz ausgeschriebenes Kommando läßt sich über die tab
Taste vervollständigen. Ebenso lassen sich die meisten Kommandos abkürzen. Statt einem show ip bgp summary
kann man das ganze auch durch sh ip bgp sum
abkürzen.
Output Modifiers
Wenig bekannt, aber oft gebraucht: Output Modifiers. Mit ihnen kann man die Ausgabe von Kommandos gezielt filtern, ähnlich grep
bei Unix. Zu diesen Filtern gehören include
, exclude
und begin
. Benutzt werden diese durch Anhängen einer "Pipe", also dem Zeichen |
. Beispiel: show running-config | begin router bgp
zeigt die laufende Konfiguration ab der Zeile an, die router bgp
enthält.
include
und exclude
sollten halbwegs selbsterklärend sein.
Tipps & Tricks
terminal length 0
hält einem den --more--
Prompt vom Hals, scrollt dann aber selbstätig durch bis zum Ende. show ip bgp
(Anzeige der BGP Tabelle) mit 170000 Routen ist hier eine schlechte Idee.
Man sollte sich für seine Terminalsessions logging synchronous
konfigurieren, da sonst der aktuelle Prompt auch gerne mal von Logmeldungen überschrieben werden kann.
Router# configure terminal
Router(config)# line vty 0 15
Router(config-line)# logging synchronous