Cisco routers run the Cisco Internetworking Operating System (IOS) with a command-line interface (CLI). The IOS also runs on some Cisco switch models, and it uses CLI. However, in some cases, the IOS CLI on a switch is slightly different than on a router. Furthermore, the IOS on the 1900 series switches is slightly different than on some other Cisco IOS-based switches.
Cisco IOS Software Command-Line Interface
The majority of Cisco routers run Cisco IOS Software with the command-line interface (CLI). The CLI is used to interface with the device and send commands to the device. This is achieved through the use of a terminal, a terminal emulator, or a Telnet connection. Some routing cards, such as the Multilayer Switch Feature Card (MSFC) daughter card for the Catalyst 6000 series LAN switches, also run Cisco IOS Software. Understanding the Cisco IOS Software CLI is as fundamental to supporting routers.There are three ways in which you can access the CLI: you access the router through the console; through a dialup device through a modem attached to the auxiliary port; or by using a Telnet connection. Which ever method you use, you enter user exec mode first. User exec mode is one of three command exec modes in the IOS user interface. Enable mode, also known as privileged mode or Privileged exec mode, and command mode are the others. Enable mode is so named because the enable command is used to reach this mode. User mode allows commands that are not disruptive to be issued, with some information being displayed to the user. Privileged mode supports a superset of commands compared to user mode. However, none of the commands in user mode or privileged mode changes the configuration of the router.
Passwords are required for Telnet and auxiliary access as of Cisco IOS Release 12.x and later. However, there are no preconfigured passwords; therefore, you must configure passwords for Telnet and auxiliary access from the console first.
All Cisco routers have a console port, and most have an auxiliary port. The console port is intended for local administrative access from an ASCII terminal or a computer using a terminal emulator. The auxiliary port is intended for asynchronous dial access from an ASCII terminal or terminal emulator; the auxiliary port is often used for dial backup.
The CLI Help Features
Typing ? in the console displays help for all commands supported by the CLI mode. In other words, the information supplied by using help depends on the CLI mode. If ? is typed in user mode, the commands allowed only in privileged exec mode are not displayed. Also, help is available in configuration mode; only configuration commands are displayed in that mode of operation. IOS stores the commands that you type in a history buffer. The last ten commands are stored by default. You can change the history size with the terminal history size size command, where size is the number of IOS commands for the CLI to store; this can be set to a value between 0 and 256. You can then retrieve commands so that you do not have to retype the commands.
Syslog Messages and the debug Command
IOS creates messages, which are called syslog messages, when different events occur and, by default, sends them to the console. The router also generates messages that are treated like syslog messages in response to some troubleshooting tasks that you might perform. The debug command is one of the key diagnostic tools for troubleshooting problems on a Cisco router. It enables monitoring points in the IOS and generates messages that describe what the IOS is doing and seeing. When any debug command option is enabled, the router processes the messages with the same logic as other syslog messages.
The console port always receives syslog messages; however, when you Telnet to the router no syslog messages are seen unless you issue the terminal monitor command. Another alternative for viewing syslog messages is to have the IOS record the syslog messages in a buffer in RAM and then use the show logging command to display the messages. For Telnet users, having the messages buffered using the global config command logging buffered is particularly useful. Finally, the logging synchronous lineconfiguration subcommand can be used for the console and vtys to tell the router to wait until the last command output is displayed before showing any syslog messages onscreen.
Syslog messages also can be sent to another device. Two alternatives exist: sending the messages to a syslog server, and sending the messages as SNMP traps to a management station. The logging host command, where host is the IP address or host name of the syslog server, is used to enable sending messages to the external server. After SNMP is configured, the snmp-server enable traps command tells the IOS to forward traps, including syslog messages.