Shells are computer user interfaces that typically refer to a text-only or primarily text-based command prompt.

My macOS terminal window showing the bash shell with an active virtualenv.

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 man pages.

  • Shell productivity tips and tricks covers how to increase your effectiveness on the shell across topics such as navigating history, autocompletion, and pattern matching.

What do you want to learn about Python development?

What editor should I use to code my Python app?

I've built a Python web app, now how do I deploy it?

Tell me about standard relational databases.

Matt Makai 2012-2022