Course Overview

Chapter 0: Linux Pro Introduction

This course prepares students to enter an IT career involving Linux. They will gain the knowledge and skills they need to install, configure, operate, and troubleshoot the Linux operating system. It also prepares them for Linux-related IT certifications, such as the CompTIA Linux+ exam.

Chapter 1: Linux Overview

Chapter 1 covers what Linux is and its origin. Students will receive an introduction to the Linux operating system and its role in enabling applications to run on a computer, store and retrieve data reliably and safely, and connect over networks. Students will learn about Linux components such as the Linux Kernel, libraries, utilities, and both the GUI and CLI. They will learn how Linux diverted from the typical development cycle and became an open source platform to provide a worldwide collaborative effort to improving the operating system. This chapter also covers Linux distributions and Linux implementations as a server, desktop, mobile platform, cloud computing, or as a Hypervisor.

Chapter 2: Using Linux

Chapter 2 introduces different types of shells that are used on Linux distributions and how to enter commands at the shell prompt including several commonly used shell commands. It covers the man and info utilities to get help with Linux commands. It introduces text editors using the vi editor and how to work from different modes. This chapter discusses aliases, how to define a new alias and keep it persistent across reboots. It reviews environment variables and how to set new values. It discusses the files that are used to configure the Bash shell, reviewing the different configuration files that can be used to configure each type of shell. It also covers redirection at the shell prompt, piping to connect commands, and command substitution. Students will learn about directories and commands to create, view and change directories, they will also learn different commands to manage files in the Linux system. This chapter also covers creating hard links and symbolic links, explains Filesystem Hierarchy standard (FHS), and the commands used to locate files by name or content. The chapter concludes with text stream processing and the commands used to do so.

Chapter 3: Installation and Localization

Chapter 3 reviews the various steps in the system design process from selecting a distribution to verifying system requirements and hardware compatibility. Students will learn the process followed in order to install the Linux system, from an optical disc, an ISO image, a USB drive, or a server which will depend on the distribution they choose to install. It discusses how to work with locale settings on a Linux system, how its defined by locale environment variables using a language code, a territory code, a code set, and an optional modifier. Students will discover how to use the locale command to view the various values of your locale environment variables and how to use iconv in order to change the encoding of a file.

Chapter 4: Boot and Shutdown

Chapter 4 introduces three phases of the Linux boot process, explores how GRUB bootloaders work, discussing GRUB and GRUB2, how to use them interactively and how to use the configuration files to customize the bootloader. Students will be introduced to the concept of boot target, how it is used in the Linux system and how to change and set the default boot target. This chapter also discusses managing system services using the 'systemctl' command and how to make sure a service starts automatically whenever the system boots. How to manage the runlevels on a SysVinit system by viewing and editing the /etc/inittab file, how the current runlevel could be temporarily changed using the telinit and init commands, and how to view the current and previous runlevels using the runlevel and who -r commands. This chapter concludes exploring options for shutting down or rebooting the Linux system from the shell prompt, how to do this by changing runlevels or boot targets, and reviews the halt and reboot commands, looking at the shutdown and the wall commands.

Chapter 5: Graphical User Interfaces and Desktops

Chapter 5 covers graphical user interface (GUI), Linux desktops, remote desktops and accessibility. First discussing the GUI, the display server's role, and the window manager's role. Then exploring the differences between the X11 and Wayland display servers and the desktop environment's role. Students will learn five common Linux desktop environments: GNOME, Unity, MATE, Cinnamon, and KDE Plasma. They will also discover more about remote desktop connections and common features and technologies. This chapter concludes by discussing how to enable the universal access options on Linux, reviewing seeing, hearing, and typing accessibilities while also reviewing point and click accessibility.

Chapter 6: Software Installation

Chapter 6 reviews the roles and functions of Linux software packages, focusing on  the Red Hat, YUM and Debian packages. Students will learn about installing, uninstalling, updating, querying and verifying packages, what naming conventions are used with RPM packages, how to download packages, and how to verify a package isn't corrupt. They will learn how to configure the YUM utility, and use the APT tools and dpkg command to manage Debian packages as well as the apt-cache, apt-get, and aptitude commands. This chapter concludes by covering how to view, share and manage shared libraries.

Chapter 7: User Groups

