Objective
Become comfortable managing a Linux server without looking up commands.
Tasks
Connect to the server using SSH.
Check:
whoami
hostname
pwd
uname -a
- Create the following structure:
/company
/dev
/qa
/prod
/backup
- Create users:
- developer
- tester
- devops
- Create groups:
- developers
- testers
- admins
Add each user to the proper group.
Verify everything.
What they learn
- Linux hierarchy
- Users
- Groups
- Ownership
Linux Lab 2 – Permissions Challenge
Students receive this situation:
"The developer cannot deploy because Permission denied appears."
They must solve it.
Tasks
Create
mkdir /application
touch app.log
Give wrong permissions.
Students must investigate.
Commands allowed
ls -l
chmod
chown
chgrp
id
groups
Questions
- Why did Permission denied happen?
- Which permission is missing?
- Difference between owner, group, others?
Linux Lab 3 – File System Investigation
Students must answer
Where are these stored?
- Users
- Passwords
- Groups
- Services
- Logs
- Nginx config
- SSH config
- DNS configuration
Commands
cat /etc/passwd
cat /etc/group
cat /etc/hosts
cat /etc/resolv.conf
Find
/etc
/var
/home
/usr
/opt
/tmp
/proc
/dev
Goal
Understand the Linux directory structure.
Linux Lab 4 – Searching Like a DevOps Engineer
Find
A file named
production.log
Find all
*.conf
Find all files larger than 100 MB.
Find all files modified today.
Find every occurrence of
database
Commands
find
locate
grep
which
whereis
Linux Lab 5 – Package Management
Install
nginx
git
tree
curl
wget
htop
Verify installation.
Remove one package.
Reinstall it.
Questions
- What is apt?
- What is a repository?
- Why update before installing?
Linux Lab 6 – Processes
Run
sleep 500
Open another terminal.
Find it.
Kill it.
Start nginx.
Stop nginx.
Restart nginx.
Check status.
Commands
ps
top
htop
kill
killall
systemctl
journalctl
Questions
- Difference between process and service?
- Why doesn't killing a process always stop a service permanently?
Linux Lab 7 – Storage
Students investigate
df -h
du -sh /*
lsblk
mount
Questions
Which disk is mounted?
How much free space remains?
Which folder consumes the most space?
Linux Lab 8 – Logs
Students must investigate
Someone attempted to log in but failed.
Find
SSH logs
System logs
Kernel logs
Nginx logs
Commands
journalctl
tail
less
grep
Questions
Why are logs critical in DevOps?
Linux Lab 9 – CPU & Memory
Run
yes > /dev/null
Investigate
top
Kill it.
Run memory test
stress-ng --vm 2 --vm-bytes 512M
Investigate
free -h
vmstat
Questions
What happens when CPU reaches 100%?
What happens when RAM is exhausted?
Linux Lab 10 – Services
Students manage
- nginx
- ssh
- cron
Commands
systemctl start
systemctl stop
systemctl restart
systemctl reload
systemctl enable
systemctl disable
systemctl status
Questions
Difference between
Start
Restart
Reload
Enable
Disable
Linux Lab 11 – Bash
Write scripts
Example
#!/bin/bash
echo "Today's date:"
date
echo "Current user:"
whoami
echo "Current directory:"
pwd
Second script
Backup
cp -r /company /backup
Third
mkdir project{1..10}
Linux Lab 12 – Troubleshooting Challenge (Best One)
Do not tell students what is wrong.
Break the server before class:
- Stop nginx.
- Delete the website.
- Fill the disk to 95%.
- Change permissions.
- Stop SSH.
- Remove a user from the sudo group.
- Kill a process.
- Rename a configuration file.
Then give them only this ticket:
Incident #1045
Users report that the website is unavailable. The developer cannot deploy new code. The server is running slowly. Investigate and restore the server.
They can use any Linux commands they've learned, but they must document:
- What symptoms they observed.
- Which commands they used.
- The root cause.
- The fix they applied.
- How they verified the issue was resolved.
This mirrors real DevOps work much better than following a list of commands. In production, engineers are rarely told what is broken—they have to investigate, identify the root cause, and restore the service. This kind of lab builds both Linux confidence and troubleshooting skills, which are exactly what employers look for in junior DevOps engineers.
Top comments (0)