Unix Shell

Bash

What it is

A Unix shell is a program that reads commands, runs them, and connects their input and output. Its power is not the commands themselves but the composition: every command is a small tool that reads text, writes text and reports success or failure, and the shell wires them together. The toolset is the filesystem, permissions, environment and pipelines; fluency in it comes from the small vocabulary being genuinely general.

Why it matters

The shell is the default interface of every server, container and build pipeline you will meet. A task that takes twenty clicks in a graphical tool is one command here, and the same command runs identically on a colleague’s machine and in the deployment pipeline. That reproducibility is the real argument: a command is a record of what was done that can be read, repeated and put in a script. It is also the fastest way to answer questions about a system — which process holds this port, what changed in this directory, which files contain this string.

In this track

  1. Pipelines and filters (01-cs-fundamentals/13-unix-shell/01-pipelines-and-filters) — the three streams, pipes, redirection and the small text tools that compose.
  2. Files, permissions and environment (01-cs-fundamentals/13-unix-shell/02-files-permissions-and-environment) — where things live, who may touch them, and how a command finds what it needs.

Prerequisites

None.

Go deeper