CompTIA Linux+ hands-on lab plan banner
Linux+ hands-on study plan

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.

On this page
Why labs matter

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.

Best approach: read the topic, run the command, change something, inspect the result, then explain what happened in your own words.
Lab setup

Recommended Linux+ lab environment

ItemRecommendationWhy
VM platformVirtualBox, VMware Workstation Player, Hyper-V, Proxmox or a small cloud VMUse snapshots so you can roll back after experiments.
DistributionsOne Debian or Ubuntu VM and one RHEL-family VM such as AlmaLinux, Rocky Linux or FedoraLinux+ is vendor-neutral, so practise both apt and dnf style package workflows.
Resources2 CPUs, 2 to 4 GB RAM, 30 GB disk per VMEnough for services, logs, packages and basic container practice.
NetworkNAT for internet access, optional host-only network for SSH practiceLets you practise updates, DNS, SSH and firewall checks safely.
SafetySnapshot before security, storage and boot-related labsYou will break things. That is the point, just not the entire evening.
Exam mapping

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.

AreaWhat to practiseUseful CommandLineQuiz links
System managementBoot basics, filesystems, devices, packages, storage, networking and backupsLinux Troubleshooting Hub
Services and usersUsers, groups, permissions, processes, packages, systemd services and timerssystemd guide
Securitysudo, SSH, firewalls, SELinux/AppArmor concepts, ACLs and least privilegefirewalld guide
AutomationBash scripts, functions, Git, cron, Ansible basics and containersBash Scripting Hub
TroubleshootingLogs, services, disk, DNS, routes, ports, memory and performance checksSearch logs for errors
30 tasks

30 hands-on Linux+ lab tasks

1

Inspect the system

Run uname -r, hostnamectl, lscpu, lsblk and free -h. Write down what each command tells you.

2

Explore the filesystem

Use find, du, df and ls -lah to inspect common paths like /etc, /var and /home.

3

Create users and groups

Create a test user and group, add the user to the group, inspect with id, then remove them cleanly.

4

Practise permissions

Create files and directories, apply chmod, chown, chgrp and test access from another user.

5

Test umask

Change umask, create files and directories, then compare the resulting permissions.

6

Use ACLs

Apply an ACL with setfacl, inspect it with getfacl, then remove it.

7

Manage packages

Install, remove and query a package using apt on Ubuntu or dnf on AlmaLinux/Rocky/Fedora.

8

Manage services

Start, stop, enable, disable and check a service with systemctl.

9

Read service logs

Use journalctl -u service, journalctl -f and journalctl -b to inspect logs.

10

Break and fix a service

Introduce a simple config error in a test service, restart it, read the failure, then fix it.

11

Schedule a cron job

Create a cron job that writes a timestamp to a file, then check it runs.

12

Create a systemd timer

Build a simple service and timer pair that runs a script every few minutes.

13

Check networking

Use ip addr, ip route, ping, ss -tulpn and curl -I.

14

Practise DNS lookups

Run dig for A, MX, TXT and NS records. Query a specific resolver with @1.1.1.1.

15

Configure a firewall rule

Use firewall-cmd or ufw to allow and remove a test port.

16

Harden SSH basics

Review SSH config, key permissions and why direct root login is usually disabled.

17

Review sudo safely

Use visudo or a file under /etc/sudoers.d to grant limited test permissions.

18

Check SELinux or AppArmor

Inspect enforcement mode and find where denials are logged on your distribution.

19

Write a Bash status script

Create a script that prints hostname, uptime, disk usage and memory usage.

20

Use Bash arguments

Modify the script to accept a service name as $1 and print its status.

21

Add a Bash function

Move repeated logic into a function and return useful exit codes.

22

Use Git

Create a repo, commit your scripts, create a branch, make a change and view the diff.

23

Run a container

Use Docker or Podman to pull an image, run a container, view logs and stop it.

24

Build a simple image

Create a tiny Dockerfile or Containerfile and build it with a tag.

25

Simulate disk pressure

Create test files, find them with du and find, then clean up safely.

26

Check inode usage

Create many tiny files in a test directory and compare df -h with df -i.

27

Trace a port issue

Start a simple local service, find it with ss and test it with curl.

28

Follow logs live

Use tail -f or journalctl -f, then trigger an event and watch it appear.

29

Backup and restore

Create a tar archive and an rsync copy, then restore to a test directory and verify contents.

30

Full troubleshooting drill

Pick one broken service, one disk issue and one DNS issue. Diagnose each using commands only.

Outputs

Example lab commands and output

These are the sort of outputs you should be comfortable reading.

$ systemctl status sshd
● 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 BST
$ ss -tulpn
Netid State  Local Address:Port  Process
udp   UNCONN 0.0.0.0:68          NetworkManager
tcp   LISTEN 0.0.0.0:22          sshd
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        30G   11G   18G  38% /
tmpfs           980M     0  980M   0% /dev/shm
Schedule

A 4 week hands-on Linux+ lab schedule

WeekFocusTasks
1System basics, filesystems, users and permissionsTasks 1 to 7
2Services, logs, scheduling, networking and DNSTasks 8 to 15
3Security, Bash, Git and containersTasks 16 to 24
4Troubleshooting, backups and full drillsTasks 25 to 30 plus quiz review
Avoid these

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.
Next step

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.

$ practise_next --topic linux

Practise this next

Turn the guide into practice with a related quiz, builder, cheat sheet or learning path.