Chapter 7 introduces the roles, functions and structure of user accounts, passwd files and shadow files and how they are stored in a Linux system. It reviews Linux groups and their benefits, how group accounts are stored on a Linux system and the roles of the group and gshadow files in the /etc directory. Students will learn how they can manage, modify and delete Linux user accounts and their passwords from the command line. This chapter ends by discussing how to manage, add, modify, or delete Linux groups and how to modify group membership.

Chapter 8: Disk and File System Management

Chapter 8 explores managing MBR partitions, how to manage GUID or GPT partitions and how to use LVM on a Linux system. Discussing the Linux file system types that can be used including ext2, ext3, Reiser, ext4, and the btr file system. It discusses how to create file systems on Linux partitions, their role and function and the different commands to use to manage these file types. This chapter covers how to mount Linux file systems and ISO images, the utilities used to monitor and maintain a Linux file system, and how to set up quotas for users and groups using soft and hard limits. Students will learn about managing ownership, permissions, and special permissions and the utilities used to do so. They will also learn the function of umask and its effect on default permissions. This chapter concludes by discussing how to manage file archives using the tar and cpio commands.

Chapter 9: Hardware Installation

Chapter 9 explores the role of device drivers in a Linux system, kernel modules, and different types of devices. It discusses device drivers that are directly compiled into the kernels, how you manage, load and unload kernel modules, and how to view information about currently loaded kernel modules. This chapter concludes by discussing the differences between two different types of devices, hotplug and coldplug, and reviews the mechanisms that Linux uses to enable hotplug devices to work properly with the operating system.

Chapter 10: Processes and System Services

Chapter 10 discusses Linux processes, the differences between system and user processes, as well as multi-tasking, multi-core, and multi-threading. It explores how Linux handles processes introducing heredity of Linux processes, PID and PPID, and the process of forking. Students will learn the top, ps, free, and pgrep utilities to view information about the processes running on a Linux system. They will learn how to manage Linux processes running in the background, how to move a process from the foreground, how to manage process priorities using nice and renice commands, and how to kill a running process from the shell prompt. This chapter also covers how to use the atd daemon to schedule jobs, use the cron daemon to schedule tasks to run automatically on a schedule, and how to create user specific cron jobs. Students will also learn to print using the CUPS daemon by installing and configuring CUPS daemon, how to configure a CUPS printer, and what command line utilities to use to manage printers, print jobs, and print queues. This chapter concludes discussing how time is tracked on Linux, how to manage and maintain time using the hwclock and netdate commands, and how NTP protocol and NTPD daemon work.

Chapter 11: System Monitoring

Chapter 11 reviews some of the log files that are used on a Linux system, their names, where they are saved, and how to use log files to troubleshoot system problems. It discusses how to view the system journal on a distribution that uses systemd with the journalctl command, how to configure the journald daemon using the journald.comp file, and how to manage Linux log files using the logrotate utility. Students will also learn how logrotate uses directives in the /etc/logrotate.conf file to determine what actions to take. This chapter concludes with how to monitor and analyze a CPU using several utilities, like viewing a system's up times with the uptime command, monitoring CPU statistics by viewing the /proc/cpuinfo file, or using the sar command and configuring Linux kernel parameters at runtime through the sysctl command.

Chapter 12: Networking

Chapter 12 covers several topics including IP protocol and how it works in conjunction with the TCP or the UDP protocol to deliver data over a network connection. It covers ICMP protocol, IPv4 and IPv6 protocol and addressing, the role and function of a subnet mask, variable length subnet masking, and port characteristics and management. Students will learn how Linux creates aliases for network interfaces, how systemd uses predictable network interface names to create network device aliases, how to configure an ethernet network interface on a Linux system, how to use ifconfig or an interface configuration file to make a static IP address assignment, and how to use the ip command to manage IP addressing on a network interface. This chapter also discusses how to manage route settings on a Linux system, name resolution using the /etc/hosts file and DNS servers, and several Linux firewalls including Netfilter, IPTables, Uncomplicated Firewall, and firewalld. This chapter concludes with how to use a standardized troubleshooting model when troubleshooting networking problems.

Chapter 13: Cloud and Virtualization

Chapter 13 explores virtualization and how virtual machines are implemented by  type 1 and type 2 hypervisors. It covers three types of virtualization environments: full virtualization, paravirtualization, and hardware-assisted virtualization. It covers container virtualization and compares containers with virtual machines. It defines the cloud and cloud service models, including IaaS, PaaS, and SaaS. Students will learn several virtual machine template formats, bootstrapping techniques, virtual machine disk storage, and virtual machine management tools. This chapter finishes by covering virtual networking concepts, different Linux bridging modes, how multi-homed VMs are configured, and overlay networking.

