Shells
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
environment named fullstackpython within the macOS Terminal application.
Shell resources
-
cmd is the Pythonic standard library module that can be used for building your own shells. The Python CmdModule wiki page has a great overview of the module and its capabilities.
-
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.
-
Super Charge Your Shell For Python Development covers aliases, environment variables via Autoenv and some basic shell commands often used during development.
-
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.
-
explainshell (source code) is a wonderful little tool that shows how input and arguments in the shell break down and are interpreted by commands. The data is pulled from the Ubuntu
manpages. -
Shell productivity tips and tricks covers how to increase your effectiveness on the shell across topics such as navigating history, autocompletion, and pattern matching.