Resources & Recommendations
A First Linux Desktop: Ubuntu Server, XFCE and the Fun Terminal Stuff

Part 13 of the thread Games and gear
- Start from Ubuntu Server and add xubuntu-desktop. XFCE is light, plain and easy to find your way around.
- Hook them with the silly stuff first: cmatrix, cowsay, fortune and moon-buggy. Then sneak in ls, cd and mkdir.
- Give the learner a standard account and keep sudo for a grown-up at first.
- Plan on a few months, one skill a month: navigation, files, editing, scripts, then whatever grabs them.
A spare PC with Linux on it is one of the better ways to learn how computers actually work. Nothing's hidden behind a store or a setup wizard, the command line is right there, and if something breaks, fixing it is the lesson.
This is the setup I'd use for a first Linux desktop for a beginner: a light desktop on top of Ubuntu, a handful of programs that make the terminal fun, and a rough plan for what to learn in what order.
Turn Ubuntu Server into a desktop
Ubuntu Server installs without a desktop at all. Adding one is two commands and some waiting.
# Update everything first, like updating the apps on a phone
sudo apt update
sudo apt upgrade
# Install the XFCE desktop. This gives you windows, a taskbar and buttons
sudo apt install xubuntu-desktop
# Start the login screen once it's installed
sudo systemctl start lightdm
XFCEA lightweight Linux desktop: a taskbar, a menu and windows, without much fuss. It runs happily on older or modest hardware.More: Turning Ubuntu Server Into a Light XFCE Desktop is the right pick here. It's quick on old hardware, it looks like what people expect a computer to look like, and there's not much to get lost in.
Then the two things most beginners will ask for first:
# A web browser for homework and looking things up
sudo apt install firefox
For Minecraft, get the Java Edition launcher from minecraft.net. It isn't in Ubuntu's own software sources, so apt won't find it.
The fun terminal programs
These are the hook. None of them are useful, and that's fine.
# The falling green code from The Matrix
sudo apt install cmatrix
cmatrix
# A little terminal game: drive a moon buggy and jump the craters
sudo apt install moon-buggy
moon-buggy
# A cow that says things, and a fortune for it to say
sudo apt install cowsay fortune-mod
cowsay "I love Linux!"
fortune | cowsay
# Show off what's inside the computer
sudo apt install neofetch
neofetch
# A colorful Task Manager
sudo apt install htop
htop
Note
neofetch isn't maintained anymore. It still works, but fastfetch does the same job and is in the software sources on newer Ubuntu releases. Use whichever your version has.
fortune | cowsay is also a sneaky first lesson: the | sends one program's output into another. That idea is half of what makes Linux click.
The first real commands
Once the cow has done its job, these are the ones worth learning early:
| Command | What it does |
|---|---|
ls / ls -la |
List what's in this folder. -la shows everything, with details. |
cd |
Change folder. cd .. goes up one. |
pwd |
Show where you are. |
mkdir cool_stuff |
Make a new folder. |
du -h |
How big folders are, in readable sizes. |
find /home -name "*.jpg" |
Find all the pictures. |
ip addr show |
Show this computer's network addresses. |
sudo iftop |
Watch network traffic live (install it first). |
man ls |
The manual for any command. |
And three habits that save a lot of typing and frustration:
- Tab autocompletes. Type the first few letters of a command or file name and press Tab.
- The up arrow brings back the commands you already ran.
- When an install fails, update first.
sudo apt updatefixes a surprising number of "package not found" errors.
The three errors a beginner will hit most:
- Permission denied: the command needs
sudo. That's a moment to ask for help, not a moment to addsudoto everything. - Command not found: check the spelling, or the program isn't installed yet.
- Package not found: run
sudo apt update, then check the package name.
A plan for the first few months
| Month | Focus | Skills |
|---|---|---|
| 1 | Getting around | cd, ls, pwd, mkdir |
| 2 | Managing files | cp, mv, rm, keeping folders tidy |
| 3 | Editing text | nano, creating and changing files |
| 4 | First scripts | Small bash scripts that automate something |
| 5 and on | Pick a direction | Games, programming or running the system |
Project ideas that fit along the way: a daily cowsay message, a homework reminder script, a tidy folder structure for their stuff, and a backup script for game saves. After that, Scratch is a good bridge into programming, then Python, and Minecraft modding is a real reason to learn both.
Keeping it safe
If the person learning is young, a little structure goes a long way:
- Make a standard account for everyday use. Keep the admin account separate.
- Keep sudo supervised at first, and explain what each command does before it runs.
- Update regularly, and keep backups of anything they've made.
- Look at the command history together now and then. It's less about checking up and more about seeing what they've figured out.
- Let them explore the safe stuff on their own, and celebrate the first time they fix something themselves.
The patience it builds, reading the error before panicking and looking up the answer, is worth as much as the commands.
If you'd rather start with a full desktop than build one up, I went the Linux Mint route on a ThinkPad and it's a gentler first stop. And a Raspberry Pi emulation box is another good way into Linux, with games as the bait.