Recently a pull request was submitted to the Zephyr tree introducing a new shell subsystem replacing the original shell. The new shell, if we can call it a shell comes with lots of new features and opens the gates for lots of additions and improvements. This is after all intended for debugging and testing, but it can provide an interface to interactively interface with Zephyr internals.
From the original PR, here are the highlights:
- Multi-instance – you can have independent shells on different transmission mediums
- Multiline commands
- Integration with Log module – you can read logs on the shell screen, filter them dynamically (activate logs only for needed modules), suspend or resume
- Smart completion with the Tab key. One can prompt and partially/fully complete commands or its subcommands.
- Commamands history,
- Build-in commands,
- Easy command edidtion with buttons: Tab/Backspace/Delete/Arrows/Home/End
- Meta Keys
- Wildcards support – so far only ‘*’ character
- Kconfig configuration to optimize resources usage.