picture of Tux

Hands-On Linux

learn Linux by using it


I've installed Linux ... now what ?

Linux is finding its way to the personal computers where, so far, Microsoft Windows was omnipresent. As a result, there's a large part of the Linux user base that has no experience with Unix. I assume that the early Linux users, say in the nineties of the past century, adopted Linux as a PC alternative to Unix. After all, Linus Torvalds started the creation of Linux as a Unix-like operating system (actually : an alternative to Minix) for his personal computer. For people with Unix experience, learning Linux is probably a piece of cake.

However, Linux is now finding its way to the personal computers of people who never had any experience with any operating system other than Microsoft Windows. So, while installing Linux is getting easier and the desktop experience is getting more user-friendly in the microsoft meaning of the term, you're still faced with the fact that underneath the drag-and-drop, point-and-click Graphical User Interface Linux is entirely different from Windows. So, you don't have a clue : what the h*** is /home, and where did that C:\ drive go ? My network connection went down ... now where do I find its properties so I can check if everything is as it should be. And why does that old sound card keep acting up while it worked just fine with Windows ... ?

If you consider yourself a Windows Power User, or if you've been doing system and network administration on Windows systems, you might be interested in this Quickstart Guide to Linux for Windows Power Users and (would-be) system administrators

GUI ? CLI ?

With Windows, the GUI (Graphical User Interface) is part of the Operating System. With Linux, it is not. You can have a choice of "desktops" or "window managers" running on top of Linux. So if you don't look at what's beneath, you'll be learning your basic troubleshooting in KDE, or you'll be doing minor system administration in Gnome, but you still just have half a clue about the Linux underneath.

So, if you want to have a look at what Linux actually looks like without the colored wrappers, try CLI : the Command Line interface. Just about everything (related to system administration, troubleshooting, ...) can be done with commands, and almost all configuration is stored in plain text files ... this makes things really easy once you get used to it.

Know what you're doing or Learn by doing ?

Some people study a subject in depth, than go on and apply their knowledge. While I agree that some knowledge is necessary, I find that I seem to 'think with my hands' so I prefer to try things, see if I can pull it off, look up information as the need arises and later on read some more to fill the gaps. So I try to come up with relatively easy, concrete projects and just go ahead and see if I can get it working, learning stuff along the way. Here's a (small) list of the things I've gotten my hands on so far. So if you prefer learning by doing and want some concrete projects, have your pick.

All (or most) of the following projects use Debian GNU/Linux and focus on command line and shell scripts. They should be possible with other distributions as well, but there will be some differences (in file locations, available programs, maybe even some command syntax). The emphasis on command line work and editing plain text configuration files will help you learn what the file system looks like, where applications and daemons get there configuration from (and how to change it without depending on GUI tools), how scripting can help to automate system administration tasks, and how to shortcut general troubleshooting issues.


Hands-On Linux

