Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 71 additions & 87 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,108 @@
<div align="center">
<img src="https://github.com/user-attachments/assets/35210bee-7e01-44bc-bf31-0daa60c8b04b" alt="Linux Logo" width="150" />

# Linux: Linux For Beginners
# Linux for Beginners

![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white)
![Bash](https://img.shields.io/badge/Bash-4EAA25?style=for-the-badge&logo=gnu-bash&logoColor=white)
</div>

Welcome to the **Linux for Beginners** course guide. This repository contains the complete syllabus, command references, and step-by-step server configuration guides to get you up and running with Linux environments.
A **complete learning module** for absolute beginners: syllabus, lessons, labs, quizzes, and cheatsheets for Ubuntu-focused Linux skills — from first shell to a small hardened lab server.

---

<details>
<summary><b>📖 Table of Contents</b> (Click to expand)</summary>
## Start here

1.[Course Overview & Syllabus](#course-overview--syllabus)
2. [Ubuntu Server Setup](#ubuntu-server-setup)
3. [User Management](#user-management)
4. [Secure Shell (SSH)](#secure-shell-ssh)
5. [Basic & Advanced Command Line](#basic--advanced-command-line)
- [Basic Operations](#basic-server-commands)
- [Swap File & Server Performance](#swap-file-and-server-performance)
6. [File & Directory Operations](#file--directory-operations)
7.[Remote Desktop (xRDP)](#remote-desktop-xrdp)
8. [Ubuntu Server Networking & Firewall](#ubuntu-server-networking)
9. [Applications & Monitoring](#applications)
10. [References](#full-notes-about-servers)
1. Read **[Getting Started](docs/00-getting-started.md)** (environment choice + progress checklist)
2. Follow modules **01 → 12** in order
3. Complete labs and quizzes as you go
4. Finish the **[Capstone](docs/modules/12-capstone.md)** and run `scripts/verify-lab.sh`

</details>
Content audit (what was broken and how it was fixed): **[docs/AUDIT.md](docs/AUDIT.md)**

---

## Course Overview & Syllabus
## Course map

| # | Module | Lab / Quiz |
| ---: | --- | --- |
| 0 | [Getting Started](docs/00-getting-started.md) | — |
| 1 | [Linux Fundamentals](docs/modules/01-linux-fundamentals.md) | [Quiz 01](docs/quizzes/quiz-01-fundamentals.md) |
| 2 | [Install Environments (WSL / VirtualBox)](docs/modules/02-install-environments.md) | [Lab 01](docs/labs/lab-01-first-shell.md) |
| 3 | [Ubuntu Server Setup](docs/modules/03-ubuntu-server-setup.md) | — |
| 4 | [Users & Permissions](docs/modules/04-users-and-permissions.md) | [Lab 02](docs/labs/lab-02-users-and-sudo.md) |
| 5 | [SSH & Remote Access](docs/modules/05-ssh-and-remote-access.md) | — |
| 6 | [Command Line Basics](docs/modules/06-command-line-basics.md) | — |
| 7 | [Files & Directories](docs/modules/07-files-and-directories.md) | [Lab 03](docs/labs/lab-03-filesystem-tour.md) · [Quiz 02](docs/quizzes/quiz-02-cli-and-files.md) |
| 8 | [Swap & Performance](docs/modules/08-swap-and-performance.md) | — |
| 9 | [xRDP Remote Desktop](docs/modules/09-xrdp-remote-desktop.md) *(optional)* | — |
| 10 | [Networking & Firewall (UFW)](docs/modules/10-networking-and-firewall.md) | [Lab 04](docs/labs/lab-04-firewall-and-ssh.md) |
| 11 | [Apps & Monitoring](docs/modules/11-apps-and-monitoring.md) | [Quiz 03](docs/quizzes/quiz-03-server-ops.md) |
| 12 | [Capstone](docs/modules/12-capstone.md) | [Lab 05](docs/labs/lab-05-capstone.md) |

**Cheatsheets:** [Commands](docs/cheatsheets/commands.md) · [UFW](docs/cheatsheets/ufw.md)

### Background, Introduction, and Preparation
---

**1. Course Overview (pptx 1)**
## What you will learn

**2. Background and Introduction**
In this lesson you will learn:
*[What Linux is](https://www.youtube.com/watch?v=zA3vmx0GaO8)
* [Brief history of Linux](https://www.youtube.com/watch?v=rrB13utjYV4)
* [What a Linux Distribution or Linux Distro is](https://www.youtube.com/watch?v=VKNMI6cYOFk)
* [Reasons Linux is used](https://www.youtube.com/watch?v=mAFMJ1LnQu8)
- What Linux and distributions are, and how the filesystem is organized
- How to practice safely with **WSL** or **VirtualBox**
- How to install and maintain **Ubuntu Server**
- Users, `sudo`, passwords, and SSH remote login
- Everyday Bash: navigation, files, permissions, pipes, `apt`
- Server essentials: swap, UFW firewall, `htop` monitoring
- Optional GUI remote access with **xRDP**
- A capstone lab that ties the skills together

> *Briefly introduces:* RHEL (RedHat Enterprise Linux), Fedora, CentOS, AlmaLinux, Rocky Linux, Ubuntu, Debian, OpenSUSE, and SLES (SUSE Linux Enterprise Server).
Estimated guided time: **10–14 hours**.

**3. Linux Distributions (pptx 2)**
Learn what a Linux Distro is, the most common distros, and how to choose the right one (RHEL, AlmaLinux, Rocky Linux, CentOS, Ubuntu, Mint, Debian, Pop!_OS, Arch Linux, etc.).
---

**4. Installing Linux using WSL on Windows**
Learn how to install, use, and remove a Linux distro using Windows Subsystem for Linux (WSL) and access Linux files via Windows File Explorer.
## Repository layout

```text
README.md ← you are here (course hub)
docs/
00-getting-started.md
AUDIT.md
modules/ ← lessons 01–12
labs/ ← hands-on practice
quizzes/ ← assessments + answer keys
cheatsheets/ ← quick reference
scripts/
verify-lab.sh ← optional capstone checks
```

**5. Installing VirtualBox on Windows**
Learn how to install VirtualBox on Windows for running virtual machines.
---

**6. When to Install Linux from Scratch**
Understand why and when manual installation from scratch is necessary.
## Capstone verification

**7. Installing AlmaLinux / Rocky Linux / RHEL**
Manual install guide for AlmaLinux 9 and RHEL 9 (pptx 3).
On your lab machine (after cloning or copying the script):

**8. Logging In Directly to a Linux System**
Connecting to Linux via physical hardware or virtual machines (Graphical and text-based logins).
```bash
bash scripts/verify-lab.sh
```

**9 & 10. The Linux Directory Structure**
Learn where OS components are located and how applications employ conventions for directory structures.
Checks for OS identity, SSH service, swap, UFW, `htop`, and `~/SERVER_NOTES.md`.

---

## Ubuntu Server Setup

![How-to-Install-Ubuntu-Server](https://github.com/user-attachments/assets/ad870ee3-e4ae-46fd-9d9d-63b55c377b47)

### Step-by-Step Installation

1. **Select Language**: Insert the installation media and restart. Select your preferred language (e.g., English).
<br><img src="https://github.com/user-attachments/assets/e92e03ae-4470-4940-af40-91c5188a188a" width="600"/>
2. **Keyboard Layout**: Use <kbd>Tab</kbd> to switch items, <kbd>Enter</kbd> to open lists, and arrow keys to select.
<br><img src="https://github.com/user-attachments/assets/1783f44a-838f-451d-9694-fa66ecffb88d" width="600"/>
3. **Server Configuration**: Select the general server configuration (top) or the minimal set (bottom).
<br><img src="https://github.com/user-attachments/assets/452fd03e-766b-4df5-808a-1476721c3698" width="600"/>
4. **Network Connections**: Obtain automatically via DHCP or set manually.
<br><img src="https://github.com/user-attachments/assets/c5916a6d-7be2-4f24-901d-9cf9f42bda54" width="600"/>
5. **Proxy Server**: Enter if necessary; otherwise, leave blank.
<br><img src="https://github.com/user-attachments/assets/f8534141-772f-4a41-b234-eedfd99de0dd" width="600"/>
6. **Mirror Server**: Used for package updates. Usually auto-selects the best nearby mirror.
<br><img src="https://github.com/user-attachments/assets/142f42d1-9459-4b42-ae8b-af65cea0aba1" width="600"/>
7. **Storage Settings**: Set disk partition layouts. Defaults are usually fine for beginners.
<br><img src="https://github.com/user-attachments/assets/e4c9d898-802a-4765-a9f4-7f1708c68fd9" width="600"/>
8. **Confirm Storage**: Choose **Done** to confirm partitions.
<br><img src="https://github.com/user-attachments/assets/e2e5ff49-ca54-46f1-838e-8ea036d0351c" width="600"/>
9. **Install Confirmation**: Click **Continue**. *Warning: Existing data will be overwritten.*
<br><img src="https://github.com/user-attachments/assets/48cb7523-403c-43d1-9455-93c0726b9b4e" width="600"/>
10. **Administrator Account**: Enter a name, username, and password.
<br><img src="https://github.com/user-attachments/assets/04cf4cae-1038-41c1-ac6e-dde3605ea5ac" width="600"/>
11. **SSH Setup**: Choose to install an SSH server if you plan to access the server remotely.
<br><img src="https://github.com/user-attachments/assets/a5fe542d-0ae4-416a-a608-54a536451511" width="600"/>
12. **Server Snaps**: Select any extra software you need. Leave blank for a clean install.
<br><img src="https://github.com/user-attachments/assets/0b5a3676-70f9-4db8-adc3-52a6ac533587" width="600"/>
13. **Complete**: When done, select **Reboot Now**.
<br><img src="https://github.com/user-attachments/assets/38305255-2399-4c2a-a4fc-1fbada7059c0" width="600"/>
14. **Login**: After rebooting, authenticate with your new credentials.
<br><img src="https://github.com/user-attachments/assets/3a8759e0-c7d8-4752-a905-a1113cc3c059" width="600"/>
## References

- [DigitalOcean Community Tutorials](https://www.digitalocean.com/community/tutorials)
- [Server World](https://www.server-world.info/)
- [Ubuntu Server documentation](https://ubuntu.com/server/docs)
- [UFW community help](https://help.ubuntu.com/community/UFW)
- Intro videos linked from [Module 01](docs/modules/01-linux-fundamentals.md)

---

## User Management
## About this rebuild

| Task | Command |
| :--- | :--- |
| **Add a new user** | `sudo adduser <username>` |
| **Check user groups** | `groups <username>` |
| **Grant Sudo privileges** | `sudo usermod -aG sudo <username>` |
| **Login as normal user (Remote)** | `ssh <username>@<ip_address>` |
| **Switch to Root user** | `sudo su -` |
The previous single `README.md` was truncated mid-lesson and several syllabus sections were empty placeholders. This revision turns the material into a navigable learning module with corrected commands, filled lessons, labs, quizzes, and a capstone. See [docs/AUDIT.md](docs/AUDIT.md) for the full findings.

### Changing Passwords
---

If you are logged in as the **Root** user:
```bash
passwd <username>
Copyright © 2024–2026 Gadgelectronit of Malaysia ENT. All Rights Reserved.
107 changes: 107 additions & 0 deletions docs/00-getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Getting Started

Welcome to **Linux for Beginners**. This guide tells you how to take the course and what you need before Module 01.

## Who this course is for

- Absolute beginners who have never used a Linux terminal
- Windows users who want a safe practice environment (WSL or VirtualBox)
- Anyone setting up a first Ubuntu Server for labs, home use, or learning sysadmin basics

## Prerequisites

- A computer with **Windows 10/11**, **macOS**, or an existing Linux host
- Ability to download ~2–4 GB (ISO / WSL distro)
- Admin rights on your machine to install VirtualBox or enable WSL
- Curiosity and willingness to type commands (you will break things; that is normal)

No prior Linux experience is required.

## Choose your lab environment

Pick **one** path. You can add others later.

| Path | Best for | Difficulty | Guide |
| --- | --- | --- | --- |
| **WSL on Windows** | Fast daily practice, no VM overhead | Easy | [Module 02](modules/02-install-environments.md#option-a-wsl-on-windows) |
| **VirtualBox VM** | Closest to a real server / desktop install | Medium | [Module 02](modules/02-install-environments.md#option-b-virtualbox) |
| **Ubuntu Server (VM or bare metal)** | Server admin track (SSH, UFW, swap, xRDP) | Medium | [Module 03](modules/03-ubuntu-server-setup.md) |

**Recommendation for this course:** start with **Ubuntu Server in VirtualBox** if you want the full server modules, or **WSL (Ubuntu)** if you only need the command line modules first.

## How the course is organized

```text
docs/modules/ Teach concepts + commands
docs/labs/ Hands-on practice
docs/quizzes/ Check understanding
docs/cheatsheets/ Quick lookup while practicing
```

Each module follows the same pattern:

1. **Objectives** — what you will be able to do
2. **Lesson** — explanations and examples
3. **Try it** — short inline practice
4. **Next** — link to the matching lab or the next module

## Suggested learning path

| Order | Module | Est. time | Lab / Quiz |
| ---: | --- | ---: | --- |
| 1 | [01 — Linux fundamentals](modules/01-linux-fundamentals.md) | 45–60 min | [Quiz 01](quizzes/quiz-01-fundamentals.md) |
| 2 | [02 — Install environments](modules/02-install-environments.md) | 60–90 min | [Lab 01](labs/lab-01-first-shell.md) |
| 3 | [03 — Ubuntu Server setup](modules/03-ubuntu-server-setup.md) | 60–90 min | — |
| 4 | [04 — Users & permissions](modules/04-users-and-permissions.md) | 45 min | [Lab 02](labs/lab-02-users-and-sudo.md) |
| 5 | [05 — SSH & remote access](modules/05-ssh-and-remote-access.md) | 45 min | — |
| 6 | [06 — Command line basics](modules/06-command-line-basics.md) | 60 min | [Quiz 02](quizzes/quiz-02-cli-and-files.md) |
| 7 | [07 — Files & directories](modules/07-files-and-directories.md) | 60 min | [Lab 03](labs/lab-03-filesystem-tour.md) |
| 8 | [08 — Swap & performance](modules/08-swap-and-performance.md) | 45 min | — |
| 9 | [09 — xRDP remote desktop](modules/09-xrdp-remote-desktop.md) | 45–60 min | — |
| 10 | [10 — Networking & firewall](modules/10-networking-and-firewall.md) | 60 min | [Lab 04](labs/lab-04-firewall-and-ssh.md) |
| 11 | [11 — Apps & monitoring](modules/11-apps-and-monitoring.md) | 30 min | [Quiz 03](quizzes/quiz-03-server-ops.md) |
| 12 | [12 — Capstone](modules/12-capstone.md) | 90–120 min | [Lab 05 Capstone](labs/lab-05-capstone.md) |

Total guided study: roughly **10–14 hours**, depending on install path and how deep you go.

## Progress checklist

Copy this into your notes and check items off:

```text
[ ] Environment ready (WSL or VM or Ubuntu Server)
[ ] Can explain what Linux / a distro is
[ ] Can log in and update packages
[ ] Can create a user and grant sudo
[ ] Can connect with SSH
[ ] Comfortable with ls, cd, pwd, cp, mv, rm, mkdir, nano
[ ] Understand /home, /etc, /var, /tmp, permissions basics
[ ] Swap configured (server track)
[ ] UFW allows SSH and blocks unwanted traffic
[ ] htop installed; can read load / memory
[ ] Capstone completed
[ ] Quizzes 01–03 passed (≥70%)
```

## Conventions used in this course

```bash
# Commands you type look like this
sudo apt update
```

- Replace placeholders like `<username>` or `<ip_address>` with your values.
- Lines starting with `#` are comments — do not type them unless noted.
- `sudo` means “run this with administrator privileges.” You will be prompted for **your** password.
- Prefer a non-root daily user with sudo over logging in as `root`.

## Safety tips

- Practice in a **VM or WSL** before touching a production machine.
- Never run `rm -rf /` or wipe disks you care about.
- When editing config files, keep a backup: `sudo cp file file.bak`
- Open the firewall for SSH **before** enabling UFW on a remote server, or you can lock yourself out.

## Next step

Start here → [Module 01: Linux Fundamentals](modules/01-linux-fundamentals.md)
79 changes: 79 additions & 0 deletions docs/AUDIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Content Audit — Linux for Beginners

Audit performed against the repository state on the `get-ent-dev` branch (single truncated `README.md`) and the prior fuller revision (`b35aa2b`, ~782 lines).

## Executive summary

The repo claimed to be a complete Linux beginners course, but it was **not a completed learning module**. Content had been partially rewritten and then cut off mid-section. The older notes were a useful command dump, not a teachable course.

| Area | Before | Severity |
| --- | --- | --- |
| Completeness | README ended mid-password section | Critical |
| Syllabus delivery | Quiz, Files, Advanced CLI, Summary, Bonus listed but empty | Critical |
| Pedagogy | No objectives, prerequisites, or success criteria | High |
| Practice | No labs or hands-on checklists | High |
| Assessment | Quiz placeholders with no questions | High |
| Accuracy | Broken commands (`sudo allow 443`, `sudo install htop`, `sudo su user`) | High |
| Structure | One monolithic README; hard to navigate | Medium |
| Coverage gaps | WSL, VirtualBox, directory tree, Alma/RHEL only named | Medium |
| Navigation | TOC numbering/spacing broken; anchors incomplete | Low |

## What existed (valuable)

- Ubuntu Server install walkthrough with screenshots
- User / sudo / SSH basics
- Swap file tuning guide (detailed and largely correct)
- xRDP + Xfce remote desktop guide
- UFW firewall command list
- Ping and light monitoring notes (`htop`, `virt-manager`)
- External video links for Linux intro topics

## What was missing for a learning module

1. **Learning path** — ordered modules with time estimates and dependencies
2. **Learning objectives** per lesson (what you can do after finishing)
3. **Filled syllabus items** — directory structure, WSL, VirtualBox, file ops, advanced CLI
4. **Labs** — guided practice with expected outcomes
5. **Quizzes** — questions + answer keys
6. **Cheatsheets** — quick reference separated from teaching prose
7. **How to use this repo** — environment options and progress tracking
8. **Error fixes** — incorrect or unsafe command examples
9. **Capstone** — end-of-course project tying skills together
10. **References** organized by topic (not a bare link dump)

## Accuracy fixes applied in this rebuild

| Issue | Fix |
| --- | --- |
| `sudo allow 443` | `sudo ufw allow 443` |
| `sudo install htop` | `sudo apt install htop` |
| `sudo su user` (misleading) | Documented `su -`, `sudo -i`, and `sudo -u user` correctly |
| Root vs user `passwd` guidance | Clarified `passwd`, `passwd user`, and `sudo passwd user` |
| Empty “Quiz 1 / Review / Summary / Bonus” | Implemented as real modules, labs, quizzes, and a capstone |
| Truncated password section | Restored and expanded in Module 04 |

## Target structure after rebuild

```text
README.md Course hub
docs/
00-getting-started.md How to take the course
AUDIT.md This audit
modules/ Lessons 01–11 + capstone
labs/ Hands-on practice
quizzes/ Assessments + answer keys
cheatsheets/ Quick command reference
scripts/ Optional helper scripts
```

## Definition of “completed learning module”

This rebuild treats the course as complete when a learner can:

1. Choose an install path (WSL, VM, or bare-metal Ubuntu Server)
2. Navigate the filesystem and manage files/permissions
3. Create users, use `sudo`, and secure SSH access
4. Maintain a server (`apt`, reboot, swap, monitoring)
5. Configure UFW and verify connectivity
6. Optionally enable graphical remote access with xRDP
7. Pass the module quizzes and finish the capstone lab
Loading