Certification drills
46 drills grouped by LPIC-1, LFCS, and provisional Linux+ paths.
drills
Two ways to practice: certification drills for LPIC-1, LFCS, and provisional Linux+ paths, plus troubleshooting drills for real Linux repair habits.
Independent study support only. No affiliation, endorsement, exam dumps, or guaranteed exam results.
practice paths
46 drills grouped by LPIC-1, LFCS, and provisional Linux+ paths.
12 scenario drills for real Linux repair habits: inspect first, read the decisive field, and avoid broad fixes.
Start here if
Use the shortest route that matches the job in front of you, then widen into the full catalog after one focused drill.
Start with GNU and Unix command practice, then use drills that ask you to read output and explain the next safe command.
Start with storage, networking, or service-state drills where the first answer comes from terminal evidence.
Use the scenario drills first. They keep the work grounded in symptoms, safe commands, and common wrong moves.
practice method
command --help, man, apropos, type, and journalctl when the command or output is unfamiliar.46 cert drills
Use these when you want LPIC-1, LFCS, or provisional Linux+ practice grouped by study path instead of by troubleshooting symptom.
find
grep
grep
stat
dpkg
rpm
findmnt
df
systemctl
df
ip
getent
sudo
find
journalctl
rsync
ps
free
namei
sudo
docker
12 troubleshooting drills
Drill library: these are scenario drills for real repair habits. Certification drills live above and in the focused cert drill index.
A VPS starts returning write errors and an app cannot create new uploads. You need to decide whether the root filesystem, a mounted data volume, or inode exhaustion is the real problem before deleting anything.
3 related examples with output.
df -h && df -i
The root filesystem is nearly full and /var looks suspicious. You need a read-only way to find the biggest files without crossing into other mounted filesystems.
2 related examples with output.
find /var -xdev -type f -printf '%s %p\n' | sort -nr | head -20
A service restarted during deploy and is now unhealthy. You need the recent unit logs, not every log line on the machine.
2 related examples with output.
journalctl -u nginx --since '30 minutes ago' --no-pager
A teammate changed a server block and wants to reload nginx. You need to prove the configuration parses before touching the running service.
2 related examples with output.
sudo nginx -t
Port 8080 is already in use and a new service will not start. You need to identify the listener before killing or reconfiguring anything.
2 related examples with output.
sudo ss -ltnp 'sport = :8080'
Users say a site is down, but the server may still be answering. You need to compare public DNS with a forced request to the expected IP.
2 related examples with output.
dig +short example.com && curl -I https://example.com/
An app cannot read a file and someone suggests chmod 777. You need to inspect the path, owner, group, and mode before changing permissions.
2 related examples with output.
namei -l /srv/app/current/.env
You need to mirror a release directory to a backup target, but stale files on the target should be removed. Before running the real sync, you must preview deletions.
2 related examples with output.
rsync -ani --delete /srv/app/releases/current/ /backup/app/current/
After a reboot, a host is reachable but something feels broken. You need a quick inventory of failed units before digging into individual logs.
2 related examples with output.
systemctl --failed --no-pager
A Debian or Ubuntu server may be missing important updates. You need to list pending upgrades without installing anything.
2 related examples with output.
apt list --upgradable
A server is slow and someone wants to restart the app. You need to see whether RAM, swap, or a specific process is the likely cause.
2 related examples with output.
free -h && ps aux --sort=-%mem | head
A public VPS has SSH exposed and you need to see whether failed login attempts are normal background noise or focused guessing against real usernames.
2 related examples with output.
journalctl -u ssh --since today --no-pager | grep 'Failed password'