5.10.1 Cmd Objects

Repeatedly issue a prompt, accept input, parse an initial prefix off
the received input, and dispatch to action methods, passing them the
remainder of the line as argument.

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 beginning with the character "?" is dispatched to
the method do_help(). As another special case, a line
beginning with 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.