Shells are computer user interfaces that typically refer to a text-only or primarily text-based command prompt.
The above screenshot shows the bash shell with an active Python virtual
fullstackpython within the macOS Terminal application.
Give your Python program a shell with the cmd module shows a short code example of how to use cmd to build a simple shell.
Terminal latency quantifies the impact of lag in your keystrokes appearing on the screen. It's a fascinating look at how a small difference of tens of milliseconds causes some shells and editors to feel slow while others are snappy.
Why Create a New Unix Shell? is a post by the creator of Oil shell that goes into the rationale for building a new shell even though so many others such as Bash, zsh, PowerShell and KornShell already exist.