So what actually the Shell is?
The Shell is the “program” that runs on the server side that provides the command-line interface between the user and the operating system.
It’s the program that reads, interprets and run the commands that you type when you connect to a server.
The shell interprets the commands you enter and some of them are “executed” by the shell itself, and others are passed to the operating system to be executed by a program.
Different shells exist — some are mostly historical, while others are still widely used today. The most common ones are bash and zsh. zsh is especially popular among power users and developers 😉
On Linux, every user can choose which shell they want to use as their default login shell.
🧠 Why are there different shells?
Because over time, developers built new shells with more features, better scripting, customization, performance, or user experience — just like how web browsers or text editors evolved.
Each shell aims to:
- Improve on limitations of older shells
- Add scripting capabilities
- Provide better interactivity (autocomplete, colors, plugins, etc.)
- Cater to specific use cases (like scripting vs. interactive use)