The shell is a command line interface where the user can execute
various commands to control, debug and monitor its application.

The shell module has a few configuration variables that can be used to
tailor the shell to the application requirements. Most noticeably is
the configuration variable CONFIG_SHELL_MINIMAL. If set to 0
all the shell functionality is built; including tab completion, cursor
movement, line editing and command history. If set to 1 only the
minimal functionality is built; only including tab completion and line
editing at the end of the line.

The shell main function that listens for commands on the input channel and send response on the output channel. All received commands are passed to the debug file system function fs_call() for execution.

Here is an example of using the shell to list and execute debug file system commands.