The Unix Shell
There are multiple ways of interacting with a computer. In general, operating systems use either a graphical user interface (GUI) with a mouse, or a command-line interface (CLI) with just a keyboard.
The shell is just a program that exposes the operating system's services to a person or other programs via a CLI. As you might imagine, there are multiple implementations of the shell program. The two most common nowadays are bash
and zsh
(Linux usually uses bash
while MacOS uses zsh
, which is pretty similar to bash
).
Think of the shell as both a command line interface and a scripting language, allowing you to automate repetitive tasks if needed.
The shell is one of the most powerful tools a developer can have. Once you master it, it will allow you to perform mundane task (such as viewing the contents of a directory) and really complex task, such as copying files to a remote computer in another part of the world.
Basics
If you don't have experience with the shell, we recommend you to go through this tutorial first.
If you have some experience, please check this link and make sure you are familiar with most of the concepts presented there.