
CompTIA Linux+ Hands-On Lab Plan
Reading Linux commands is useful. Breaking things in a safe lab and fixing them is better. This plan gives you 30 practical Linux tasks to practise before CompTIA Linux+, covering system management, services, users, security, automation, containers, networking and troubleshooting.
Why Linux+ prep should be hands-on
Linux+ is not just a command memorisation exercise. You need to recognise what a command does, where configuration usually lives, how services fail, how logs help and how to recover safely. A lab gives you a place to practise without turning a production server into a very expensive learning experience.
Recommended Linux+ lab environment
| Item | Recommendation | Why |
|---|---|---|
| VM platform | VirtualBox, VMware Workstation Player, Hyper-V, Proxmox or a small cloud VM | Use snapshots so you can roll back after experiments. |
| Distributions | One Debian or Ubuntu VM and one RHEL-family VM such as AlmaLinux, Rocky Linux or Fedora | Linux+ is vendor-neutral, so practise both apt and dnf style package workflows. |
| Resources | 2 CPUs, 2 to 4 GB RAM, 30 GB disk per VM | Enough for services, logs, packages and basic container practice. |
| Network | NAT for internet access, optional host-only network for SSH practice | Lets you practise updates, DNS, SSH and firewall checks safely. |
| Safety | Snapshot before security, storage and boot-related labs | You will break things. That is the point, just not the entire evening. |
How these labs map to Linux+ topics
The current Linux+ V8 objectives are organised around system management, services and user management, security, automation and troubleshooting. Use this lab plan as practical reinforcement alongside the official objectives.
| Area | What to practise | Useful CommandLineQuiz links |
|---|---|---|
| System management | Boot basics, filesystems, devices, packages, storage, networking and backups | Linux Troubleshooting Hub |
| Services and users | Users, groups, permissions, processes, packages, systemd services and timers | systemd guide |
| Security | sudo, SSH, firewalls, SELinux/AppArmor concepts, ACLs and least privilege | firewalld guide |
| Automation | Bash scripts, functions, Git, cron, Ansible basics and containers | Bash Scripting Hub |
| Troubleshooting | Logs, services, disk, DNS, routes, ports, memory and performance checks | Search logs for errors |
30 hands-on Linux+ lab tasks
Inspect the system
Run uname -r, hostnamectl, lscpu, lsblk and free -h. Write down what each command tells you.
Explore the filesystem
Use find, du, df and ls -lah to inspect common paths like /etc, /var and /home.
Create users and groups
Create a test user and group, add the user to the group, inspect with id, then remove them cleanly.
Practise permissions
Create files and directories, apply chmod, chown, chgrp and test access from another user.
Test umask
Change umask, create files and directories, then compare the resulting permissions.
Use ACLs
Apply an ACL with setfacl, inspect it with getfacl, then remove it.
Manage packages
Install, remove and query a package using apt on Ubuntu or dnf on AlmaLinux/Rocky/Fedora.
Manage services
Start, stop, enable, disable and check a service with systemctl.
Read service logs
Use journalctl -u service, journalctl -f and journalctl -b to inspect logs.
Break and fix a service
Introduce a simple config error in a test service, restart it, read the failure, then fix it.
Schedule a cron job
Create a cron job that writes a timestamp to a file, then check it runs.
Create a systemd timer
Build a simple service and timer pair that runs a script every few minutes.
Check networking
Use ip addr, ip route, ping, ss -tulpn and curl -I.
Practise DNS lookups
Run dig for A, MX, TXT and NS records. Query a specific resolver with @1.1.1.1.
Configure a firewall rule
Use firewall-cmd or ufw to allow and remove a test port.
Harden SSH basics
Review SSH config, key permissions and why direct root login is usually disabled.
Review sudo safely
Use visudo or a file under /etc/sudoers.d to grant limited test permissions.
Check SELinux or AppArmor
Inspect enforcement mode and find where denials are logged on your distribution.
Write a Bash status script
Create a script that prints hostname, uptime, disk usage and memory usage.
Use Bash arguments
Modify the script to accept a service name as $1 and print its status.
Add a Bash function
Move repeated logic into a function and return useful exit codes.
Use Git
Create a repo, commit your scripts, create a branch, make a change and view the diff.
Run a container
Use Docker or Podman to pull an image, run a container, view logs and stop it.
Build a simple image
Create a tiny Dockerfile or Containerfile and build it with a tag.
Simulate disk pressure
Create test files, find them with du and find, then clean up safely.
Check inode usage
Create many tiny files in a test directory and compare df -h with df -i.
Trace a port issue
Start a simple local service, find it with ss and test it with curl.
Follow logs live
Use tail -f or journalctl -f, then trigger an event and watch it appear.
Backup and restore
Create a tar archive and an rsync copy, then restore to a test directory and verify contents.
Full troubleshooting drill
Pick one broken service, one disk issue and one DNS issue. Diagnose each using commands only.
Example lab commands and output
These are the sort of outputs you should be comfortable reading.
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Tue 2026-05-05 10:15:22 BSTNetid State Local Address:Port Process
udp UNCONN 0.0.0.0:68 NetworkManager
tcp LISTEN 0.0.0.0:22 sshdFilesystem Size Used Avail Use% Mounted on
/dev/vda1 30G 11G 18G 38% /
tmpfs 980M 0 980M 0% /dev/shmA 4 week hands-on Linux+ lab schedule
| Week | Focus | Tasks |
|---|---|---|
| 1 | System basics, filesystems, users and permissions | Tasks 1 to 7 |
| 2 | Services, logs, scheduling, networking and DNS | Tasks 8 to 15 |
| 3 | Security, Bash, Git and containers | Tasks 16 to 24 |
| 4 | Troubleshooting, backups and full drills | Tasks 25 to 30 plus quiz review |
Common Linux+ lab mistakes
- Only reading commands: run them and inspect the output.
- Using only one distribution: practise at least one Debian-family and one RHEL-family system.
- Skipping logs: troubleshooting questions often depend on knowing where to look.
- Running risky commands without snapshots: storage, boot and security labs should be done safely.
- Ignoring weak domains: your worst topic deserves the most lab time, annoying as that is.
Test your readiness
After completing the lab tasks, take the expanded 100-question Linux+ practice quiz and review any missed topics. Then repeat the related lab tasks from memory.