Linux Fundamentals

The SL-120 is a challenging course that focuses on the fundamental tools and concepts of Linux and Unix. Students gain proficiency using the command line. Beginners develop a solid foundation in Unix, while advanced users discover patterns and fill in gaps in their knowledge. Like all Guru Labs courses, the course material is designed to provide extensive hands-on experience. Topics include: basic file manipulation; basic and advanced filesystem features; I/O redirection and pipes; text manipulation and regular expressions; managing jobs and processes; vi, the standard Unix editor; automating tasks with shell scripts; managing software; secure remote administration; and more.

Supported Distributions: Red Hat Enterprise Linux 7, SUSE Linux Enterprise 12, Ubuntu 14.04 LTS

 

Course Outline

WHAT IS LINUX?

  • Unix and its Design Principles

  • FSF and GNU

  • GPL – General Public License

  • The Linux Kernel

  • Linux Kernel and Versioning

  • Components of a Distribution

  • Slackware

  • SUSE Linux Products

  • Debian

  • Ubuntu

  • Red Hat Linux Products

  • Oracle Linux


LOGIN AND EXPLORATION

  • Logging In

  • Running Programs

  • Interacting with Command Line

  • Desktop Environments

  • GNOME

  • Starting X

  • Gathering Login Session Info

  • Gathering System Info

  • uptime

  • got root?

  • Switching User Contexts

  • sudo

  • Help from Commands and Documentation

  • whereis

  • Getting Help Within the Graphical Desktop

  • Getting Help with man & info


LAB TASKS




  • Login and Discovery

  • Help with Commands

  • Switching Users With su


THE LINUX FILESYSTEM

  • Filesystem Support

  • Unix/Linux Filesystem Features

  • Filesystem Hierarchy Standard

  • Navigating the Filesystem

  • Displaying Directory Contents

  • Filesystem Structures

  • Determining Disk Usage With df and du

  • Determining Disk Usage (GUI)

  • Disk Usage with Quotas

  • File Ownership

  • Default Group Ownership

  • File and Directory Permissions

  • File Creation Permissions with umask

  • SUID and SGID on files

  • SGID and Sticky Bit on Directories

  • Changing File Permissions

  • User Private Group Scheme


LAB TASKS




  • Navigating Directories and Listing Files

  • Disk and Filesystem Usage

  • File and Directory Ownership and Permissions


MANIPULATING FILES

  • Directory Manipulation

  • File Manipulation

  • Deleting and Creating Files

  • Managing Files Graphically

  • Drag and drop with Nautilus

  • Physical Unix File Structure

  • Filesystem Links

  • File Extensions and Content

  • Displaying Files

  • Previewing Files

  • Producing File Statistics

  • Displaying Binary Files

  • Searching the Filesystem

  • Alternate Search Method


LAB TASKS




  • Manipulating Files and Directories

  • File Examination & Search Commands


SHELL BASICS

  • Role of Command Shell

  • Communication Channels

  • File Redirection

  • Piping Commands Together

  • Filename Matching

  • File Globbing and Wildcard Patterns

  • Brace Expansion

  • Shell and Environment Variables

  • Key Environment Variables

  • Which and Type

  • General Quoting Rules

  • Nesting Commands


LAB TASKS




  • Redirection and Pipes

  • Wildcard File Matching

  • Shell Variables

  • Shell Meta-Characters

  • Command Substitution


ARCHIVING AND COMPRESSION

  • Archives with tar

  • Archives with cpio

  • The gzip Compression Utility

  • The bzip2 Compression Utility

  • The XZ Compression Utility

  • The PKZIP Archiving/Compression format

  • GNOME File Roller


LAB TASKS




  • Archiving and Compression


TEXT PROCESSING

  • Searching Inside Files

  • The Streaming Editor

  • Text Processing with Awk

  • Replacing Text Characters

  • Text Sorting

  • Duplicate Removal Utility

  • Extracting Columns of Text

  • Combining Files and Merging Text

  • Comparing File Changes


LAB TASKS




  • Processing Text Streams

  • Text Processing


REGULAR EXPRESSIONS

  • Regular Expression Overview

  • Regular Expressions

  • RE Character Classes

  • Regex Quantifiers

  • RE Parenthesis


LAB TASKS




  • Pattern Matching with Regular Expressions

  • Extended Regular Expressions

  • Using Regular Expressions With sed


TEXT EDITING

  • Text Editing

  • Pico/GNU Nano

  • Pico/Nano Interface

  • Nano configuration

  • Pico/Nano Shortcuts

  • vi and Vim

  • Learning Vim

  • Basic vi

  • Intermediate vi


LAB TASKS




  • Text Editing with Nano

  • Text Editing with Vim


MESSAGING

  • System Messaging Commands

  • Controlling System Messaging

  • Internet Relay Chat

  • Instant Messenger Clients

  • Electronic Mail

  • Sending Email with sendmail

  • Sending and Receiving Email with mailx

  • Sending and Receiving Email with mutt

  • Sending Email with Pine

  • Evolution