Chapter 14: Scripting and Automation

Chapter 14 introduces basic scripting concepts, discusses how to use the read command to read input from the end user in a script, how to declare and type variables within a script, how to execute a shell script, and how to deal with PATH issues when executing a shell script. It introduces shell environment types and describes how to create environment variables and shell variables in a script. Students will learn about shell parameters, user variables, shell expansions and control structures within a shell script. This chapter covers if-then-else structure, case structure and looping structures. It concludes by discussing the version control through Git and introduces orchestration and it's attributes and benefits.

Chapter 15: Security

Chapter 15 introduces several concepts related to security within a Linux system such as root usage, user security, restrictions, and login blocking. It discusses network security, implementing a host-based firewall, configuring xinetd to manage network services and using TCP wrappers to control access. Students will learn about using OpenSSH to securely transfer data between systems and how to  tunnel unencrypted network traffic through SSH. This chapter covers SELinux, its concepts, modes in which it functions, and commands used to manage it. It also explains the basics of AppArmor, how to enable it, managing profiles, and making adjustments to the tunables. It continues by introducing public key authentication, self-signed certificates, VPN connections, as well as security protocols used to secure network traffic. This chapter concludes by discussing Linux security best practices including, data storage and encryption, multifactor authentication, and securing services and ports.

Chapter 1: Linux Overview

Linux Introduction

  • Linux Operating System
  • Linux Implementation
  • Server Roles

Chapter 2: Using Linux

Linux Shell

  • Linux Shell Facts
  • Linux Shell Commands

Linux Help

  • Linux Help Resources
  • Linux Help Facts.

Text Editors

  • Use vi
  • Use nano
  • Text Editor Facts
  • Create and Modify Files

Aliases

  • Use Aliases
  • Alias Facts

Environment Variables

  • Managing Environment Variables
  • Environment Variable Facts

Shell Configuration Files

  • Shell Configuration Facts
  • View Shell Configuration Files

Redirection, Piping and Command Substitution

  • Redirecting
  • Piping
  • Redirection and Piping Facts
  • Command Substitution
  • Command Substitution Facts

Directories

  • Navigating Directories
  • Managing Directories
  • Directory Management Facts
  • Find, View, Create, and Delete Directories

Files

  • Commands for viewing files
  • File Management
  • View File Contents
  • Move and Delete Files

Links

  • Create Links
  • Link Facts
  • Hard and Symbiotic Links

Filesystem Hierarchy Standard (FHS)

  • Filesystem Hierarchy Standard (FHS) Facts

Locating and Searching Files

  • File Location Utiliities
  • Finding Linux Commands
  • Finding Files
  • File Search Facts
  • Content Search Utilities
  • Find File Content
  • Content Search Facts

Text Stream Processing

  • The awk and sed Commands
  • Process Text Streams
  • Text Stream Processing Facts

Chapter 3: Installation and Localization

Linux System Design

  • System Design Part 1
  • System Design Part 2
  • System Design Facts

Linux Installation

  • Installing Linux
  • Linux Installation Facts

Localization

  • Locale Settings
  • Configuring Locale Settings
  • Localization Facts

Chapter 4: Boot and Shutdown

Linux Boot Process

  • Linux Boot Process Facts
  • Linux Alternative Boot Options Facts

Bootloaders

  • GRUB Legacy
  • GRUB2 Bootloader
  • Set the GRUB Timeout
  • Dual Boot

systemd Boot Targets

  • Managing Boot Targets
  • Change the Current Target
  • Set the Default Boot Target
  • Unit Files Facts

System Services

  • Manage System Services
  • Runlevels
  • Managing Runlevels
  • SysVinit Facts
  • Manage System Services
  • Enable System Services at Boot

System Shutdown

  • Shut Down the System
  • Use wall to Message Users
  • Shut Down Immediately
  • Shut Down with Notification
  • Shut Down and Reboot

Chapter 5: Graphical User Interfaces and Desktops

Graphical User Interfaces

  • Graphical User Interfaces Facts

Linux Desktops

  • Comparing Linux Desktops

Remote Desktop

  • Remote Desktop Facts