Installing Linux (Debian)
When you're setting up servers and dedicated Linux systems (such as a router or a host for virtual machines), you probably prefer a minimal operating system setup : just the bare necessities, to which you can add other required software at will. A side effect of Linux becoming more desktop-oriented, is that the installers default to fully functional desktop systems, adding all sorts of software that are useful on a desktop PC. But if you want to set up a server, a router or a dedicated system for, say, a wiki or a streaming media server, you don't want all that overhead. This howto describes how to control the installation and how to set up a minimalistic system that you can build on for other projects.
A Linux Kiosk system
unsupervised computers running only a web browser and/or some multimedia applications : think internet pc's in cybercafes or public libraries, thin clients for web applications, ... : investigating a minimalistic GUI and learning how to configure a GUI without the wizards.
A Linux Small Business Server
An attempt to mimic the Microsoft Windows Small Business Server on a Linux system : a multi-purpose server for the Small Office / Home Office. Still rather quick and dirty, it gives a quick introduction in command line installation and configuration of several network services : DNS, DHCP, web server, ftp server, file- and printer services for windows clients (SAMBA), mail server (possibly with server-based mail filtering / ant-virus / ...), and possibly a database system.
Linux Networking
In stead of just reproducing the functionality of a Windows Server, you can also take advantage of one of Linux' strong points : all sorts of networking features and secure connections.
Passwordless SSH
Secure remote shell access and other ssh-based connections, without password prompts - so easily scriptable..
Terminal Sessions and Remote Desktops
exploring X, the window system that put windows, remote desktops and terminal sessions on Unix systems decades before there was such a thing as "MS Windows", "Microsoft Windows Terminal Server" or "Remote Desktop Protocol". The X Window System lives on in Linux desktop systems, that thus can take advantage of X's extraordinary networking features.
VPN
building virtual private networks for host-to-host connections or site-to-site private routes, using OpenVPN on Linux.
Nagios - Network Monitoring
Everybody knows Nagios is the definitive open source network monitoring solution. It can be used from simply checking to see if a network host is still up, all the way up to monitoring specific services on remote hosts, and even to trigger corrective action if a problem is detected. And tell you about all that by mail, phone, fax, pager, sirenes and flashing lights, and possibly also by carrier pigeon.
This guide will show you how to setup and configure Nagios, starting small and simple, but in an organized way, so we can effortessly scale up to more, bigger, more complex monitoring ... without loosing oversight and managability. It's the Definitive Quickstart Beginners Guide to Nagios in 24 hours for Dummies.
MediaWiki on Debian Linux
Wiki's are hot. So you may want your own wiki, as a personal web site, your own private documentation system, a content management system, or a groupware / collaboration tool to store and share information among a team, an organization, or a community. Here's a mini-howto.
Central Logging
If you have several servers, going through each server's logs to detect errors; problems or security breaches quickly becomes a pain. If you can collect, filter and sort these logs on a central server, you have a starting point to automate this and make your life easier. With syslog (or rsyslog), the linux system log daemon, you can do just that. You can even collect events from Windows event logs.
Phraseanet Digital Asset Management on Debian 6 squeeze
Phraseanet is a Digital Asset Management application that runs on LAMP. It's been open-sourced recently and looks really impressive, but the available documentation is scarse and the installation procedure isn't exactly trivial. Here's a write-up of how you could install Phraseanet DAM on Debian 6 squeeze.
Will probably also apply to Ubuntu server, and Linux in general
Apache Forrest on Debian Linux
Apache Forrest was originally designed as the Documentation framework for Apache developers. It can be used as a content management system and generate dynamic or static web pages. Here, we try to use Apache Forrest as a web authoring tool to generate a static (html-based) website.
Linux Streaming Media server
Serve audio and video streams to any host in your network (and beyond ?)
apt-proxy : your local Debian mirror
When you're installing Debian Linux over and over again, on the same or multiple machines, a local proxy for your apt sources could be a good idea. It's easier than you think (and you'll learn something about pinning and apt sources along the way. Here's how. Works for Ubuntu as well.
Linux and Virtualization
Whether as a way to run Windows applications from within Linux or as an environment for testing and experimenting, virtualization is a useful solution to get yourself access to numerous systems without having to find the hardware to run them on. Here's a (semi-) professional approach to virtualization : running a dedicated server with virtual guest systems, and access and use them remotely, from your desktop PC.
Linux and SNMP
Quickstart Guides about Linux and SNMP, including a guide on how to receive SNMP traps on a Linux system (Ubuntu, Debian).
Ubuntu Dapper Drake - the sysadmin approach
If you like the Debian style minimal, highly configurable install, Ubuntu Dapper Drake desktop install may seem a bit to much of the idiot-proof " next next next ". Although the live-CD approach to a Desktop setup has its advantages, (it's wonderful for home users or to quickly setup a few desktops or laptops), it does tie your hands if you're looking to setup unattended installations of lots of PC's, or want a minimal setup that you can build your own custom setup upon. Here's how to get your sysadmin power back.
Migrating from Windows XP to (Ubuntu) Linux
You've been using Windows for a quite a while now, and you would readily switch to Linux if only you wouldn't have to start from scratch and still be able to use Microsoft Word documents, Excel spreadsheets, tons of pictures, movies and mp3's. Your web browser is set exactly the way you want it, and of course you have your email program configured to match your mail provider's servers, and a mailbox full of messages - and you don't want to loose those.

It's easier than you think; here is how.
Boot floppies and network install
using 20th century hardware ? That old 486 or early Pentium might be useful but it doesn't boot from a CD-ROM ... it does not even have a CD-rom ! Here's a Debian installation procedure for that sort of situations
preseed : Debian Automatic installation
When you keep on repeating the same basic os setup over and over again, maybe it's time to try an unattended Debian Linux installation. Here's a quick intro.
Automatic System Documentation
System documentation is an important but boring job. You need documentation of your configuration for troubleshooting and recovery purposes, but keeping the documentation up to date is a chore, and often neglected. Let's see if we can automate it ...
The output of this automatic system documentation can also be used as input for automatic installations of new systems
Network boot
set up a server that allows clients on the network to boot off the network. Ideal to bootstrap unattended installations or use thin (diskless) clients.
Knoppix Xwindows setup on a Debian base system
Want to run a GUI / Desktop system and not satisfied with Debian's video configuration ? Use Knoppix hardware detection and configuration instead. Featuring some shell script and easy 'install from source' !
An internet gateway
use a PC with Linux as an 'internet gateway for internet connection sharing, routing, firewall, ...
A scheduled internet connection
using a PC with Linux as your internet gateway offers you the possibility to program the times (hours, days, ...) that users are allowed to connect to the internet. Implemented here with a cron job and some bash script.
Dealing with disks
Getting a handle on hard disks in Linux : disks and partitions, mount points, adding and removing disks, replace an old disk and salvage the data, replace a boot disk and keep a bootable system, work with hardware and software raid, and use logical volumes to make directories that span multiple disks.
Data destruction and data recovery
How to undelete a file or recover data from lost partitions and re-formatted disks, or how to secure erase data that you don't want other people to recover
Network Monitoring with Linux
With Unix being the first operating system ever to have TCP/IP, the Open Source community's affinity with standard (networking) protocols, and the programming skills of thousands, Linux is the ideal platform to run network monitoring and troubleshooting tools. So, set up Linux, and look around.
Do It Yourself Debian Packages
How to create your own packages and make them available to apt-get. Not just for programmers who want to compile for Debian or Ubuntu : this technique can also be used for automatic software installation of existing packages, or to customize a system with just one command.
Belgian eID software and ACS ACR38U Card Reader on Ubuntu
getting Ubuntu to work with the Belgian eID software and the ACS ACR38U Smartcard Reader, a typical 'eID Card Reader'
Mixed Systems
Pick and choose your software from multiple Debian or Ubuntu releases.
Fake Linux : Linux for the Rest of Us
The ultimate "Linux for the Windows User" experience : If you can handle Windows, you can handle Fake Linux.

Koen Noens
February 2006