I'm a relative newcomer to Linux, having installed my first distribution on an old desktop
computer just over a year ago to see if I could give it some new life. It was an eye-opening experience coming from Windows/Mac environments where so much is hidden or locked away from the system's ostensible owner. Perhaps it may sound absurd to some ears, but without exaggeration I can say this was the first time I experienced something like freedom while working at a computer. And that is no coincidence. From the
Free Software Foundation:
“Free software” means software that respects users'
freedom and community. Roughly, it means that the users have the
freedom to run, copy, distribute, study, change and improve the
software. Thus, “free software” is a matter of
liberty, not price. To understand the concept, you should think of
“free” as in “free speech,” not as in
“free beer”.
When I think about why I hadn't begun exploring the GNU/Linux space five, ten or even twenty years ago (yes, I'm old), I'm often reminded of a classic work by philosopher Eric Fromm from 1941:
The Fear of Freedom.
Fromm argues that individuals seek out authoritarian systems precisely in order to avoid the disorienting and potentially traumatic experience of actual freedom and the responsibilities that come along with it. It is much easier to let others tell you what to think and how to act than it is to think and act for oneself. Anyway, philosophical digressions aside, I've collected a fair number of resources on GNU/Linux since that first install, and thought I'd share some of them here to help orient others who are interested in exploring alternatives to the Microsoft/Apple digital duopoly. Below, you'll find resources on Linux distributions, installation, the command line, as well as how to set up a file server, a development server and conduct remote management. Feel free to leave your own recommendations in the comments!
Distributions
There is a wide variety of
GNU/Linux distributions to choose from in the wild. Wikipedia's
list of Linux distributions reaches into the hundreds.
DistroWatch lists even more.
How-to Geek has a helpful article on what a distribution is and how they are different from one another. For beginners, it likely makes the most sense to choose from among those that are the most popular, since it will be easier to find answers to everyday questions.
Installation
Once you've decided to check out a distribution or three, the next step is to install it. There are many options here too: 1) a full install to a specific machine (overwriting the current operating system), 2) a dual boot install that allows you to run a second operating system alongside your primary one on a given machine, 3) a virtual install that allows you to run a second, third, fourth, or fifth operating system on top of your primary one, 4) or even so-called live versions that boot from a CD or USB drive and which you don't install on your machine at all! All the necessary information should be available from the official website and related forums of the distribution(s) you've chosen to explore. For the present post, we'll take Ubuntu as an example:
Virtualization
Perhaps the simplest way to test out and experiment with a new distribution is to create a virtual instance of the system on your current machine. For example, I currently have twelve virtual instances of nine different distributions on my main laptop using the
VirtualBox free software package.
VirtualBox is an application that allows you to create a virtual environment on your host computer in which you can install a so-called guest operating system that runs on top of your host's system the same way any other software application would.
Note: unless you're running a server without a graphical interface, once you've installed a guest operating system on your machine, you'll very likely also want to install the so-called
VirtualBox Guest Additions, which provide a full screen "seamless" mode, file sharing between host and guest systems and other amenities. I have found this process to be a bit tricky in the past, but recently I came across
this post on a CrunchBang forum which provided instructions that have worked flawlessly on every single Debian-based distribution I've installed on VirtualBox since (specifically: Crunchbang, Ubuntu Desktop, Ubuntu Server, Kali and Backbox).
Command Line
Despite it's name, the command line terminal is the beginning, not the end! Finding your way around the command line can be intimidating at first, especially for those of us who have only ever used Windows Explorer or Mac Finder to navigate a computer's file system. But I guarantee that after a bit of experience you'll soon be asking yourself how you ever went without it! Would you rather copy and rename 300 pictures from your camera onto your computer one by one in a graphical interface, or with one relatively simple command from the terminal?
File Server
Linux distributions are great for re-purposing old computers. Lots of people have old laptops or desktop machines gathering dust in the closet. These can easily be transformed into file and media servers for your home network.
LAMP Stack Development Server
A LAMP stack is a software bundle used for running services like web sites, databases and the like. LAMP stands for: Linux (operating system),
Apache (web server),
MYSQL (database server), and
PHP (server side scripting language). Setting up a full fledged LAMP stack is actually ridiculously easy once you get the hang of it.
Open SSH Server
Once you've set up a dedicated home server of some kind, you don't really want to have to keep it hooked up to a monitor, keyboard and mouse. You want to put it in a closet and forget about it, but you still need to be able to dial into it for updates or maintenance. And that's what the Open SSH Server is for. Basically, Open SSH allows for secure login to a remote machine over a given network.
Conclusion
Well, that's all folks! I hope you've found some of these resources helpful. As always, recommendations of your own favorite resources are welcome in the comments, as are suggestions, criticism and angry tirades!