Accessibility

  • Configuring Accessibility Settings
  • Accessibility Facts

Chapter 6: Software Installation

Red Hat Package Manager (RPM)

  • RPM Package Management
  • Manage RPM Packages
  • Install an RPM Package
  • Remove an RPM Package
  • Update an RPM Package

Online Package Installation

  • Yellowdog Updater, Modified (YUM)
  • Install Packages with YUM
  • Install Packages with Dandified YUM (DNF)
  • YUM and DNF Facts
  • Use DNF to Install and Remove an RPM Package

Debian Package Manager (dpkg)

  • Advanced Packaging Tool (apt-get)
  • Managing Debian Packages

6.4 Shared Libraries

  • Managing Shared Libraries

Chapter 7: User Groups

User and Group Overview

  • Linux Group Overview
  • User and Group File Review
  • View User Account Information
  • View Group Membership Information

User Management

  • User and Password Management
  • Managing Users
  • Managing User Passwords
  • Create, rename, and delete a User Account
  • Change Your Password
  • Lock and Unlock User Accounts

Group Management

  • Managing Groups
  • Rename and Create Groups
  • Add Users to a Group
  • Add a User to Additional Groups
  • Delete a Group and Users
  • Remove a User from a Group
  • Remove a User from All Groups

Chapter 8: Disk and File System Management

MBR Disk Partitions

  • Managing MBR Partitions
  • Viewing MBR Partitions
  • Device Naming Facts
  • View the MBR Partition Table

GUID Partitions

  • Managing GUID Partitions
  • GUID Partition Management Facts

Logical Volume Manager

  • Logical Volume Manager (LVM)
  • Using LVM
  • Create a Logical Volume

File Systems

  • Linux File System Types
  • File System Creation
  • Swap Area Management
  • Creating a File System
  • File System Management Facts
  • Format a Hard Disk with ext3
  • Format a Hard Disk with ext4
  • Create a Swap Area

Mounting File Systems

  • Mounting a File System
  • Mount a Volume
  • Unmount a Volume

File System Maintenance

  • Maintaining File Systems
  • I/O Scheduling

Disk Quotas

  • Managing Quotas
  • Quota Facts
  • Determine the Amount of Free Disk Space
  • Determine the Directory Size
  • Find the User Quota
  • Generate a Quota Report
  • Turn Quotas On and Off
  • Edit Quotas

Ownership

  • Managing Ownership
  • File Ownership Facts
  • View Ownership Information
  • Change File Ownership
  • Change Group Ownership for a File
  • Change Directory Ownership

Permissions

  • Managing File Permissions
  • Managing Directory Permissions
  • Permission Facts
  • Set Directory Permissions
  • Add File Permissions
  • Set File Permissions
  • Enable Directory Browsing

The umask Command

  • Use umask
  • The umask Command Facts
  • Change the umask

Special Permissions

  • Assigning Special File Permissions
  • Special Permission Facts
  • Set the SUID Bit
  • Remove SUID and SGID Permissions

Archive and Backup

  • File Archives
  • Using tar
  • Create a Compressed tar File
  • Extract from tar Files
  • Archive Facts
  • The cpio and dd Commands
  • Using cpio and dd
  • Backup Strategy Facts

Chapter 9: Hardware Installation

Device Drivers

  • Device Types Facts
  • System Hardware Information
  • Viewing Hardware Information
  • Device Driver Facts
  • View /proc Information

Kernel Module Management

  • Managing Kernel Modules
  • Insert a Module into the Kernel
  • Remove a Module from the Kernel

Hotplug and Coldplug Devices

  • Hotplug and Coldplug Devices

Chapter 10: Processes and System Services

Processes

  • Linux Processes
  • Process Heredity
  • Process Display
  • Viewing Process Information with top
  • Viewing Process Information with ps
  • Viewing Process Information with pgrep
  • View Process Information

Process Management

  • Switching Foreground and Background Processes
  • Process Prioritization
  • Prioritizing Processes
  • Process Management Facts
  • Process Termination
  • Terminating Processes
  • Stop a Zombie Process
  • Bring an Application to the Foreground

Task Management

  • at Task Scheduling
  • Scheduling Tasks with at
  • at Command Facts
  • cron Task Scheduling
  • Scheduling Tasks with cron
  • cron Facts
  • Using anacron
  • anacron Facts
  • Configure Crontab

