Bash in Depth
Learn the terminal from your first command to complete applications written in bash: find your way, organize files, search and report on data with pipes, make…
Updated
Module 1: Meet the Terminal
Open a terminal on your own computer and find your way around it: where you are, what's in a folder, how to get anywhere, how to read a file and how to get help.
- Welcome to the Terminal (4 topics, 9 lessons)
- Finding Your Way (3 topics, 5 lessons)
- Reading and Getting Help (4 topics, 4 lessons)
Module 2: Working with Files
Make, copy, move, rename, archive and delete files, many at a time and without regret, then write to files, edit them in the terminal and see what's filling your disk.
- Making and Moving (4 topics, 5 lessons)
- Deleting, Writing and Editing (4 topics, 5 lessons)
- Space and Archives (4 topics, 4 lessons)
Module 3: Search, Pipes and Text
Find text in hundreds of files and files anywhere, then chain commands with pipes and redirection, up to sed and awk reports on real-looking data.
- Finding Things (3 topics, 4 lessons)
- Pipes and Redirection (3 topics, 6 lessons)
- Text Power Tools (3 topics, 4 lessons)
Module 4: Your Shell, Your Way
Variables, PATH and permissions explained, then a shell set up the way you like it: aliases, startup files, a prompt in your colors, the tools worth installing and the shortcuts that make you fast.
- How the Shell Finds Things (3 topics, 6 lessons)
- Making It Yours (3 topics, 6 lessons)
- Working Fast (3 topics, 5 lessons)
Module 5: Scripts Are Applications
A file of commands is an application: write scripts that take arguments, ask questions, make decisions and loop over files, and run them by name from anywhere.
- Your First Script (3 topics, 5 lessons)
- Input, Quotes and Values (3 topics, 5 lessons)
- Decisions (2 topics, 4 lessons)
- Loops (2 topics, 4 lessons)
Module 6: Building Real Tools
Turn scripts into tools people can trust: functions and arrays, clear errors, strict mode, debugging, tests, options and subcommands, saved data, friendly output, CSV, JSON and the web.
- Functions and Arrays (3 topics, 6 lessons)
- Scripts You Can Trust (3 topics, 7 lessons)
- A Real Command-Line App (3 topics, 5 lessons)
- Data from Anywhere (4 topics, 5 lessons)
Module 7: Running a Computer
Look after a Linux or Mac computer from the terminal: processes and jobs, users, logs, services, health checks, scheduled jobs, backups, SSH and network checks.
- Processes and Jobs (3 topics, 4 lessons)
- System Health (3 topics, 5 lessons)
- On a Schedule (3 topics, 4 lessons)
- Other Computers (4 topics, 6 lessons)
Module 8: The Developer's Terminal
The scripts every software project has, secrets kept out of them, Git hooks, sharing your own tool, tmux, waiting and parallel work, and when to reach for another language.
- Project Scripts (3 topics, 6 lessons)
- Many Things at Once (3 topics, 4 lessons)