PATH: Instructional Server> CTS 2106>

CTS 2106 - Virtual Textbook about Linux

NOTICE: Virtual chapters are often updated during a semester.
You should refresh your view of this page each time your read it.


If you are new to this virtual textbook, you should read the Virtual Textbook Orientation page before continuing below.


Chapter Labels
This virtual textbook is grouped into virtual chapters labeled A, B, C, etc. (to minimize confusion with online tutorial chapters labeled as 1, 2, and 3).
Abstract Pages
Each chapter has a separate abstract page that provides an introduction to the chapter content. These pages are accessible by selecting the "Chapter Abstract" link beneath the topic title for each chapter in the second column. Links on the abstract pages are optional and need be read only to provide clarity about the underlined terms if needed. After viewing the abstract page, return to this page to select the links to the other readings for the chapter.
Link Depth
With the exception of the abstracts, all of the links below will open their own browser windows. Students will be responsible only to read the pages directly linked to the Table of Contents, but not to follow their linked content (unless by choice). In the case where the home page of a website is referenced, students should simply browse the linked site to become familiar with the resources it offers them; but they will not be required to know specific content from that site. When you are through reading the linked item, just close the new window and resume from this page.

Table of Contents

Chap. Topic Page to Read or Site to Browse
A What is Linux?
Chapter Abstract
Read: a definition of [Linux] and [What is Linux and why is it so popular?]
View the video [10 Reasons why Linux is Better Than MacOS or Windows]
Then read: [Linux Overview from Wikipedia]
View or listen to: [How Linux is Built]
[48 Minute Video Intro to Linux] - Can be just listened to without watching it.
Read and try [Practice Exercise A].
Optional: View [The Origins of Linux - by Linus Torvalds] (1 hour and 25 minutes)
B Licensing
Chapter Abstract
Read your instructor's page about [Intellectual Property Issues and Copyrights] and then the [Software license] page at Wikipedia. Next, browse the site [OpenSource.Org]. Specifically, read the page entitled [The Open Source Definition].
Then, browse the site [Free Software Foundation] and give specific attention to the page about [The copyleft principle].
Finally, read and try [Practice Exercise B].
C Distributions
Chapter Abstract
Read the about [Distributions] and [Desktop Environments].
Also learn about the [Top Ten Distributions] and browse the website [DistroWatch.Com].
Read about the popular [Linux Mint] distribution and about its [Cinnamon Desktop Environment] (Note: this will be the primary software recommended for this course).
Then, watch the video entitled [Top 5 Reasons Linux Mint is the Best for Beginners 2018].
Finally, read and try [Practice Exercise C].
D Help
Chapter Abstract
First, for a little background knowledge, read your instructor's page [Linux Shell Basics] (you need not follow the links this time, the same document will be revisited in a later chapter).
Then browse: [The Linux Documentation Project] and your instructor's [Linux Links on the Internet]
Next, read [Introduction to Linux - A Hands on Guide - Section 2.3 Getting Help]. Stop when you reach Section 2.4.
Then read about the Linux [help command] (for help on builtin commands) and the Linux [man command] (a basic utility in most shells). Also browse (and bookmark) the The Linux man-pages project.
Next, read about [GNU's info] command (a newer utility developed by GNU). Stop when you reach "Section 2 Advanced Info Commands". Also browse their site: [GNU.Org]
Finally, read a [Guide about asking questions on help forums] from [] (applies to more than just Linux).
Finally, read about and try [Practice Exercise D].
E Access
Chapter Abstract
First, for a little background knowledge, read your instructor's page [Linux Software - Class Options for Access and Use].
Then browse the [Linux Mint] site, and specifically read the pages: [About Us] and [FAQ]
Also browse the allied Mint sites:
    [Community] with its [Tutorials Index]
    [Forums] including its [FAQ]
    [Blog] (scroll past any Donations and Sponsors post, which is often at the top)
Finally, read about and try [Practice Exercise E].
F Installation
Chapter Abstract
The following articles are intended for review and consideration, but you are not expected to actually try to perform all of the steps described in each one. Linux installation practices are specific to each individual distribution. Read these articles for information about the installation process in general. But do not try to perform them.
General discussions - applying to all distributions:
[Instructor's page about Installation Issues].
[Guide to disks and disk partitions in Linux]
[Boot Managers: Introducing GRUB and LILO].
The next item relates to the Ubuntu 16.04 LTS distribution of Linux because Mint 18.3 is based on that version and there is far more information posted on the Internet about Ubuntu than Mint. The basic concepts are the same and apply to most distributions of Linux, but the specifics can be distribution dependent.
First, browse (rather than detailed reading of all pages) the [Ubuntu 16.04 Installation Guide] to develop an understanding of the scope of knowledge involved in the installation of Linux. Give detailed attention to the section entitled [Section 3.6: Pre-Installation Hardware and Operating System Setup]
Next, read the variety of pages below about installing Linux based on different Linux access methods (as described on pages 7-9 from the first article/link in this virtual chapter):
Pages 8-20 of the PDF document [Official User's Guide - Linux Mint 18.3 - Cinnamon Edition]. You can quickly scroll to any page by dragging the scroll box. The page number should appear near it. Save a copy of this file locally or print it out for later reference.
[How To Dual Boot Linux Mint And Windows 10 ] or view the related [How to Dual Boot Windows 10 and Linux Mint].
Next, read the general instructions about [How to create a persisitent bootable USB installation of Linux using Linux Live USB Creator]
Then browse the resources linked to the instructor's web page about the [creation of "Live" versions of Linux on DVD's or USB memory sticks] (including the video tutorials) in preparation for the first class project.
After an initial installation, there are a variety of additional steps often recommended to complete an optimal working environment. Read one of these entitled "[Things To Do List After installing Linux Mint 17]".
Finally, read your instructor's page about Linux Fundamentals.
Read about (and optionally try performing) [Practice Exercise F]
G Introduction
to Linux
(not distribution
Chapter Abstract
Briefly review the Linux Fundamentals document from Chapter F
Then read the page about Linux Shell Basics
Then read about how shells interpret Special Characters and view the list of Linux Keystroke Shortcuts
Now read about basic things you should know about the Linux Command Line Interface (that also will be studied in more depth in later chapters):
[The 5-Minute Essential Shell Tutorial]
Download and read [Rute User's Tutorial - (A general introduction to) Basic Commands] (you can skip Table 4.1 and sections 4.10 and 4.11)
Read about (and optionally try performing) [Practice Exercise G]
H Filesystems &
File Systems
Chapter Abstract
Read the general introduction to [Filesystems] and about the [The Linux (Virtual) File System].
Next, read about [Partitions, File Systems, Formatting, Mounting] and [An fstab Overview]
Read about (and optionally try performing) [Practice Exercise H]
I Files &
Chapter Abstract
Begin by reading a [General overview of the Linux file system]
Then browse: [The Linux File System Hierarchy] and [Overview of the Directory Tree]
Next read the pages about:
[UNIX tips and tricks for a new user, Part 1: File maintenance tools], [Symbolic and Hard Links], [inodes],
and [Linux file access permissions reference], and [File security]
Read about (and optionally try performing) [Practice Exercise I]
J The Shell
Chapter Abstract
Review instructor's page about [Linux Shell Basics] from Chapter D following the links in the Shell Syntax section.
Read all 10 sections of [Learning the shell]. Some will serve as a review of previous reading; but it is a very clear summary of many concepts and may help to fill in some gaps.
Then revisit [Linux Metacharacters] and study [Regular Expressions and the grep Commands]
Next read about [An Introduction to Linux I/O Redirection] and [Processes and Environment Variables]
Finally, browse (lightly) and bookmark for future reference the following sites:
[Bash Reference Manual on the GNU.Org site]. It covers more than just the shell, but is the best and most straight-forward overall reference on Bash that I have found to date.
[Bash Reference Manual from FAQS.Org]. It is a more chapter oriented reference.
[Bash Commands - Quick Reference] - a great summary listing of most important bash commands.
Read about (and optionally try performing) [Practice Exercise J]
K Shell Programming
Chapter Abstract
Read [A quick guide to writing scripts using the bash shell] and [Positional Parameters in bash]
Then read the following definitive essay about the use of different types of quoting in Linux shell commands and how those commands are interpreted. Note that because the article discusses so many different characters used in quoting that it uses its own special symbols (» and «) as literal quotes for that discussion. Those symbols are not used in Linux for quoting. The artice is entitled [A Guide to Unix Shell Quoting].
To summarize and reinforce the topic of shell scripting, follow each link (one click deep) on the page [Writing shell scripts].
Read about (and optionally try performing) [Practice Exercise K]
If you are interested in learning more about bash scripting, consider also reading:
(Note: the indented list below is optional reading for CTS 2106 students)
[Chapter 1 of the Bash Guide for Beginners]
[Bash Shell Programming in Linux] - a brief summary overview
[UNIX / Linux Bourne / Bash Shell Scripting Tutorial] - a step-by-step tutorial
L Windowing Systems & Desktop Environments
Chapter Abstract
Read about [Linux Desktop Environments], [Window Managers], and the [X Window System]
Then read about traditional popular [Desktop Environments] such as GNOME and KDE, and the about those specific to the Linux Mint 17 distribution used in this course and some tips about how to [Select the Right "Flavor"] for you.
Next, read pages 21-34 of the PDF document [Official User's Guide - Linux Mint 18.3 - Cinnamon Edition]. You can quickly scroll to any page by dragging the scroll box. The page number should appear near it. If you haven't alread done so, save a copy of this file locally or print it out for later reference.
Read about (and optionally try performing) [Practice Exercise L]
M Downloading and Installing Software
Chapter Abstract
Start by reading the [Beginner Geek article about How to Install Software on Linux] and then read about [APT (the Linux Advanced Package Tool)], the most widely used command-line tool for managing software packages on Debian/Ubuntu/Mint based Linux systems.
Read pages 35-49 of the PDF document [Official User's Guide - Linux Mint 18.3 - Cinnamon Edition].
Then read [Howto - Upgrade Linux Kernel] and [How to upgrade to a newer release of Linux Mint]
Then read about the software used on Ubuntu/Debian-based Systems:
[How to Install Programs in Ubuntu in the Command-Line]
[How To Compile and Install from Source on Ubuntu]
Study the man pages for the utilities [apt-get], [apt], and [Aptitude]
[Expanded man pages for the dpkg utility]
Also browse the sites: [Ubuntu Packages Server] and [Launchpad defect tracking system]
Next read about the other major package management software used on Fedora/RedHat-based Systems:
[YUM: Yellow dog Updater, Modified] and its recent replacement [DNF: Dandified YUM]
[The YUM section (4) of the System Administrators Guide (from]
[The DNF section (5) of the System Administrators Guide (from]
Finally, [learn about BitTorrent (from Wikipedia)].
Read about (and optionally try performing) [Practice Exercise M]
N Printing - Traditional or with CUPS
Chapter Abstract
Read about [Traditional UNIX/Linux Printing] and then about [CUPS - the Common UNIX Printing System]. The official CUPS.ORG website has recently transferred their primary software repository to []. But a good site for reading documentation related to the CUPS system can be found at []. Read the three chapters:
[Setting Up and Administering Printers by Using CUPS (Overview)], [Setting Up Printers by Using CUPS (Tasks)], [Administering Printers by Using CUPS Print Manager (Tasks)].
Then read the Linux Mint Community forum article about [How to install a printer under Linux Operative System with CUPS web utility]
Read about (and optionally try performing) [Practice Exercise N]
O Administration Tasks
Chapter Abstract
Browse the [Linux System Administration and Configuration] Guide
Read all of online Chapter 11 about [User Accounts and Ownerships] and review the summary of additional user management commands
Read about [Root, SU and SUDO]
Read all (by clicking on the Next links) of online Chapter 12 about [System Backup]. Compare the features of the [15 Best Free Backup Software for Linux] (based on an article written in Nov. 2016. For more recent options, do a web search on the phrase "Best Free Linux Backup Software"). Next, read the web page about [Total System Backup and Recall with Déjà Dup]
Then read: [Automated (scheduled) Tasks - using at and cron] and [anacron, the cron for desktops and laptops]
[Troubleshooting Linux with syslog]
Finally, review the summary of [some additional system management commands]
Read about (and optionally try performing) [Practice Exercise O]
P Networking and the Internet
Chapter Abstract
OPTIONAL: I have some [tutorial Internet web-handouts] that you might find useful for general background on Internet and its services that is not specifically related to Linux.
REQUIRED: Obtain a general understanding of networking by reading a few chapters from an early (but still pertinent) online text [Linux Network Administrator's Guide]:
[Chapter 1: Introduction to Networking]
[Chapter 2: Issues of TCP/IP Networking]
[Chapter 5: Configuring TCP/IP Networking] (Ignore details, but read for general concepts)
[Chapter 6: Name Service and Resolver Configuration] (Read up to the heading: The DNS Database)
[Chapter 12: Important Network Features] (Essential knowledge if you plan to run servers)
ALSO REQUIRED: The concepts and practices discussed above are fairly generic and not targeted to any specific Linux distribution. Most of those pages are fairly old and discuss foundational concepts related to the the Internet and to networking in general. The following reading is more specific to the Linux Mint 13-18 distributions that we have been working with as our primary model in this course. Because Mint 18 is so closely based on the Ubuntu 16.04 LTS distribution which is thoroughly documented, there is not a much documentation (tutorials and reference resources) for Mint as one might expect. However, the Ubuntu documentation is extensive and closely related. So read the [Ubuntu 16.04 LTS Networking Guide].
Read about (and optionally try performing) [Practice Exercise P]
[Ubuntu 12.04 LTS Precise Pangolin: Networking tips and tricks]
[Linux Email Basics] and [More Email Details]
[Wireless HOWTO] and [Wireless LAN Resources for Linux]
Q SSH: Secure Shells
Chapter Abstract
Read the definition of the term [Secure Shell] and the about the software named [OpenSSH.Org]
The view the video [Intro to SSH and SSH Keys]
Then view the video [Installing ssh server (openssh) on Linux Mint].
Read about (and optionally try performing) [Practice Exercise Q]
R FTP: File Transfer
Chapter Abstract
Read about [FTP - File Transfer Protocol] (Introduction)
Next read the [Active FTP vs. Passive FTP],
Then read the [FTP mini-HOWTO] and [Essentials for Using Linux FTP]
View the video [how to install and test an FTP server in linux - the linux file system].
(The item above assumes that the reader has already installed a popular GUI-based FTP client named [FileZilla], which can be downloaded and installed using the Package Manager desktop utility in Mint. There is a version of this useful utility for all major platforms: Mac, Linux, and Windows.)
Read about (and optionally try performing) [Practice Exercise R]
S Security Systems
Chapter Abstract
Start by browsing the [NetFilter.Org] site - Home of iptables, the most common firewall system for Linux. That site contains some tutorials which should be read, (especially for terminology related to IP packet filtering) including:
[Networking Concepts HOWTO]
[Packet Filtering HOWTO]
Next read about the graphic frontend utility named ufw (Uncomplicated FireWall) on the Ubuntu website:
[Firewall Introduction]
Then read about [AppArmor] and [SELinux]
Next read the [The GNU Privacy Handbook].
Finally, read [The Seven Deadly Sins of Linux Security]
Read about (and optionally try performing) [Practice Exercise S]
T Apache (httpd): Setting Up a Web Server
Chapter Abstract
Read [About Apache.Org] and browse the [Apache.Org Website].
Next read about [How To Configure the Apache Web Server] and the [HTTPD - Apache2 Web Server Guide] for the Ubuntu 16 distribution of Linux (remember that Linux Mint 18 is based on Ubuntu 16.04 LTS).
Then view the video tutorial showing how to [Install and Run Apache2 Server on Linux Mint 17.2] (which still applies to Mint 18) and read the web page about [How to install and configure Apache, PHP, MySql and phpMyadmin on Linux Mint]
Read about (and optionally try performing) [Practice Exercise T]
U Samba: Integrating Linux and Windows File and Printer Sharing
Chapter Abstract
Browse the [Samba.Org] site to learn about integration of Linux with Windows:
[What is Samba?]
[Classical Printing Support]
[CUPS Printing Support]
Then browse the [Unofficial Samba HOWTO (Blog)]
Read about (and optionally try performing) [Practice Exercise U]
PATH: Instructional Server> CTS 2106>