Wes Ellis./ a personal notebook
Technology. Stories. Side projects.
A few things worth writing down.
← Back to Resources & Recommendations

Resources & Recommendations

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

A rugged laptop on the floor showing tiled terminal windows, with a beige keyboard and a tangle of cables in the foreground.

Part 13 of the thread Games and gear

THE SHORT VERSION4 points
  • 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:

  1. Tab autocompletes. Type the first few letters of a command or file name and press Tab.
  2. The up arrow brings back the commands you already ran.
  3. When an install fails, update first. sudo apt update fixes 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 add sudo to 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.