Print Management Common Unix Print System (CUPS) Operation

  • CUPS Installation and Configuration
  • Configuring a CUPS Printer
  • CUPS Facts
  • Print Management Commands
  • Managing Print Jobs
  • Printer Management Facts
  • Print a File
  • Remove a Print Job

Chapter 11: System Monitoring

System Logging

  • Linux Log Files
  • journald Logging
  • Configure journald
  • Viewing Log Files
  • Log File Display Facts
  • logrotate
  • View Log Files

Resource Monitoring

  • CPU Resource Monitoring
  • Resource Monitoring Tools
  • Resource Monitoring Facts
  • Using Uptime

Chapter 12: Networking

IPv4 Overview

  • IP Protocols
  • IPv4 Addressing
  • Subnet Masks
  • Variable Length Subnet Masking (VLSM)
  • IPv4 Addressing Facts
  • Common Ports
  • IP Port Facts

Network Interface Configuration

  • Network Interface Naming
  • Address Configuration
  • View and Manage IPv4 Addresses
  • Configure DHCP and Static Addressing
  • Addressing Method Facts
  • Network Configuration Facts
  • Network Interface Bonding Facts
  • Start a NIC
  • Stop a NIC
  • Configure IP Addresses
  • Troubleshoot IP Configurations
  • Practice Questions

IPv6 Overview

  • IPv6 Addressing
  • Configure IPv6 Addresses

Routing Configuration

  • Configure the Default Route
  • Routing Facts

Hostname and DNS Configuration

  • Configure DNS Settings
  • Testing Name Resolution
  • Name Resolution Facts

Linux Firewalls

  • Configure firewalld
  • IP Forwarding
  • Linux Firewall Facts
  • Change Default Ports
  • Configure iptables

Network Troubleshooting

  • Troubleshooting Methodology
  • Using Network Troubleshooting Tools
  • Troubleshooting Tool Facts
  • Use Ping and Traceroute
  • Find Path Information 1

Chapter 13: Cloud and Virtualization

Cloud and Virtualization Overview

  • Install Hypervisor
  • Linux Cloud and Virtualization Facts

Virtual Machines

  • Creating a Virtual Machine
  • Virtual Machine Facts

Virtual Networking

  • Virtual Networking Concepts
  • Configuring Networking on a Virtual Machine

Chapter 14: Scripting and Automation

Bash Shell Scripting

  • Bash Scripting Overview
  • Bash Script Execution
  • Executing and Sourcing a Script
  • Scripting Facts

Shell Environments, Bash Variables and Parameters

  • Bash Shell Environments and Shell Variables
  • Bash Shell Parameters, User Variables and Expansions
  • Bash Shell Variables and Parameters
  • User Variables and Shell Arithmetic
  • Arrays and Expansions
  • Shell Environments, Bash Variables and Parameters Facts

Bash Scripting Logic

  • Looping
  • Exit Codes
  • Branching
  • Bash Scripting Logic Facts

Version Control Using Git

  • Git Concepts
  • Installing Git
  • Using a Git Repository
  • Version Control Using Git Facts

Orchestration Processes and Concepts

  • Orchestration Processes and Concepts Facts

Chapter 15: Security

Root Usage

  • The root User
  • Use su
  • Configure sudo
  • root User Facts
  • Switch Users
  • Log Out of the System

User Security and Restriction

  • User Security
  • User Restrictions
  • Configure User Security and Restrictions
  • Monitor User Logins
  • Auditing Files

Login Blocking

  • Disable Login
  • Login Blocking Facts

Network Security

  • Remove Unneeded Services and Scan Ports
  • Network Security Facts

The xinetd Super Daemon

  • The xinetd Daemon and TCP Wrappers
  • Configure xinetd and TCP Wrappers

OpenSSH

  • Encryption Facts
  • OpenSSH Facts
  • OpenSSH Configuration

SSH Port Tunneling

  • Configure SSH Port Tunneling
  • SSH Port Tunneling Facts

Security-Enhanced Linux (SELinux)

  • Managing SELinux
  • SELinux Facts
  • SELinux Troubleshooting Facts

Application Armor (AppArmor)

  • Application Armor Facts

Public Key Authentication

  • Configure Public Key Authentication
  • Public Key Authentication Facts

VPN Access and Authentication

  • Configuring VPN Access and Authentication
  • VPN Access and Authentication Facts

Security Best Practices

  • Security Best Practices Facts