## ⚔️
- Previous: [[Installing Bash]]
- Next: [[What is a Shell Scripting?]]
---
> _"a **shell** is a computer program which exposes an operating systems's services to a [program]"_ [^1]
Operating Systems (_e.g. Windows, macOS, etc_) have files and folders.
Most operating systems provide a graphical-user interface (GUI) for browsing, creating, and deleting files.
But there is an alternate way to edit files: **command-line interfaces**.
> _"A **command-line interface** (**CLI**) processes commands to a computer program in the form of lines of text."_ [^2]
Using a GUI, one might right-click > "New Folder" to create a folder.
But using a CLI, one might type the `mkdir` command (_short for `m`a`k`e `dir`ectory_):
```sh
mkdir MyFolder
```
Using a GUI, one might double-click a folder to enter it and browse its contents.
But using a CLI, one might use the `cd` (_`c`hange `d`irectory_) and `ls` (`l`i`s`t) commands to enter a directory and list its contents:
```shell
cd MyFolder
ls
```
Both the GUI and CLI programs (_e.g. which allow you to edit files_) are called **shells**.
[Bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) is an example of a [command-line shell](https://en.wikipedia.org/wiki/Shell_(computing)#Command-line_shells).
> _"A [command-line interface](https://en.wikipedia.org/wiki/Command-line_interface "Command-line interface") (CLI) is an operating system **shell** that uses [alphanumeric](https://en.wikipedia.org/wiki/Alphanumeric "Alphanumeric") characters typed on a keyboard to provide instructions and data to the operating system, interactively."_ [^3]
[^1]: https://en.wikipedia.org/wiki/Shell_(computing)
[^2]: https://en.wikipedia.org/wiki/Command-line_interface
[^3]: https://en.wikipedia.org/wiki/Shell_(computing)#Command-line_shells