A Cmd instance has the following methods:
The optional argument is a banner or intro string to be issued before the first prompt (this overrides the intro class member).
If the readline module is loaded, input will automatically inherit bash-like history-list editing (e.g. Ctrl-P scrolls back to the last command, Ctrl-N forward to the next one, Ctrl-F moves the cursor to the right non-destructively, Ctrl-B moves the cursor to the left non-destructively, etc.).
An end-of-file on input is passed back as the string 'EOF'.
An interpreter instance will recognize a command name "foo" if and only if it has a method do_foo(). As a special case, a line containing only the character "?" is dispatched to the method do_help(). As another special case, a line containing only the character "!" is dispatched to the method do_shell (if such a method is defined).
All subclasses of Cmd inherit a predefined do_help. This method, called with an argument bar, invokes the corresponding method help_bar(). With no argument, do_help() lists all available help topics (that is, all commands with corresponding help_*() methods), and also lists any undocumented commands.
Instances of Cmd subclasses have some public instance variables: