PATH: Instructional Server> CTS 2106>

CTS 2106 - Virtual Textbook about Linux


Jump down to Table of Contents

BASIS

The Linux operating system (OS) was developed by a multitude of people using the Internet. As a result, there is a massive amount of information (textbooks, references, tutorials, and guides) posted on the Web about Linux. The challenge in learning about this topic is focusing your efforts on reading what you need and not being distracted or confused by the other 99% of the available information. Unlike highly proprietary operatings systems, such as those written by Microsoft or Apple, the Linux OS was developed collaboratively by a world-wide community of developers. Many variations (referred to as "distributions") have evolved - each different in its abilities and character. Novice users are often overwhelmed by the plethora of conflicting documentation found about Linux on the Web. There is no monolithic "Linux Corporation" controlling the development and distribution of the software and its documentation; so learners must discover the best sources for themselves. Linux textbooks (online or printed) are usually focused toward one Linux distribution or they are so generic that they are useless. So readers must be conscious of that focus and of the date of publication, as the rate of development of Linux is faster than it is for most software. Linux is a complex collection of systems programs that can be used in concert to accomplish diverse operational objectives. Novice learners often find this integration of separate elements challenging. A learner requires a broad foundation in many elements of the OS in order to understand each new learning objective. This makes the sequencing of chapters in a textbook difficult. Computer teachers struggle to find a Linux textbook that meets all of the following criteria:

The result is that most computer teachers find it necessary to change their Linux textbook almost every semester. Traditional printed textbooks cannot be developed quickly enough. Failure to satisfy the first criteria above often necessitates the selection of more than one text. And finding material that meets all of the criteria above and that is written in a style that appeals to most students is very difficult. The solution chosen for this course:

  1. Makes use of the multitude of free material on the Web rather than using multiple (costly) printed texts. This is based on the assumption that most students studying this topic have broadband Internet access.
  2. Delivers course readings via a web-based Table of Contents (TOC). Students who prefer to have access to these materials off-line should either print the referenced pages or save them on local storage media as web archives.
  3. Offer readings related to a variety of different Linux distributions depending on the concept being studied at the time. Computer professionals need to be familiar with a variety of approaches used by software developers in different distributions of Linux. This virtual textbook will allow that.
  4. Presents the readings in small focused units that link to any other dependent reading. For the purpose of course assessments, students will be responsible only to read the linked pages, 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 site to become familiar with the resources it offers them; but they will not be required to know specific content from that site. The virtual textbook approach will result in some topical redundancy, but that is often desirable for students and helps to reinforce important concepts and practices.
  5. Allows students to augment and bookmark reading assignments in any manner useful to them, either through their browser's bookmarking features or as a collection of shortcuts which can be saved locally on removable storage media. For more information about such techniques, read the web page entitled HowTo: Find your way back to valued locations on the Web.
  6. Allows the instructor to update reading assignments as the course evolves from semester to semester or to respond to specific interests voiced by current students. Students are encouraged to locate their own supplemental reading (either printed or online) and to notify your instructor and classmates when a quality resource is found by posting a message under the Question and Answer Forum in the Discussion Forums on the .

Students will find this "virtual textbook" approach to have many advantages, but might also find it to be somewhat disjointed at first. And yet, it more closely resembles the manner in which modern day computer users find solutions, especially if students actively archive and organize bookmarks to the assigned reading. Students also will be exposed to a wide variety of writing styles and author perspectives, but not limited to one throughout the entire course. Students are encouraged to locate and bookmark the home pages of websites of preferred authors and consider using them as supplemental sources during the course. Some pages will be quite old (by Internet standards) but these still summarize fundamental concepts well.

Each of the links on this page are routinely checked at the start of each see semester, but the dynamic nature of the Web make it likely that some of them will be broken before the end of the semester. If anyone finds a dead link, you should:

The website [Wikipedia®] is often used to introduce the topics below because of its well focused, peer-reviewed approach to presenting material. However, readers are cautioned that no author or website is always correct or without bias. Students should read as filters, not spunges.

STRUCTURE

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). The deadline for each reading assignment is listed on the Course Schedule (accessible under the [Syllabus and Schedule] page on the course website or via the Calendar tab in the ). You are encouraged to also review the web sites listed on the course page entitled [Linux Resources on the Internet]; but these reference sites are not required reading for this course unless also listed list here as virtual chapter content.

All of the links below will open their own browser windows. When you are through reading, just close the new window and resume from this page.


CTS 2106 Virtual Textbook - Table of Contents

VIRTUAL CHAPTERS BY LETTER
Chap. Topic Page to Read or Site to Browse
A What is Linux? Read: [What is Linux and why is it so popular?]
[Linux Overview from Wikipedia]
[Introduction to Linux - A Hands on Guide] (Read Chapter 1 to get started)
[GNU/Linux]
View or listen to: [How Linux is Built]
[48 Minute Video Intro to Linux] - Can be just listened to without watching it.
Read about (and optionally try performing) [Practice Exercise A]
Optional: [The Origins of Linux - by Linus Torvalds] - 1 hour and 25 minutes.
B Licensing Read: [The Open Source Definition] from (browse:) [OpenSource.Org]
and read about [The copyleft principle] from the (browse:) [Free Software Foundation]
Read about (and optionally try performing) [Practice Exercise B]
C Distributions Read the definition of the terms [Distribution] and [Desktop Environment].
Also view the [Top Ten Distributions] and browse the rest of the site [DistroWatch.Com].
Read about the [Linux Mint] distribution and about the [MATE Desktop Environment], as this the primary software recommended for this course.
Finally, because we are using Linux Mint 17 as the primary distribution for practice and example in this course, watch the [Linux Mint 17 Review] video.
Read about (and optionally try performing) [Practice Exercise C]
D Help Browse: [The Linux Documentation Project] and your instructor's [Linux Links on the Internet]
Read [Introduction to Linux - A Hands on Guide - Section 2.3 Getting Help]
Then read about: [Linux Help] and the [man] command (a basic utility in most shells).
Read about [GNU's info] command (a newer utility developed by GNU). Also browse their site: [GNU.Org]
Then browse (and bookmark): [The Linux man-pages Project] and [Linux HOWTOs online]
Finally, read a [Guide about asking questions on help forums] from [BleepingComputer.com] (applies to more than just Linux).
Read about (and optionally try performing) [Practice Exercise D]
E Access [Linux Software - Class Options for Access and Use]
Browse the [Linux Mint] site, but 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)
Read about (and optionally try performing) [Practice Exercise E]
F Installation 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 14.4 LTS distribution of Linux because Mint 17 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.
Browse the [Ubuntu 14.04 Installation Guide], and 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-19 of the PDF document [Official User's Guide - Linux Mint 17.3 - MATE 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.
[Guide To Install Linux Mint 17 & 16 in Dual Boot With Windows 7] 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
specific)
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
Read the general introduction to [Filesystems] and about the [The Linux (Virtual) File System].
Next, download and read about [Partitions, File Systems, Formatting, Mounting] and [An fstab Overview]
Read about (and optionally try performing) [Practice Exercise H]
I Files &
Directories
Browse: [The Linux File System Hierarchy] and [Overview of the Directory Tree]
Next read about:
[Basic commands for Managing Files and Directories], [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 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 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].
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
[Writing shell scripts]
[UNIX / Linux Bourne / Bash Shell Scripting Tutorial] - a step-by-step tutorial
L Windowing Systems & Desktop Environments 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 20-34 of the PDF document [Official User's Guide - Linux Mint - MATE 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 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-48 of the PDF document [Official User's Guide - Linux Mint 17.3 - MATE 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 docs.FedoraProject.org)]
[The DNF section (5) of the System Administrators Guide (from docs.FedoraProject.org)]
Finally, [learn about BitTorrent (from Wikipedia)].
Read about (and optionally try performing) [Practice Exercise M]
N Printing - Traditional or with CUPS 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 [Github.com]. But a good site for reading documentation related to the CUPS system can be found at [docs.oracle.com]. 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 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 [How to back up your Linux (Mint) install (Using 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 configuration utilities]
Read about (and optionally try performing) [Practice Exercise O]
P Networking and the Internet 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-17 distributions that we have been working with as our primary model in this course. Because Mint 17 is so closely based on the Ubuntu 14.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 following:
The [Ubuntu 14.04 LTS Networking Guide]
[Ubuntu 12.04 LTS Precise Pangolin: Networking tips and tricks]
Read about (and optionally try performing) [Practice Exercise P]
OPTIONAL READING:
[Linux Email Basics] and [More Email Details]
[Wireless HOWTO] and [Wireless LAN Resources for Linux]
Q SSH: Secure Shells Read the definition of the term [Secure Shell] and the about the software named [OpenSSH.Org]
The read the [Intro to SSH and SSH Keys]
Then view the video [How to Install a simple ssh server in Linux Mint 13] (turn up your volume) about an earlier distribution, but still applicable.
Read about (and optionally try performing) [Practice Exercise Q]
R FTP: File Transfer 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 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]
[UFW]
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 Read [About Apache.Org] and browse the [Apache.Org Website] (especially the [Apache FAQ]).
Next read the [HTTPD - Apache2 Web Server Guide] for the Ubuntu 14 distribution of Linux (remember that Linux Mint 17 is based on Ubuntu 14.04 LTS).
See the video tutorial showing [Install Apache2 on Linux Mint 12] 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 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>