# Terminal Interfaces {#term}

Here, we'll encounter a couple new terms. A _shell_ is a program that provides a command prompt and thus allows us to operate our computer by running other programs. For Windows it's **CMD**; for macOS and Linux, it's the **terminal** application. **Bash** and **zshell** are scripting languages for executing commands in the shell. Thus, you'll hear terms like the _bash shell_. For macOS, Bash was the default for a long time but it is now zshell.

## For Windows users

You may be surprised to hear that Windows is _not_ the favored OS of data scientists, or many developers even. The reasons  mostly revolve around stability, compatibility, ease-of-use and transparency. A *_nix_ operating system is typically preferable. This refers to Unix-based OSs, such as Linux or macOS.

Instead of trouble-shooting incompatibilities with Windows, we ask that Windows users install [Windows Subsystem for Linux 2](https://docs.microsoft.com/en-us/windows/wsl/about). With WSL2, Windows users will be able to run install and run a Linux operating system.

After installing WSL2, please install Ubuntu, a popular Linux operating system. 

### Windows Terminal

If you want to use command line tools in Windows directly, please install a Linux emulator. Git Bash comes with an installation of [git](https://gitforwindows.org/). 

You may want to consider replacements for the default terminal on your machine. For Mac OS see [iterm2](https://www.iterm2.com/) and for Windows see [terminator](https://terminator-gtk3.readthedocs.io/en/latest/). Alternatives to such tools, with a steeper learning curve, but also ones that will be working on a remote machine without a GUI are [tmux](https://github.com/tmux/tmux/wiki) and [screen](https://linuxize.com/post/how-to-use-linux-screen/) - the so called terminal multiplexers.

### For *nix system users

Use the `Terminal` application to access your command line. To make the interface a bit nicer, we recommend you use [oh-my-zsh](https://ohmyz.sh/).

::: {.rmdnote}

Codecademy offer a 2-hour online course on the [command line](https://www.codecademy.com/learn/learn-the-command-line).

:::

::: {.rmdnote}

The definitive source is O'Reily's _Data Science at the Command Line_. The second edition, released at the end of 2021, is available as a [free eBook](https://www.datascienceatthecommandline.com/).

:::