The Complete Beginner's Guide to Linux
We are certain that many of you want to try Linux to see what it is like, but have no idea where to start or how to get into it. This is our complete guide to introduce you to the Linux environment and teach you how to adjust to it if you are a new user. From picking the perfect distro for your needs to partitioning and installing the OS, this guide will show you the step-by-step process of getting Linux up and running on your machine. We break down the fundamental differences between the Linux and Windows graphical interfaces, and show you how to utilize Linux's terminal like a pro. Whether this is your first time running Linux or you've been an open-source accolyte for years, you'll find lots of useful tips and reference information in this comprehensive overview.

One of the hardest things to do while starting out is finding a distro that is right for you. Many users try several before settling on one of two that they really like. Once they find a distro that feels right, they are often reluctant to switch unless the distro becomes unsuitable for their needs for whatever reason.
Arguably, the most important factor in choosing a distro is your general level of experience with Linux. Not all distros cater to the same intended user audience. Some (like Ubuntu) are designed to be more accessible to novice users while other distros have a greater learning curve. Distros like Gentoo or Slackware are not necessarily meant to be “harder” than Ubuntu; they simply work out that way because they are less automated and often sacrifice ease of use for the greatest possible user control or system transparency. Many advanced users know what they are doing and prefer doing things their way.
This chapter is going to walk you through downloading and burning a CD image of your chosen distro(s), the traditional way of partitioning and setting up a dual-boot system, and another way to dual-boot without repartitioning. Instead of providing a step-by-step tutorial for a specific installation process, our goal is to educate you on the underlying concepts in a more generalized way that you will be able to apply towards many different Linux distros.
We cover software acquisitioning, hard drive partitioning, distro testing, and the actual install. You should also read our previous guide to installing Ubuntu for further instructions.
The Linux graphical user interface (GUI) system may be very different from what you are used to if you are coming from a Windows or Mac OS X background. The GUI of an operating system is commonly referred to as its shell. While virtually all versions of Windows since Windows 95 have used variations of the same basic shell (explorer.exe), there are numerous shells available for the Linux GUI. These Linux shells are called window managers and desktop environments. The term window manager is used to address the simple core user interface of a shell, while the term desktop environment is much more inclusive, covering the shell itself in addition to the various other programs that are integrated with it.
Due to the vast number of window managers available for Linux, many new users often feel overwhelmed at the idea of having to learn their way around them. We must emphasize that many people experiment with several window managers before settling down with one that feels right for them, and there certainly is no need to learn all of them. Due to their modular nature, it is common to have several window managers installed at once.
Much like part one of this series that dealt with choosing a distro, this guide will help you to choose a window manager/desktop environment by introducing you to several of them and addressing their strengths and weaknesses.
Traditionally, most new users have always been reluctant to experiment with the command line interface, (commonly referred to as the terminal) yet it has always been one of the most important parts of learning Linux. Once you understand the terminal, Linux will finally open up to you. The terminal is easily the most powerful part of a Linux system; it is your way of being able to work directly with the operating system without any barriers or hindrance.
This section will cover basic terminal usage in addition to ways to enhance basic commands. For the sake of simplicity, we will only address the underlying concepts of shell scripting instead of covering it in detail. We saved this part of our guide for last because it is typically the most difficult to grasp. However, the terminal is fairly easy to understand when broken down into simple concepts.
Although the introduction of package management on most distros, less diversity in CPU architecture among the user base, and massive increases in hardware speed have largely reduced or eliminated the need to compile software yourself, there are still a few instances where you would have to do so. Although the various official and unofficial software repositories for Ubuntu and other distros include most of the tools that the average user would need for any given purpose, the repositories are not completely comprehensive. Old packages sometimes get dropped and updated versions are often slow to be added. It may also take a release cycle or more for brand-new programs to be included.
While Ubuntu and Debian have “backports” repositories that have fairly new packages in them, many other distros do not have such a resource. For large projects with large community support, the developer may offer nightly builds, but this is not the case for most projects. The only reliable way to get bleeding-edge software (stability issues aside) is to either find a repository that has it or download the source code from the developer and build it yourself. We show you how!