Course Description
The "GL120 Linux Fundamentals" course is tailored for IT professionals aiming to enhance their Linux skills, focusing on essential system administration tasks and the automation of routine operations. This detailed program covers a broad spectrum of Linux functionalities, from basic command line operations and filesystem management to setting up and maintaining secure environments. It provides a deep dive into the Linux ecosystem, equipping IT personnel with the necessary tools to manage and optimize Linux-based systems.
In the more advanced sections, the course delves into shell scripting and process management, critical for scripting automated tasks, managing software processes, and scheduling tasks with cron. Participants will gain hands-on experience in writing effective scripts for a variety of administrative tasks, including system monitoring and batch processing. The training also covers process management in depth, including job scheduling, process prioritization, and handling, essential for ensuring optimal performance and stability of Linux systems.
Additionally, the course introduces participants to advanced text manipulation techniques and tools such as sed, awk, and Vim. These tools are fundamental in efficiently handling log files, configuring system settings programmatically, and performing data analysis tasks. By the end of the course, IT professionals will have a solid foundation in managing Linux environments, with practical skills in leveraging Linux for system administration, automation, and technical problem-solving in professional IT settings.
Detailed Course Outline
Module 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
Module 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
- Getting Help with man & info, $MANPATH, whatis and apropos
Lab Tasks: Login and Discovery, Help with Commands, Switching Users With su
Module 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
- 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
Module 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
Module 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
Module 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
Module 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
Module 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
Module 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
Module 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, Messaging with talkd, Command Line Email, Alpine
Module 11: Command Shells
- Shells, Identifying the Shell, Changing the Shell
- Configuration Files, Script Execution
- Shell Prompts
- Bash: Bourne-Again Shell, Configuration Files
- Bash: Command Line History, Command Editing
- Bash: Command Completion, "shortcuts"
- Bash: prompt
- Setting Resource Limits via ulimit
Lab Tasks: Linux Shells, Bash History, Aliases, Bash Login Scripts, The Z Shell
Module 12: 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
Module 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
- Persistent Shell Sessions with tmux
- 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, Troubleshooting Practice: Process Management
Module 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
Module 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, 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
Module 16: 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
Module 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
Module 18: 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
Appendices
- Appendix A: Printing - Additional printing topics and configuration
- Appendix B: The X Window System - X.Org, display managers, remote X access, VNC, RDP
- Appendix C: Emacs - Text editing with Emacs