Introduction to Linux

This challenging 5-day course 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.

Current Version: B01

Prerequisites:

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

Supported Distributions:

  • Red Hat Enterprise Linux 8
  • SUSE Linux Enterprise 15
  • Ubuntu 18.04 LTS

Detailed Course Outline:

1. 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

2. LOGIN AND EXPLORATION

  • Logging In
  • Running Programs
  • Interacting with Command Line
  • Desktop Environments
  • GNOME
  • Starting X
  • Gathering Login Session Info
  • Gathering System Info
  • uptime & w
  • got root?
  • Switching User Contexts
  • sudo
  • Help from Commands and Documentation
  • whereis
  • Getting Help Within the Graphical Desktop
  • Getting Help with man & info
  • $MANPATH, whatis and apropos
  • LAB TASKS
  • Login and Discovery
  • Help with Commands
  • Switching Users With su

3.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
  • Introduction to Troubleshooting Labs
  • Troubleshooting Practice: Filesystem

4.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

5.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

6.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

7.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

8.REGULAR EXPRESSIONS

  • Regular Expression Overview
  • Regular Expression Implementations
  • Regular Expressions
  • RE Character Classes
  • Regex Quantifiers
  • RE Parenthesis
  • LAB TASKS
  • Pattern Matching with Regular Expressions
  • Extended Regular Expressions
  • Using Regular Expressions With sed

9.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

10.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
  • Command Line Email
  • Alpine

11.COMMAND SHELLS

  • Shells
  • Identifying the Shell
  • Changing the Shell
  • Shell Configuration Files
  • Script Execution
  • Bourne Shell: 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

12.INTRODUCTION TO SHELL SCRIPTING

  • Shell Script Strengths and Weaknesses
  • Example Shell Script
  • Positional Parameters
  • Input & Output
  • Doing Math
  • Exit Status
  • Comparisons with test
  • Conditional Statements
  • Flow Control: case
  • The borne for-Loop
  • The while and until Loops
  • LAB TASKS
  • Writing a Shell Script

13.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 tmux
  • Persistent Shell Sessions with Screen
  • Using screen
  • Advanced Screen
  • LAB TASKS
  • Job Control Basics
  • Process Management Basics
  • Screen Basics
  • Using Screen Regions
  • Troubleshooting Practice: Process Management

14.AT AND CRON

  • Automating Tasks
  • at/batch
  • cron
  • The crontab Command
  • crontab Format
  • /etc/cron.*/ Directories
  • Anacron
  • Systemd Timers
  • LAB TASKS
  • Creating and Managing User Cron Jobs
  • Adding System cron Jobs
  • Troubleshooting Practice: Automating Tasks

15.MANAGING SOFTWARE

  • Downloading with FTP
  • FTP
  • lftp
  • Command Line Internet “ Non-interactive
  • Command Line Internet “ Interactive
  • Managing Software Dependencies
  • Using the Yum & DNF commands
  • Using Yum history
  • Yum package groups
  • Configuring Yum
  • dnf download & yumdownloader (deprecated)
  • 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

16.THE SECURE SHELL (SSH)

  • Secure Shell
  • OpenSSH Client & Server 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

17.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

18.PRINTING

  • Legacy Print Systems
  • Common UNIX Printing System
  • Defining a Printer
  • Standard Print Commands
  • Format Conversion Utilities
  • enscript and mpage
  • LAB TASKS
  • Printing

A.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
  • Secure X

B.EMACS

  • Emacs
  • The Emacs Interface
  • Basic Emacs
  • More Emacs Commands
  • LAB TASKS
  • Text Editing with Emacs

Leave a Reply