Shell in Linux (Bash, Zsh, Dash - features and differences)

The shell is the program you type commands into, and Linux offers several: Bash is the everyday standard, Zsh adds power and polish for interactive use, and Dash is a tiny fast shell built for running scripts quickly.

9 min read · 8 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

One job, several programs

You now know the shell is the layer you type commands into. Here is something that surprises many beginners: the shell is not a single fixed thing. It is just a program, and Linux offers several different shell programs you can choose from.

The three you will hear about most are Bash, Zsh, and Dash. They all do the same core job, read your commands and run them, and share much of the same syntax, but they differ in features and purpose. This lesson compares them so you know what you are using, and why this course uses Bash.

Theory

What a shell is, again

A shell is a command interpreter: it presents a prompt, reads the command you type, and arranges for it to run. Because it is an ordinary program, the system can offer more than one, and you can even switch between them.

All the shells here belong to the same family (descended from the original Bourne shell), so their basic syntax, running commands, using pipes, writing simple scripts, is largely shared. What differs is the extra features each adds and how each is best used. You can check which shell you are in by looking at the SHELL variable or the prompt.

At a glance

ShellFull nameCharacter and typical use
BashBourne Again SHellThe common default; feature-rich; the standard for interactive use and scripts (this course)
ZshZ ShellBash-like but with richer interactive features: better completion, themes, plugins
DashDebian Almquist SHellSmall, fast, minimal; POSIX-only; used to run system scripts quickly, not for daily typing

Formula

Bash is your default, and this course's shell

On most Linux systems, including a typical campus lab server, Bash is the default interactive shell, and it is what this course uses for every command and script. It is powerful, universally available, and thoroughly documented.

Zsh is a popular choice for people who want a fancier interactive experience (it is the default on recent macOS). Dash you rarely type in directly; the system uses it behind the scenes to run scripts fast. When in doubt in this course, assume Bash.

Practical

Which shell am I using?

echo $SHELL        # prints your login shell, e.g. /bin/bash

# The path names the shell program:
#   /bin/bash  -> Bash
#   /bin/zsh   -> Zsh
#   /bin/dash  -> Dash (often linked as /bin/sh)

Quiz

Which shell is small, fast, and POSIX-focused, commonly used to run system scripts quickly rather than for everyday interactive typing?

  1. Bash, because it is the biggest
  2. Dash, the Debian Almquist SHell, a minimal fast shell often used as /bin/sh for scripts
  3. Zsh, because it has the most interactive features
  4. None; all Linux shells are identical
Show the answer

Dash, the Debian Almquist SHell, a minimal fast shell often used as /bin/sh for scripts

Dash (Debian Almquist SHell) is the small, fast, minimal shell built to run scripts quickly; it sticks to POSIX and deliberately omits heavy interactive conveniences, which is why systems often use it as /bin/sh for startup and system scripts. Option A is wrong: Bash is feature-rich and is the everyday interactive default, not the minimal script-runner. Option C is the opposite of the description: Zsh is the one loaded with interactive features (completion, themes, plugins), so it is not the minimal choice. Option D is false: the shells share core syntax but genuinely differ in size, speed, and features. Match the tool to the job: Bash for daily use, Dash for lean fast scripting.

Think first

If they share syntax, why do multiple shells exist?

Bash, Zsh, and Dash all run the same basic commands. So why not just have one? Then tap.

Show the answer

Because different situations reward different trade-offs between features and leanness. DASH exists for SPEED and SIMPLICITY: when the system boots and runs hundreds of small scripts, a tiny, fast, strictly standard shell starts and finishes quicker than a big one, so using Dash as /bin/sh makes the whole system snappier and more predictable. ZSH exists for a richer INTERACTIVE experience: people who spend all day at the terminal enjoy its smarter tab-completion, spelling correction, themes, and plugins, conveniences that would be wasted overhead in a boot script. BASH sits in the middle as the practical DEFAULT: powerful enough for real interactive work and scripting, available almost everywhere, and deeply documented, which is why it is the safe standard to learn. The shared Bourne-family syntax means your basic skills transfer across all of them, so learning Bash well prepares you for the others. Multiple shells is choice, not chaos: pick the one whose balance of speed and features fits the task. Learn Bash first; it travels well.

Summary

Key takeaways

  • A shell is a command interpreter, and it is just a program, so Linux offers several to choose from.
  • Bash (Bourne Again SHell) is the common default: feature-rich, universal, and the shell this course uses.
  • Zsh (Z Shell) is Bash-like with richer interactive features (completion, themes, plugins); default on recent macOS.
  • Dash (Debian Almquist SHell) is small, fast, and POSIX-only, used to run system scripts quickly, not for daily typing.
  • All are Bourne-family, so they share core syntax; your basic skills transfer between them.
  • Check your shell with echo $SHELL; the path (like /bin/bash) names the program.
  • Memory hook: Bash for everyday, Zsh for a fancy prompt, Dash for fast scripts.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Introduction to Linux Operating System

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Shell in Linux (Bash, Zsh, Dash - features and differences) · Linux Operating System (LOS) (Minor-04) · Gri-Learn