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.
Shell productivity tips and tricks covers how to increase your effectiveness on the shell across topics such as navigating history, autocompletion, and pattern matching.