LAB TASKS




  • Command Line Messaging

  • Messaging with talkd

  • Command Line Email

  • Alpine


COMMAND SHELLS

  • Shells

  • Identifying the Shell

  • Changing the Shell

  • Configuration Files

  • Script Execution

  • Shell Prompts

  • Bash: Bourne-Again Shell

  • Bash: Configuration Files

  • Bash: Command Line History

  • Bash: Command Editing

  • Bash: Command Completion

  • Bash: "shortcuts"

  • Bash: prompt

  • Setting Resource Limits via ulimit


LAB TASKS




  • Linux Shells

  • Bash History

  • Aliases

  • Bash Login Scripts

  • The Z Shell


INTRODUCTION TO SHELL SCRIPTING

  • Shell Script Strengths and Weaknesses

  • Example Shell Script

  • Positional Parameters

  • Input & Output

  • Doing Math

  • Comparisons with test

  • Exit Status

  • Conditional Statements

  • Flow Control: case

  • The for Loop

  • The while and until Loops


LAB TASKS




  • Writing a Shell Script


PROCESS MANAGEMENT AND JOB CONTROL

  • What is a Process?

  • Process Lifecycle

  • Process States

  • Viewing Processes

  • Signals

  • Tools to Send Signals

  • nohup and disown

  • Managing Processes

  • Tuning Process Scheduling

  • Job Control Overview

  • Job Control Commands

  • Persistent Shell Sessions with Screen

  • Using screen

  • Advanced Screen


LAB TASKS




  • Job Control Basics

  • Process Management Basics

  • Screen Basics

  • Using Screen Regions


AT AND CRON

  • Automating Tasks

  • at/batch

  • cron

  • The crontab Command

  • crontab Format

  • /etc/cron.*/ Directories

  • Anacron


LAB TASKS




  • Creating and Managing User Cron Jobs

  • Adding System cron Jobs


MANAGING SOFTWARE

  • Downloading with FTP

  • FTP

  • lftp

  • Command Line Internet – Non-interactive

  • Command Line Internet – Interactive

  • Managing Software Dependencies

  • Using the Yum command

  • Using Yum history

  • YUM package groups

  • Configuring Yum

  • yumdownloader

  • Popular Yum Repositories

  • Using the Zypper command

  • Zypper Services and Catalogs

  • The dselect & APT Frontends to dpkg

  • Aptitude

  • Configuring APT


LAB TASKS




  • Command Line File Transfers

  • Using Yum

  • Using Zypper

  • Managing Yum Repositories

  • Managing Zypper Repositories

  • Using APT

  • Adding an APT repository


THE SECURE SHELL (SSH)

  • Secure Shell

  • ssh and sshd Configuration

  • Accessing Remote Shells

  • Transferring Files

  • Alternative sftp Clients

  • SSH Key Management

  • ssh-agent


LAB TASKS




  • Introduction to ssh and scp

  • SSH Key-based User Authentication

  • Using ssh-agent


MOUNTING FILESYSTEMS & MANAGING REMOVABLE MEDIA

  • Filesystems Concept Review

  • Mounting Filesystems

  • NFS

  • SMB

  • Filesystem Table (/etc/fstab)

  • AutoFS

  • Removable Media


LAB TASKS




  • Accessing NFS Shares

  • On-demand filesystem mounting with AutoFS


PRINTING

  • Legacy Print Systems

  • Common UNIX Printing System

  • Defining a Printer

  • Standard Print Commands

  • Format Conversion Utilities

  • enscript and mpage


LAB TASKS




  • Printing

  • Configuring Print Queues


THE X WINDOW SYSTEM

  • The X Window System

  • X Modularity

  • X.Org Drivers

  • Configuring X Manually

  • Automatic X Configuration

  • Xorg and Fonts

  • Installing Fonts for Modern Applications

  • Installing Fonts for Legacy Applications

  • The X11 Protocol and Display Names

  • Display Managers and Graphical Login

  • Starting X Apps Automatically

  • X Access Control

  • Remote X Access (historical/insecure)

  • Remote X Access (modern/secure)

  • XDMCP

  • Remote Graphical Access With VNC and RDP

  • Specialized X Servers


LAB TASKS




  • Remote X with XDMCP

  • Configure X Security

  • Configure a VNC Server

  • Configure a VNC Server

  • Configure a VNC Server

  • Launching X Apps Automatically

  • Secure X


EMACS

  • Emacs

  • The Emacs Interface

  • Basic Emacs

  • More Emacs Commands


LAB TASKS




  • Text Editing with Emacs

Audience

Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.

Available Course Dates

10/30/2017 10:00 am - 11/03/2017 6:00 pm
12/04/2017 10:00 am - 12/08/2017 6:00 pm
Click here to sign up for this class