Skip to content

About

Learn Linux and Bash by doing: 20-day Linux course, 30-day Bash course, a 12-step admin path with a capstone, plus small tested scripts. Every lesson has exercises, solutions and safe practice labs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

153 stars

Watchers

5 watching

Forks

Repository files navigation

Learn Linux with Ease

CI License: MIT

Linux and Bash lessons with exercises and solutions, a few small scripts to read and extend, and a test suite for those scripts. The lessons are written to be typed and run, not just read.

Courses

Course What it covers Format
Linux in 20 days Using Linux: files, permissions, processes, networking, services One lesson per day, with exercises and solutions
30 days of Bash Shell scripting, from a first script to a final project One lesson per day, with exercises and solutions
12-step Linux path Administration: users, networking, security, storage, backup, automation, containers, plus a capstone Tasks with commands, verification and undo steps

If you are new to the terminal, set up a lab first (setup/README.md), then follow Linux in 20 days. If you already use Linux, start with 30 days of Bash or the 12-step path.

Each day lesson has the same sections: goal, concepts, a worked example, common mistakes, exercises (easy, medium, hard), a "break it" debugging exercise, solutions, a self-check and a cheat sheet. The format is described in the style guide. Commands that can lock you out or destroy data have a warning before them and an undo step after them. Anything that could not be run while writing the lessons is marked as typical output.

Projects

Small scripts, each with a README, tests and exercises. See projects/README.md.

They share the helpers in lib/common.sh. The tests are in tests/.

Getting started

git clone https://github.com/akintunero/learn-linux-with-ease.git
cd learn-linux-with-ease
projects/todo-list/todo.sh add "Learn Linux"
projects/todo-list/todo.sh list

To run the checks (ShellCheck, shfmt, syntax check and the Bats tests):

make setup   # Debian/Ubuntu: installs bats, shellcheck, shfmt and jq
make check

Requirements: Bash 4.4 or newer (developed on Bash 5; the Bash 3.2 that ships with macOS is too old, so use brew install bash), Linux, WSL or macOS. The API client needs curl and jq, and the container manager needs docker. A dev container with everything installed is available.

Contributing

Corrections, new exercises and better explanations are welcome. Read CONTRIBUTING.md and the style guide. If a lesson confused you or a command failed, open a lesson feedback issue. Report security problems as described in SECURITY.md.

License

MIT.

About

Learn Linux and Bash by doing: 20-day Linux course, 30-day Bash course, a 12-step admin path with a capstone, plus small tested scripts. Every lesson has exercises, solutions and safe practice labs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

153 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages