# Mission: Bash

## Why

I want to stop being locked out of the layer my tools actually run on. Right now bash shows up in my work as opaque text — install scripts, CI configs, deploy commands — that I copy, paste, and hope about. The goal is to be able to write my own automation, understand a script before I run it, and operate confidently on a remote server.

## Success looks like

- I can read an unfamiliar script (a Dockerfile `RUN`, a CI step, a `curl | bash` installer) and say what it does line by line — including what it would do to my machine.
- I can turn a sequence of commands I keep retyping into a saved, reusable script that takes arguments.
- I can SSH into a server, find the right log file, and pull the lines I need out of it.
- I can tell, before pressing Enter, which commands are destructive and which are safe.

## Constraints

- Starting from near-zero terminal experience. Everything must be built up from the anatomy of a command — no assumed knowledge of `cd`, pipes, or paths.
- Learning across multiple short sessions, not one long sitting. Lessons must be completable quickly and reviewable later.
- macOS (Darwin) is the working environment; server targets are likely Linux. Where these differ in a way that will bite, the difference gets called out explicitly.

## Out of scope

- Other shells (zsh, fish) as topics in their own right. Noted only where macOS's zsh default would otherwise cause confusion.
- Advanced text processing as a discipline — deep `awk`/`sed` programming. Practical one-liners only, as the mission needs them.
- System administration beyond what the deploy/log-reading goal requires.
