Advanced Search
Search Results
228 total results found
Lesson: The Everyday Command Toolkit
What you'll learn Move around the filesystem confidently with pwd, cd, and ls. Create, copy, move, and delete files and directories — safely. Look inside files with cat, less, head, and tail. Search for files with find and search inside files with grep. Combi...
Lesson: Who Can Do What
What you'll learn The difference between users, groups, and the all-powerful root account. Why you use sudo instead of logging in as root. How to read the rwx permission string that ls -l shows you. How to change permissions with chmod (both numeric and symbo...
Lesson: What's Running and Why
What you'll learn Inspect running programs with ps, top, and htop. Send signals to processes and stop them with kill. Understand systemd units and what a "service" really is. Drive services with systemctl — status, start, stop, restart, enable. Read logs with...
Assignment 1: Explore and explain a Linux host
Goal: Prove you can navigate a real Linux machine, read its layout, and explain what you find — using only the commands from Chapters 1–4. Where: The Jumpbox (10.100.100.254, user ubuntu, passwordless sudo). SSH in from your workstation, then work in your home...
Assignment 2: Manage a service and read its logs
Goal: Prove you can inspect, control, and troubleshoot a systemd service and read its logs — the core operations loop from Chapter 5. Where: The Jumpbox (10.100.100.254, user ubuntu, passwordless sudo). Work in a new directory ~/m2-assignment2. Tasks SSH into...
Module 3 — Shell Scripting
Turn the Linux commands you know into automation: scripts, variables, I/O and exit codes, conditionals, loops, functions, and writing robust Bash.
Lesson: Your First Bash Scripts
What you'll learn What a Bash script actually is, and how the "shebang" line tells Linux how to run it. How to make a script executable with chmod +x and the difference between ./script and bash script. How to store data in variables and use them safely with ...
Lesson: Streams, Redirection & Exit Codes
What you'll learn The three standard streams every program has: stdin, stdout, and stderr. How to redirect output to files with >, >>, 2>, and &>, and how to read input. How to connect commands together with pipes |. How to read and use exit codes ($?) to kno...
Lesson: Conditionals & Tests
What you'll learn How to branch your script with if, elif, and else. How to write tests with [[ ]] for strings, numbers, and files. How exit codes drive conditionals, and how to chain commands with && and ||. How to handle many possible values cleanly with ca...
Lesson: Loops, Arguments & Functions
What you'll learn How to repeat work with for and while loops. How to read arguments passed to your script: $1, $2, $#, and "$@". How to write functions to organize and reuse code, and how they return values. How to use basic arrays to hold lists of items. B...
Lesson: Scripts You Can Trust
What you'll learn How set -euo pipefail turns silent failures into loud, safe ones. The quoting pitfalls that cause the worst real-world script bugs. How to lint your scripts automatically with ShellCheck. How to clean up reliably with trap, and what "idempot...
Assignment 1: A system health-check script
Goal: Write a Bash script that inspects the machine it runs on — disk usage, free memory, and whether a chosen service is running — and prints a clear, readable report with a meaningful exit code. Where: On the Jumpbox (10.100.100.254, Ubuntu, user ubuntu). Cr...
Assignment 2: A safe backup/parameterised script
Goal: Write a robust, parameterised Bash script that backs up a directory into a timestamped compressed archive, validates its inputs, is safe to re-run, and cleans up after itself. Where: On the Jumpbox (10.100.100.254, Ubuntu, user ubuntu). Create ~/backup.s...
Module 4 — Git & Version Control
Track, share, and collaborate on code: Git's model, the everyday commit workflow, branching/merging/conflicts, and remotes on the lab's Gitea server.
Lesson: Git's Mental Model
What you'll learn Why version control exists and what problems it solves on a real team. The four core places your work lives: the working tree, the staging area, the local repository, and (later) a remote. What a commit actually is — a snapshot, not a list o...
Lesson: Status, Add, Commit, Log
What you'll learn The everyday loop every developer repeats dozens of times a day: edit → status → add → commit. How to read git status and git diff to see exactly what changed. How to write commit messages that your future self and teammates will thank you f...
Lesson: Branches, Merges & Conflicts
What you'll learn What a branch really is (a cheap, movable pointer — not a copy of your files). How to create and switch branches with git branch and git switch. How to combine work with git merge, and the difference between a fast-forward and a merge commit...
Lesson: Working with Gitea
What you'll learn What a remote is, and how your local repo and a server repo stay in sync. How to clone, and how to wire up an existing local repo with git remote add. The push/fetch/pull cycle, and what a tracking branch is. How to push your Module 3 script...