Linux All-In-One For Dummies
By Richard Blum
2.5/5
()
About this ebook
Linux is for everyone!
Linux All-in-One For Dummies breaks down the ever-popular operating system to its basics and trains users on the art of Linux. This handy reference covers all the latest updates and operating system features. It presents content on Linux desktops, applications, and more. With eight books in one, you’ll have access to the most comprehensive overview of Linux around. Explore the inner workings of Linux machines, so you’ll know Linux front to back. This all-inclusive handbook also walks you through solving Linux problems—complete with hands-on examples—so you’ll be a Linux whiz before you know it.
- Get familiar with Linux as you install and customize the operating system
- Learn how to navigate the file system, use the Linux shell, and get online
- Become a Linux guru with server hosting, scripting, and security how-tos
- Study for your Linux certification by using this complete guide as your reference
This book is a massive source of support for beginning and intermediate Linux users, as well as those looking to brush up on their knowledge for certification. And, thanks to the signature Dummies approach, it’s also a lot of fun.
Read more from Richard Blum
PHP, MySQL, & JavaScript All-in-One For Dummies Rating: 5 out of 5 stars5/5LPI Linux Essentials Study Guide: Exam 010 v1.6 Rating: 0 out of 5 stars0 ratingsCompTIA Linux+ Study Guide: Exam XK0-004 Rating: 0 out of 5 stars0 ratingsCompTIA Linux+ Study Guide: Exam XK0-005 Rating: 0 out of 5 stars0 ratingsProfessional Assembly Language Rating: 4 out of 5 stars4/5CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 Rating: 3 out of 5 stars3/5LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-500 and Exam 102-500 Rating: 0 out of 5 stars0 ratingsLinux For Dummies Rating: 0 out of 5 stars0 ratingsSQL All-in-One For Dummies Rating: 4 out of 5 stars4/5Mastering Linux System Administration Rating: 0 out of 5 stars0 ratingsLPIC-2: Linux Professional Institute Certification Study Guide: Exam 201 and Exam 202 Rating: 0 out of 5 stars0 ratingsLPIC-1: Linux Professional Institute Certification Study Guide Rating: 4 out of 5 stars4/5Linux Essentials Rating: 4 out of 5 stars4/5
Related to Linux All-In-One For Dummies
Related ebooks
Linux For Dummies Rating: 0 out of 5 stars0 ratingsLinux All-in-One For Dummies Rating: 3 out of 5 stars3/5Networking All-in-One For Dummies Rating: 4 out of 5 stars4/5Hacking For Dummies Rating: 0 out of 5 stars0 ratingsCybersecurity All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsPenetration Testing For Dummies Rating: 0 out of 5 stars0 ratingsWindows Server 2019 & PowerShell All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsHome Networking Do-It-Yourself For Dummies Rating: 4 out of 5 stars4/5Windows Server 2022 & PowerShell All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsWindows 11 For Dummies Rating: 0 out of 5 stars0 ratingsLinux Essentials Rating: 4 out of 5 stars4/5Troubleshooting & Maintaining PCs All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsCoding All-in-One For Dummies Rating: 4 out of 5 stars4/5Windows 11 All-in-One For Dummies Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsCompTIA Linux+ Practice Tests: Exam XK0-004 Rating: 0 out of 5 stars0 ratingsPython All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsLinux Security Fundamentals Rating: 0 out of 5 stars0 ratingsJavaFX For Dummies Rating: 0 out of 5 stars0 ratingsWeb Coding & Development All-in-One For Dummies Rating: 1 out of 5 stars1/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsHTML5 and CSS3 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsSwift For Dummies Rating: 0 out of 5 stars0 ratingsJavaScript All-in-One For Dummies Rating: 5 out of 5 stars5/5CompTIA PenTest+ Certification For Dummies Rating: 0 out of 5 stars0 ratingsWindows Command Line Administration Instant Reference Rating: 0 out of 5 stars0 ratingsRaspberry Pi For Kids For Dummies Rating: 4 out of 5 stars4/5AWS For Developers For Dummies Rating: 0 out of 5 stars0 ratings
Operating Systems For You
Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5Bash Command Line Pro Tips Rating: 5 out of 5 stars5/5Linux Command-Line Tips & Tricks Rating: 0 out of 5 stars0 ratingsExcel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Hacking : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Ethical Hacking Rating: 5 out of 5 stars5/5OneNote: The Ultimate Guide on How to Use Microsoft OneNote for Getting Things Done Rating: 1 out of 5 stars1/5RHCSA Red Hat Enterprise Linux 8 (UPDATED): Training and Exam Preparation Guide (EX200), Second Edition Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Linux Command Line and Shell Scripting Bible Rating: 3 out of 5 stars3/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratingsMake Your PC Stable and Fast: What Microsoft Forgot to Tell You Rating: 4 out of 5 stars4/5Linux Bible Rating: 0 out of 5 stars0 ratingsMacBook Pro User Manual: 2022 MacBook Pro User Guide for beginners and seniors to Master Macbook Pro like a Pro Rating: 0 out of 5 stars0 ratingsmacOS Sonoma For Dummies Rating: 0 out of 5 stars0 ratingsPowerShell: A Comprehensive Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Windows 11 For Dummies Rating: 0 out of 5 stars0 ratingsThe Mac Terminal Reference and Scripting Primer Rating: 4 out of 5 stars4/5The Linux Command Line Beginner's Guide Rating: 4 out of 5 stars4/5Help! iOS 17 - iPhone: How to Use iOS17 Rating: 0 out of 5 stars0 ratingsNetworking for System Administrators: IT Mastery, #5 Rating: 5 out of 5 stars5/5XDA Developers' Android Hacker's Toolkit: The Complete Guide to Rooting, ROMs and Theming Rating: 2 out of 5 stars2/5Macs All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsCompTIA A+ Complete Study Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 0 out of 5 stars0 ratingsExploring Windows 11: The Illustrated, Practical Guide to Using Microsoft Windows Rating: 0 out of 5 stars0 ratingsThe Windows Command Line Beginner's Guide: Second Edition Rating: 4 out of 5 stars4/5iPhone Unlocked Rating: 0 out of 5 stars0 ratings
Reviews for Linux All-In-One For Dummies
3 ratings0 reviews
Book preview
Linux All-In-One For Dummies - Richard Blum
Introduction
Linux is truly amazing when you consider how it originated and how it continues to evolve. From its modest beginning as the hobby of one person — Linus Torvalds of Finland — Linux has grown into a full-fledged operating system with features that rival those of any commercial Unix operating system. To top it off, Linux — with all its source code — is available free to anyone. All you have to do is download it from a website or get it on a USB flash drive, CD, or DVD for a nominal fee from one of many Linux CD vendors.
Linux certainly is an exception to the rule that you get what you pay for.
Even though Linux is free, it’s no slouch when it comes to performance, features, and reliability. The robustness of Linux has to do with the way it is developed and updated. Developers around the world collaborate to add features. Incremental versions are continually downloaded by users and tested in a variety of system configurations. Linux revisions go through much more rigorous beta testing than any commercial software does.
If you’re beginning to use Linux, what you need is a practical guide that not only gets you going with Linux installation and setup but also shows you how to use Linux for a specific task. You may also want to try out different Linux distributions before settling on one.
About This Book
Linux All-in-One For Dummies gives you eight quick-reference guides in a single book. Taken together, these eight minibooks provide detailed information on installing, configuring, and using Linux, as well as pointers for passing the vendor-neutral certification exams available from CompTIA and the Linux Professional Institute (LPI) to authenticate your skills.
What you’ll like most about this book is that you don’t have to sequentially read the whole thing chapter by chapter — or even read through each section in a chapter. You can pretty much turn to the topic you want and quickly get the answer to your pressing questions about Linux, whether they’re about using the LibreOffice.org word processor, setting up the Apache web server, or a wide range of topics.
Topics that correspond to the certification objectives are important after you’ve become comfortable enough with the operating system to consider taking the certification exams. As I discuss the material, Tips draw your attention to the key concepts and topics tested in the CompTIA Linux+ or LPI LPIC-1 exams. Note, though, that not all Tips indicate material that’s on the exams; I also share other types of information in Tips.
If you are a novice to Linux, ignore the certification objective information as you read. Only after you become comfortable with the operating system and are considering authenticating your skills by taking the CompTIA or LPI exams should you revisit the book and look for this information.
Each minibook zeros in on a specific task area — such as using the Internet or running Internet servers — and then provides hands-on instructions on how to perform a series of related tasks. You can jump right to a section and read about a specific task. You don’t have to read anything but the few paragraphs or the list of steps that relate to your question. Use the Table of Contents or the Index to locate the pages relevant to your question.
You can safely ignore text next to the Technical Stuff icons, as well as text in sidebars. However, if you’re the kind of person who likes to know some of the hidden details of how Linux works, then, by all means, dig into the Technical Stuff icons and the sidebars.
Within this book, you may note that some web addresses break across two lines of text. If you’re reading this book in print and want to visit one of these web pages, simply key in the web address exactly as it’s noted in the text, pretending as though the line break doesn’t exist. If you’re reading this as an e-book, you’ve got it easy — just click the web address to be taken directly to the web page.
Foolish Assumptions
I assume that you’re familiar with a PC — you know how to turn it on and off and you’ve dabbled with Windows. (Considering that most new PCs come preloaded with Windows, this assumption is safe, right?) And I assume that you know how to use some Windows applications, such as Microsoft Office.
When installing Linux on your PC, you may want to retain your Windows installations. I assume that you don’t mind shrinking the Windows partition to make room for Linux. For this procedure, you can invest in a good disk-partitioning tool or use one of the partitioning tools included with most Linux distributions.
I also assume that you’re willing to accept the risk that when you try to install Linux, some things may not quite work. Problems can happen if you have some uncommon types of hardware. If you’re afraid of ruining your system, try finding a slightly older, spare PC that you can sacrifice and then install Linux on that PC. Alternatively, you can install a virtual server software package such as Oracle’s VirtualBox and install Linux as a virtual machine inside your Windows desktop.
Linux All-in-One Desk Reference For Dummies has eight minibooks, each of which focuses on a small set of related topics. If you’re looking for information on a specific topic, check the minibook names on the thumb tabs or consult the Table of Contents.
Icons Used in This Book
Following the time-honored tradition of the All-in-One For Dummies series, I use icons to help you quickly pinpoint useful information. The icons include the following:
Remember The Remember icon marks a general, interesting fact — something that you want to know and remember as you work with Linux. You might even find interesting trivia worth bringing up at an evening dinner party.
Tip When you see the Tip icon, you’re about to read about something you can do to make your job easier. Long after you’ve finished with the first reading of this book, you can skim the book, looking for only the tips.
Warning I use the Warning icon to highlight potential pitfalls. With this icon, I’m telling you: Watch out! Whatever is being discussed could hurt your system.
They say that those who are forewarned are forearmed, so I hope these entities will save you some frustration.
Technical stuff The Technical Stuff icon marks technical information that could be of interest to an advanced user (or those aspiring to be advanced users).
Beyond the Book
In addition to the book you have in your hands, you can access some helpful extra content online. Check out the free Cheat Sheet by going to www.dummies.com and entering Linux All-in-One For Dummies in the Search box. You’ll find common Linux commands and where to go for more help with Linux.
Occasionally, we have updates to our technology books. If this book does have any technical updates, they’ll be posted at www.dummies.com.
Where to Go from Here
It’s time to get started on your Linux adventure. Turn to any chapter and let the fun begin. Use the Table of Contents and the Index to figure out where you want to go. Before you know it, you’ll become an expert at Linux!
I hope you enjoy consulting this book as much as I enjoyed writing it!
Book 1
Getting Started with Linux
Contents at a Glance
Chapter 1: Introducing Linux
What Is Linux?
Linux Distributions: Why So Many?
Chapter 2: Installing Linux
Dual-Booting with Linux and Microsoft Windows
Finally, Finally, Before You Get Started
Installing Ubuntu
Your First Ubuntu Boot
Chapter 3: Living in a Virtual World
What Are Virtual Servers?
Installing VirtualBox
Creating a Linux Virtual Machine
Installing Linux on a Virtual Machine
Chapter 4: Trying Out Linux
Starting Linux
Playing with the Shell
Shutting Down
Chapter 5: Troubleshooting and Customizing Linux
Using Text Mode Installation
Lookin’ for Trouble
Resolving Other Installation Problems
Setting Up Printers
Managing DVDs, CD-ROMs, and Flash Drives
Updating the Operating System
Installing New Software
Chapter 1
Introducing Linux
IN THIS CHAPTER
Bullet Getting acquainted with Linux
Bullet Discovering Linux distributions
The Linux operating system has become one of the most widely used operating systems, popular among researchers, application developers, and hobbyists alike. These days, the Linux operating system can be found in an amazing range of computer environments, from mobile phones to satellites.
This chapter examines just what the Linux operating system is and why there are so many different Linux distributions available to choose from. With this information, you can select the right Linux distribution for your environment.
What Is Linux?
If you’ve never worked with Linux before, you may be confused as to why there are so many different versions of it available. You’ve most likely come across terms such as distribution, LiveDVD, and GNU when looking at Linux packages, and you may have been confused. This section takes some of the mystery out of the Linux system for you.
Although people usually refer to the Linux operating system as just Linux,
in reality there are quite a few parts that make up a complete Linux system. The four main parts of a Linux system are
The Linux kernel
The GNU utilities
The user interface
Application software
Each of these four parts has a specific job in the Linux system. Although each of the parts by itself isn’t very useful, put together, they create what people refer to as Linux.
Figure 1-1 shows the basic diagram of how these parts fit together to create the overall Linux system.
FIGURE 1-1: The Linux system.
The following sections describe these four parts in detail and give you an overview of how they work together to create a complete Linux system.
The Linux kernel
The core of the Linux system is the kernel. The kernel controls all the hardware and software on the computer system, allocating hardware when necessary and executing software when required.
If you’ve been following the Linux world at all, no doubt you’ve heard the name Linus Torvalds. Linus is the person responsible for creating the first Linux kernel software while he was a student at the University of Helsinki. He intended it to be a copy of the Unix system, at the time a popular operating system used at many universities.
After developing the Linux kernel, Linus released it to the Internet community and solicited suggestions for improving it. This simple process started a revolution in the world of computer operating systems. Soon Linus was receiving suggestions from students as well as professional programmers from around the world.
Allowing anyone to change programming code in the kernel would result in complete chaos. To simplify things, Linus acted as a central point for all improvement suggestions. It was ultimately Linus’s decision whether to incorporate suggested code in the kernel. This same concept is still in place with the Linux kernel code, except that instead of just Linus controlling the kernel code, a team of developers has taken on the task.
The kernel is primarily responsible for four main functions:
System memory management
Software program management
Hardware management
File system management
The following sections explore the first three functions in more detail. File system management in Linux can be somewhat complicated; Book 2, Chapter 5 dives into that topic.
System memory management
One of the primary functions of the operating system kernel is memory management. Memory management is the ability to control how programs and utilities run within the memory restrictions of the system. Not only does the kernel manage the physical memory available on the system, but it can also create and manage virtual memory (memory that doesn’t actually exist but is created on the hard drive and treated as real memory).
It does this by using space on the hard disk called the swap space. The kernel swaps the contents of virtual memory locations back and forth from the swap space to the actual physical memory. This allows the system to think there is more memory available than what physically exists, as shown in Figure 1-2.
The memory locations are grouped into blocks called pages. The kernel locates each page of memory either in the physical memory or the swap space. The kernel then maintains a table of the memory pages that indicates which pages are in physical memory and which pages are swapped out to disk.
Schematic illustration of the Linux system memory map.FIGURE 1-2: The Linux system memory map.
The kernel keeps track of which memory pages are in use and automatically copies memory pages that have not been accessed for a period of time to the swap space area (called swapping out) — even if other memory is available. When a program wants to access a memory page that has been swapped out, the kernel must make room for it in physical memory by swapping out a different memory page and swapping in the required page from the swap space. Obviously, this process takes time and can slow down a running process. The process of swapping out memory pages for running applications continues for as long as the Linux system is running.
Software program management
With the Linux operating system, a running program is called a process. A process can run in the foreground, displaying output on a display, or it can run in the background, doing work behind the scenes. The kernel controls how the Linux system manages all the processes running on the system.
The kernel creates the first process, called the init process, to start all other processes on the system. When the kernel starts, it loads the init process into virtual memory. As the kernel starts each additional process, it gives it a unique area in virtual memory to store the data and code that the process uses.
A few different types of init process implementations are available in Linux, but these days, the two most popular are
SysVinit: The SysVinit initialization method was the original method used by Linux and was based on the Unix System V initialization method. Though it is not used by many Linux distributions these days, you still may find it around in older Linux distributions.
systemd: The systemd initialization method was created in 2010 and has become the most popular initialization and process management system used by Linux distributions.
The SysVinit initialization method primarily utilizes scripts to start and stop applications as needed, while the systemd initialization method uses configuration files. Book 4, Chapter 2 explores how each of these initialization methods works and how you can configure them to customize which applications your Linux system starts automatically.
Hardware management
Still another of the kernel’s responsibilities is hardware management. Any device that the Linux system must communicate with needs driver code inserted inside the kernel code. The driver code in the kernel allows the kernel to pass data back and forth to the device, acting as a middleman between applications and the hardware. There are two methods used for inserting device driver code in the Linux kernel:
Drivers compiled in the kernel
Driver modules added to the kernel during runtime
Originally, the only way to insert device driver code was to recompile the kernel and restart the system. Each time you added a new device to the system, you had to recompile the kernel code and restart. This process became even more inefficient as Linux kernels supported more hardware and as removable storage devices (such as USB sticks) became more popular. Fortunately, Linux developers devised a better method to insert driver code into the running kernel.
Programmers developed the concept of kernel modules to allow the insertion of device driver code into a running kernel without having to recompile the kernel. Also, a kernel module could be removed from the kernel when the system had finished using the device. This greatly simplified and expanded using hardware with Linux.
Book 4, Chapter 2 also dives into driver modules and how to use them in your Linux system.
GNU utilities
Besides having a kernel to control memory, software, and hardware devices, a computer operating system needs utilities to perform standard functions, such as handling files and programs. Although Linus created the Linux system kernel, he had no system utilities to run on it. Fortunately for him, at the same time he was working, a group of people were working together on the Internet trying to develop a standard set of computer system utilities that mimicked the popular Unix operating system.
The GNU Project (GNU stands for GNU’s Not Unix — a recursive acronym) developed a complete set of Unix utilities but had no kernel system to run them on. These utilities were developed under a software philosophy called open-source software (OSS).
The concept of OSS allows programmers to develop software and then release it to the world with no licensing fees attached. Anyone can use the software, modify it, or incorporate it into their own system without having to pay a license fee. Uniting Linus’s Linux kernel with the GNU operating system utilities created a complete, functional, free operating system.
Although the bundling of the Linux kernel and GNU utilities is often just called Linux, you’ll see some Linux purists on the Internet refer to it as the GNU/Linux system to give credit to the GNU Project for its contributions to the cause.
The GNU Project was mainly designed for Unix system administrators to have a Unixlike environment available. This focus resulted in the project porting many common Unix system commandline utilities. The core bundle of utilities supplied for Linux systems is called the coreutils package.
The GNU coreutils package consists of three parts:
Utilities for handling files
Utilities for manipulating text
Utilities for managing processes
Each of these three main groups of utilities contains several utility programs that are invaluable to the Linux system administrator and programmer.
Linux user interfaces
Having a world-class operating system that can manage your computer hardware and software is great, but you need some way to communicate with it. With the popularity of Microsoft Windows, desktop computer users expect some type of graphical display to interact with their system. This spurred more development in the OSS community, and the Linux graphical desktops emerged.
Linux is famous for being able to do things in more than one way, and no place is this more relevant than in graphical desktops. There are a plethora of graphical desktops you can choose from in Linux. The following sections describe a few of the more popular ones.
The X Window system
There are two basic elements that control your video environment: the video card in your workstation and your monitor. To display fancy graphics on your computer, the Linux software needs to know how to talk to both of them.
The X Window software is a lowlevel program that works directly with the video card and monitor in the workstation and controls how Linux applications can present fancy windows and graphics on your computer.
Linux isn't the only operating system that uses X Window; there are versions written for many different operating systems. In the Linux world, there are a few different software packages that can implement it, but there are two that are most commonly used:
X.org: Based on the original Unix X Window System version 11 (often called X11), it’s the older of the two packages.
Wayland: More Linux distributions are migrating to the Wayland software, a newer X Window package that is touted to be more secure and easier to maintain.
When you first install a Linux distribution, it attempts to detect your video card and monitor and then creates an X Window configuration file that contains the required information. During installation, you may notice a time when the installation program scans your monitor for supported video modes. Sometimes this causes your monitor to go blank for a few seconds. Because there are lots of different types of video cards and monitors out there, this process can take a little while to complete.
The core X Window software produces a graphical display environment but nothing else. Although this is fine for running individual applications, it isn’t too useful for day-to-day computer use. There is no desktop environment allowing users to manipulate files or launch programs. To do that, you need a desktop environment on top of the X Window system software.
The KDE Plasma desktop
The K Desktop Environment (KDE) was first released in 1996 as an open-source project to produce a graphical desktop similar to the Microsoft Windows environment. The KDE desktop incorporates all the features you’re probably familiar with if you’re a Windows user. Figure 1-3 shows the current version, called KDE Plasma, running in the openSUSE Linux distribution.
Schematic illustration of the KDE Plasma desktop in openSUSE.FIGURE 1-3: The KDE Plasma desktop in openSUSE.
The KDE project also maintains lots of common desktop applications that run in KDE Plasma. Book 2, Chapter 2 explores all the features of the KDE Plasma desktop environment.
The GNOME desktop
The GNU Network Object Model Environment (GNOME) is another popular Linux desktop environment. First released in 1999, GNOME has become the default desktop environment for many Linux distributions (the most popular being Red Hat Enterprise Linux).
The GNOME desktop underwent a radical change with version 3, released in 2011. It departed from the standard look and feel of most desktops that use standard menu bars and task bars, and instead made the interface more menu-driven so it would be user-friendly across multiple platforms, such as tablets and mobile phones. This change led to controversy, spawning many new desktops that kept the GNOME 2 look. Figure 1-4 shows the standard GNOME 3 desktop used in the Ubuntu Linux distribution.
Schematic illustration of a GNOME 3 desktop on an Ubuntu Linux system.FIGURE 1-4: A GNOME 3 desktop on an Ubuntu Linux system.
Not to be outdone by KDE, the GNOME developers have also produced a host of graphical applications that integrate with the GNOME desktop. Book 2, Chapter 1 shows the GNOME desktop environment and the many applications it contains.
The command-line interface
While having a fancy graphical desktop interface is nice, there are drawbacks. The extra processing power required to interact with the graphics card takes away crucial CPU time that can be used for other programs. Nowhere is this more important than in a server environment.
Because of that, many Linux servers don’t load a graphical desktop, and instead rely on a text-based interface called the command-line interface (CLI). The CLI provides a way for users to start programs, manage files on the file system, and manage processes running on the Linux system using simple text commands. The CLI is produced by a program called a shell. The shell allows you to enter text commands; then it interprets the commands and executes them in the kernel.
The shell contains a set of internal commands that you use to control things such as copying files, moving files, renaming files, displaying the programs currently running on the system, and stopping programs running on the system. Besides the internal commands, the shell also allows you to enter the name of a program at the command prompt. The shell passes the program name off to the kernel to start it.
You can also group shell commands into files to execute as a program. Those files are called shell scripts. Any command that you can execute from the command line can be placed in a shell script and run as a group of commands. This provides great flexibility in creating utilities for commonly run commands or processes that require several commands grouped together.
Quite a few Linux shells are available to use on a Linux system. Different shells have different characteristics, some being more useful for creating scripts and some being more useful for managing processes. The default shell used in all Linux distributions is the Bash shell. The Bash shell was developed by the GNU project as a replacement for the standard Unix shell, called the Bourne shell (after its creator, Stephen Bourne). The Bash shell name is a play on this wording, referred to as the Bourne again shell.
In addition to the Bash shell, there are several other popular shells you can run into in a Linux environment:
ash: A simple, lightweight shell that runs in low-memory environments but has full compatibility with the Bash shell
korn: A programming shell compatible with the Bourne shell but supporting advanced programming features like associative arrays and floating-point arithmetic
tcsh: A shell that incorporates elements from the C programming language into shell scripts
zsh: An advanced shell that incorporates features from bash, korn, and tcsh, providing advanced programming features, shared history files, and themed prompts
Tip Most Linux distributions include more than one shell, although usually they pick one of them to be the default. If your Linux distribution includes multiple shells, feel free to experiment with different shells and see which one fits your needs.
Linux Distributions: Why So Many?
You may be wondering how you’re going to get all the components of Linux put together to make a Linux system. Fortunately, there are people who have already done that for you.
A complete Linux system package is called a distribution. Lots of different Linux distributions are available to meet just about any computing requirement you could have. Most distributions are customized for a specific user group, such as business users, multimedia enthusiasts, software developers, or typical home users. Each customized distribution includes the software packages required to support specialized functions, such as audio and videoediting software for multimedia enthusiasts, or compilers and integrated development environments (IDEs) for software developers.
The different Linux distributions are often divided into two general categories:
Core Linux distributions
Specialized distributions
The following sections describe these different types of Linux distributions and show some examples of Linux distributions in each category.
Core Linux distributions
A core Linux distribution contains a kernel, one or more graphical desktop environments, and just about every Linux application that is available, precompiled for the provided kernel. It provides one-stop shopping for a complete Linux installation. Here are some of the more popular core Linux distributions:
Debian: Popular with Linux experts and commercial Linux products
Gentoo: A distribution designed for advanced Linux users, containing only Linux source code
openSUSE: Different distributions for business and home use
Red Hat Enterprise: A commercial business distribution used mainly for Internet servers
Slackware: One of the original Linux distribution sets, popular with Linux geeks
In the early days of Linux, a distribution was released as a set of floppy disks. You had to download groups of files and then copy them onto disks. It would usually take 50 or more disks to make an entire distribution! Needless to say, this experience was painful. Nowadays, Linux distributions are released as an ISO image file, which is a complete disk image on a DVD as a single file. You use a software application to burn the ISO image file onto a DVD or create a bootable USB stick. Then you just boot your workstation from the DVD or USB stick to install Linux. This makes installing Linux much easier.
Having the entire Linux world at your fingertips is pretty amazing, but beginners often run into problems when they install one of the core Linux distributions. To cover just about any situation in which someone may want to use Linux, a single distribution has to include lots of application software. This includes everything from high-end Internet database servers to common games.
Most distributions ask a series of questions during the installation process to determine which applications to load by default, which hardware is connected to the PC, and how to configure the hardware. Beginners often find these questions confusing. As a result, they often either load way too many programs on their computer or don’t load enough and later discover that their computer won’t do what they want it to.
Fortunately for beginners, there’s a much simpler way to install Linux.
Specialized Linux distributions
A subgroup of Linux distributions is aimed specifically at beginning Linux users. These distributions are typically based on one of the core distributions but contain only a subset of applications that would make sense for a specific area of use.
Besides providing specialized software (such as only office products for business users), customized Linux distributions also try to help beginning Linux users by automatically detecting and configuring common hardware devices. This makes installing Linux a much more enjoyable process.
Here are some of the specialized Linux distributions available and what they specialize in:
Fedora: A free distribution based on the Red Hat Enterprise distribution, used as a testing ground for Red Hat Enterprise Linux
Mint: A free distribution based on the Debian distribution, intended for home entertainment use
MX Linux: A free distribution based on the Debian distribution, intended for home hobbyist use
Puppy Linux: A free small distribution based on Debian that runs well on older PCs
Ubuntu: A free distribution based on the Debian distribution, commonly used for school and home use
This is just a small sampling of specialized Linux distributions. There are literally hundreds of specialized Linux distributions and more are popping up all the time on the Internet. No matter what your specialty, you’ll probably find a Linux distribution made for you.
Many of the specialized Linux distributions are based on the Debian Linux distribution. They use the same installation files as Debian but package only a small fraction of a full-blown Debian system.
Tip If you’re interested in exploring different Linux distributions, a great place to start is DistroWatch.com (https://distrowatch.com). They post updates as different Linux distributions release new versions, as well as review many of the popular distributions.
Most Linux distributions also have a LiveDVD version available. The LiveDVD version is a self-contained ISO image file that you can burn onto a DVD or USB stick to boot up a running Linux system directly, without having to install it on your hard drive. Depending on the distribution, the LiveDVD contains either a small subset of applications or, in the case of specialized distributions, the entire system. The benefit of the LiveDVD is that you can test it with your system hardware before going through the trouble of installing the system.
Chapter 2
Installing Linux
IN THIS CHAPTER
Bullet Using Linux and Windows on the same computer
Bullet Taking basic preinstallation steps
Bullet Installing and booting Ubuntu
There are three major approaches for installing Linux. If you have a spare computer that’s only going to run Linux and nothing else, you’re in luck! You can skip the "Installing Ubuntu" section and start your installation. If you do run into any problems, you can find troubleshooting information in Book 1, Chapter 4 as well.
Of course, many people don’t have the luxury of having more than one computer to use for Linux. To install Linux permanently on an existing PC, you’ll need to have a hard disk area set up for it. There are three common solutions to this problem:
Completely replace an existing operating system on the hard drive.
Install Linux on a second hard drive.
Partition an existing hard drive to include Linux.
The first solution is the easiest way to install Linux on a PC. Most Linux installations even include an automatic process that guides you through converting a PC entirely to Linux. However, this is an all-or-nothing approach — you’ll be replacing your existing operating system entirely with Linux! If you’re okay with replacing your existing Windows or macOS operating system, you too can jump to the "Installing Ubuntu" section of this chapter.
Warning If you do replace your existing operating system, be aware that when you’re done, you won’t have your original data files anymore! If you want to keep any files from your Windows PC, you’ll need to back them up yourself to a media that you can read from Linux.
The other two methods require a dual-boot scenario, which makes things much more complicated. In a dual-boot scenario, both Linux and Microsoft Windows reside on hard drives on the same computer. When you boot the computer, a menu appears, asking you which operating system you want to use. This allows you to keep your original Windows applications and files, plus use Linux — all on the same computer!
If you’re using a desktop PC, you may be able to add a second, fresh hard drive to install Linux on. This is by far the easiest solution for a dual-boot system and should be used if at all possible. Unfortunately, most laptops don’t have the space to add a second hard drive, so you’ll have to resort to partitioning the existing hard drive, as I explain in the next section.
If you do add a second hard drive, just make a note of which drive is which as far as the computer sees them: You want to make sure that you leave your Microsoft Windows installation untouched. All you need to know is which drive (Windows or Linux) is first and second as far as the computer is concerned. For this scenario, you’ll first want to read the "Partitioning an existing drive section of this chapter. When you’re sure that you know which drive is which, proceed to the
Installing Ubuntu" section.
Warning It’s extremely important that you know which hard drive has your original Windows installation on it. When it comes time to load Linux you don’t want to accidentally install it over the original Windows drive! This is another reason it’s important to back up any important files before starting this process. Accidents can (and often do) happen!
Those who can’t spare an entire hard drive for Linux and already have Microsoft Windows installed will have to resize their current Windows installation to make room for the Linux partition. If this is your situation, you’ll most likely need to work through this entire chapter.
Tip A few Linux distributions (such as Ubuntu) have the ability to shrink existing Windows partitions and add a Linux partition automatically as part of the installation process. Hopefully this feature will become more common among other distributions. Check with your particular Linux distribution installation documentation first before forging ahead.
If you don’t want to dual-boot using your hard drive, you have three other options. (I know I said that there were three approaches in total and adding three more here brings us up to six, but give me a moment to explain.)
You can use a virtual server software package, such as VMware or Oracle’s VirtualBox (see Book 1, Chapter 3) to install a virtual
Linux machine that lives in a window inside your existing Windows installation. You keep your Windows disk as is, without any modifications. You just install Linux within the virtual area created by the VMware or VirtualBox software.
You can do the opposite — install only Linux on the computer and then use KVM, VMware, or VirtualBox to install a virtual Windows machine that lives in a window within your Linux installation. If you do this, remember to back up your original Windows files before installing Linux; then restore them in the new Windows area.
If the thought of changing anything on your computer gives you hives, you can wi just use a LiveDVD distribution (see Book 1, Chapter 1) to boot your computer into Linux without installing anything. By running Linux from the DVD drive or USB stick, Linux will be slower (perhaps even painfully slow on older PCs), but it will work — and it’ll give you an idea of just what Linux is all about.
Give some thought to which of the options detailed here you prefer and then read on.
Dual-Booting with Linux and Microsoft Windows
If you’re planning to run Linux and Microsoft Windows on the same machine, odds are you already have Windows installed and you’ve been using it for some time. Because I hate to hear screams of anguish from new Linux users, take a moment to assess what you have and what you need to do.
Tip On the off chance that you actually don’t have Windows installed yet and still want that dual-boot capability, you should install Windows before you install Linux. Otherwise, during installation, Windows will overwrite the part of your hard drive that Linux uses to store its boot menu. (This factor can create a mess later when you want to boot back into Linux!) Then, after you have Windows installed, come back here.
Most people want to dual-boot because they’ve got one machine and it’s already running a Windows installation that they really don’t want to redo. The following sections walk you through the processes required to get your computer ready for a dual-boot environment.
Installing a second hard drive
Next to replacing the existing operating system, the second easiest way to get Linux onto a PC is to install a second hard drive. Many desktop PCs support multiple hard drives either by chaining two hard drives together on the same disk cable or by providing multiple cables to handle hard drives.
You’ll have to crack open the PC case and take a look inside to see what you’re up against. The standard disk controller cards in most PCs allow up to two devices per controller, and many PCs have more than one controller installed on the motherboard. If you see two cables with the long multi-pin connectors in them, you’re in luck. If you see only one cable with an empty connector on it, you should be okay, too.
Usually, you can determine your disk controller configuration by looking at the BIOS setup screen for your PC. Besides the hard drive, controllers also support connecting CD/DVD drives, so you’ll need to be careful when evaluating your disk controller situation.
Tip If your motherboard contains only one disk controller and uses it for the hard drive and the DVD device, you won’t be able to add a second hard drive on that controller. Usually, you can find plug-in disk controller cards to add a second controller to the PC. You’ll need to do just that if you want to add another hard drive.
After you get the second hard drive installed, you’re ready to get going with Linux. As I mention earlier, it helps to know which hard drive is the Windows one and which one will be used for Linux. If you don’t know, you can use one of the disk management tools discussed in the following section.
Partitioning an existing drive
If you only have a single hard drive available in your PC, you’ll need to create separate areas (called partitions) on the hard drive for Windows and Linux. This section walks you through the process of how to do that, but first, let’s examine just how partitions work.
Three types of partitions are available: primary, extended, and logical. A hard drive can have three primary partitions and one extended partition. Inside that extended partition, you can have up to 12 logical partitions. Think of an extended partition as a cardboard box that contains the logical partitions. Logical partitions hold data; extended partitions just hold logical partitions.
Before you try partitioning your hard drive, you’ll need to evaluate just how much space you’ll need for the Linux installation. I can’t predict what software you want to install, so I recommend having at least 15GB of space available for Linux. More is always better because it gives you more room for downloads and even more programs.
Tip Make a note of the partition you dedicate to Windows and the one you dedicate to Linux. Jot down which hard drive each partition is on (the first, second, third, and so on) and the partition number each is on the disk (again, first, second, and so on). You’ll need this information when installing Linux.
If you aren’t starting from scratch for a dual-boot, you likely need to make changes to your current installation. Proceed to the next section to find out how.
Partitioning using Windows tools
If you already have Windows installed on the entire hard drive, you’ll need to shrink that partition down so that there’s room for Linux. The first step is to check your existing hard drive for how much free space is available to dedicate to Linux. The easiest way to do that is to open the File Explorer tool in Windows, and then click the This PC icon in the navigation window on the left. You’ll see the hard drive(s) installed on your PC and how much space is used on each.
When you’ve determined how much disk space is available, you’ll want to create a new partition on the drive. The Windows utility you’ll want to use is the Windows Disk Management tool, as shown in Figure 2-1.
Warning As shown in Figure 2-1, many modern PCs create one or more hidden partitions that aren’t assigned drive letters in Windows. These partitions don’t appear in File Explorer but are used by the PC to contain recovery data to reinstall Windows in an emergency. Don’t mess with those partitions!
Right-click the partition that contains the C: drive, and select Shrink Volume from the pop-up menu. Enter the amount of space you want to assign to the Linux partition, and then click the Shrink button.
Schematic illustration of the Windows Disk Management tool.FIGURE 2-1: The Windows Disk Management tool.
Partitioning using Linux tools
If you're in a situation where you don’t currently have Windows installed on the hard drive but you’d like to partition the drive first, you can use Linux tools to do the work for you. There are plenty of Linux LiveDVD distributions that include disk management tools by default, but by far the most popular is the KNOPPIX Linux distribution.
The KNOPPIX Linux distribution was the first to create a live Linux version, even back before there were DVDs and it was called a LiveCD! What keeps KNOPPIX at the top of the list of popular Linux distributions are the utilities it includes by default. It touts itself as a rescue disk — a way to boot your PC if things go horribly wrong with the existing operating system and be able to troubleshoot and possibly fix issues.
After you boot your KNOPPIX, click the Start menu icon in the toolbar, select System Tools, and then select GParted. This opens the GParted partition editor tool, as shown in Figure 2-2.
The GParted tool provides a graphical display showing the disk drives and partitions, making it a breeze to change things.
Schematic illustration of the Linux GParted partition editor tool main window.FIGURE 2-2: The Linux GParted partition editor tool main window.
Finally, Finally, Before You Get Started
Before you can install Linux, you’ll need to make sure that you and your PC are ready to boot a Linux distribution. There are two things you’ll need to check before you move on to the next chapter and install Linux:
Make sure that your PC can boot an alternative operating system.
Create a bootable media for your Linux distribution.
The following two sections discuss both of these requirements in detail.
Disabling the secure boot feature
Thanks to all the various attacks against PCs these days, most modern PCs include extra security to prevent booting using an unauthorized operating system.
Unfortunately, by default, the only authorized operating system for most PCs is Microsoft Windows (go figure). You’ll need to disable this feature to boot most Linux distributions.
Systems that use the Unified Extensible Firmware Interface (UEFI) boot method are locked down so that the boot record can’t be changed to either boot from Linux or do a dual boot between Linux and Windows. You’ll need to disable this feature so that you can install Linux on your PC.
This feature is part of the UEFI settings that you’ll need to access when you first boot your PC. You can access these settings by pressing a key as the system first boots. Which key you press depends on your particular PC brand; you’ll need to consult your owner’s manual to find out which one that is.
Tip Most UEFI PCs also use a feature called fast boot, which skips through many of the preboot checks previously performed by the BIOS and jumps right into booting Windows. You’ll have to be extra speedy in hitting the correct key to get to the UEFI settings page!
After you get to the UEFI settings pages, you’ll need to do some hunting. Different systems incorporate different security features. Look for settings related to Secure Boot, and make sure you set them to a Disabled value. When you’re done, save the changes and exit the UEFI page.
Creating a boot disk
A bootable DVD or USB stick is the last thing you need before proceeding to install Linux. Remember that Linux distributions come as ISO image files. For most situations, you’ll need to burn the ISO file onto a DVD or use a utility to create a bootable USB stick. This section walks through those processes.
Creating a bootable DVD
If you currently have a Windows PC available, you can use the built-in features of Windows 10 to burn the Linux ISO image to a DVD. Just follow these steps:
Open File Explorer and navigate to the location of the downloaded ISO image file.
Right-click the image file and select Show More Options, and select Burn Disc Image.
This starts the Windows Disc Image Burner, as shown in Figure 2-3.
Insert a blank DVD into the DVD tray, and then click Burn to initiate the process.
When the burn process completes, remove the DVD and label it with the operating system and version.
Although it may seem funny to include labeling the DVD as the final step, after you start experimenting with Linux, you’ll be surprised how many different DVDs you’ll start to accumulate. I can’t tell you how many unlabeled DVDs I have lying around my office with various Linux distributions on them.
Schematic illustration of the Windows Disc Image Burner.FIGURE