GL120 - Linux Fundamentals

Need something different? Guru Labs has other Linux and security courses and can build a custom course that covers exactly what you need!

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.

Audience:

  1. IT Professionals: System administrators, network engineers, and other IT staff who need to manage and maintain Linux servers and desktops.
  2. Software Developers: Developers who work on or deploy applications on Linux environments and require a deeper understanding of the operating system to optimize their development and testing workflows.
  3. DevOps Engineers: Professionals in DevOps roles who are responsible for the integration and continuous deployment of software applications in Linux environments, leveraging automation and configuration management tools that run on Linux.
  4. Technical Support Staff: Support technicians and helpdesk personnel who need to troubleshoot and resolve issues in Linux systems, understanding the underlying system to better assist users.
  5. Computer Science Students: Undergraduate and graduate students studying computer science or related fields who are interested in building a strong foundation in Linux as part of their academic and professional preparation.

Benefits:

  1. Enhanced Command Line Proficiency: Participants will master the Linux command line, enabling them to efficiently navigate the filesystem, execute commands, and automate tasks, which are essential skills for any IT specialist working with Linux-based systems.
  2. Practical Skills in System Administration: The course equips IT professionals with practical, hands-on experience in managing Linux systems, from user and group management to configuring services and monitoring system performance.
  3. Advanced Automation Capabilities: Through learning shell scripting and cron job scheduling, participants will be able to automate routine tasks such as updates, backups, and system checks, which increases operational efficiency and reduces the likelihood of human error.
  4. Process Management Expertise: The training provides in-depth knowledge of process management, including starting, stopping, and monitoring processes. This is crucial for maintaining system stability and optimizing resource use in a Linux environment.
  5. Proficiency with Text Manipulation Tools: IT professionals will gain expertise in using powerful text processing tools like sed, awk, and Vim. These skills are invaluable for tasks such as parsing logs, editing configuration files en masse, and automating complex text manipulation tasks across numerous files.
Prerequisites:

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

Supported Distributions:
Red Hat Enterprise Linux 9
SUSE Linux Enterprise 15
Ubuntu 18.04 LTS
Recommended Class Length:
5 days
Detailed Course Outline:
  1. What is Linux?
    1. Unix and its Design Principles
    2. FSF and GNU
    3. GPL – General Public License
    4. The Linux Kernel
    5. Linux Kernel and Versioning
    6. Components of a Distribution
    7. Slackware
    8. SUSE Linux Products
    9. Debian
    10. Ubuntu
    11. Red Hat Linux Products
    12. Oracle Linux
  2. Login and Exploration
    1. Logging In
    2. Running Programs
    3. Interacting with Command Line
    4. Desktop Environments
    5. GNOME
    6. Starting X
    7. Gathering Login Session Info
    8. Gathering System Info
    9. uptime & w
    10. got root?
    11. Switching User Contexts
    12. sudo
    13. Help from Commands and Documentation
    14. whereis
    15. Getting Help Within the Graphical Desktop
    16. Getting Help with man & info
    17. $MANPATH, whatis and apropos
    Lab Tasks
    1. Login and Discovery
    2. Help with Commands
    3. Switching Users With su
  3. The Linux Filesystem
    1. Filesystem Support
    2. Unix/Linux Filesystem Features
    3. Filesystem Hierarchy Standard
    4. Navigating the Filesystem
    5. Displaying Directory Contents
    6. Filesystem Structures
    7. Determining Disk Usage With df and du
    8. Determining Disk Usage (GUI)
    9. Disk Usage with Quotas
    10. File Ownership
    11. Default Group Ownership
    12. File and Directory Permissions
    13. File Creation Permissions with umask
    14. SUID and SGID on files
    15. SGID and Sticky Bit on Directories
    16. Changing File Permissions
    17. User Private Group Scheme
    Lab Tasks
    1. Navigating Directories and Listing Files
    2. Disk and Filesystem Usage
    3. File and Directory Ownership and Permissions
    4. Introduction to Troubleshooting Labs
    5. Troubleshooting Practice: Filesystem
  4. Manipulating Files
    1. Directory Manipulation
    2. File Manipulation
    3. Deleting and Creating Files
    4. Managing Files Graphically
    5. Drag and drop with Nautilus
    6. Physical Unix File Structure
    7. Filesystem Links
    8. File Extensions and Content
    9. Displaying Files
    10. Previewing Files
    11. Producing File Statistics
    12. Displaying Binary Files
    13. Searching the Filesystem
    14. Alternate Search Method
    Lab Tasks
    1. Manipulating Files and Directories
    2. File Examination & Search Commands
  5. Shell Basics
    1. Role of Command Shell
    2. Communication Channels
    3. File Redirection
    4. Piping Commands Together
    5. Filename Matching
    6. File Globbing and Wildcard Patterns
    7. Brace Expansion
    8. Shell and Environment Variables
    9. Key Environment Variables
    10. Which and Type
    11. General Quoting Rules
    12. Nesting Commands
    Lab Tasks
    1. Redirection and Pipes
    2. Wildcard File Matching
    3. Shell Variables
    4. Shell Meta-Characters
    5. Command Substitution
  6. Archiving and Compression
    1. Archives with tar
    2. Archives with cpio
    3. The gzip Compression Utility
    4. The bzip2 Compression Utility
    5. The XZ Compression Utility
    6. The PKZIP Archiving/Compression format
    7. GNOME File Roller
    Lab Tasks
    1. Archiving and Compression
  7. Text Processing
    1. Searching Inside Files
    2. The Streaming Editor
    3. Text Processing with Awk
    4. Replacing Text Characters
    5. Text Sorting
    6. Duplicate Removal Utility
    7. Extracting Columns of Text
    8. Combining Files and Merging Text
    9. Comparing File Changes
    Lab Tasks
    1. Processing Text Streams
    2. Text Processing
  8. Regular Expressions
    1. Regular Expression Overview
    2. Regular Expression Implementations
    3. Regular Expressions
    4. RE Character Classes
    5. Regex Quantifiers
    6. RE Parenthesis
    Lab Tasks
    1. Pattern Matching with Regular Expressions
    2. Extended Regular Expressions
    3. Using Regular Expressions With sed
  9. Text Editing
    1. Text Editing
    2. Pico/GNU Nano
    3. Pico/Nano Interface
    4. Nano configuration
    5. Pico/Nano Shortcuts
    6. vi and Vim
    7. Learning Vim
    8. Basic vi
    9. Intermediate vi
    Lab Tasks
    1. Text Editing with Nano
    2. Text Editing with Vim
  10. Messaging
    1. System Messaging Commands
    2. Controlling System Messaging
    3. Internet Relay Chat
    4. Instant Messenger Clients
    5. Electronic Mail
    6. Sending Email with sendmail
    7. Sending and Receiving Email with mailx
    8. Sending and Receiving Email with mutt
    9. Sending Email with Pine
    10. Evolution
    Lab Tasks
    1. Command Line Messaging
    2. Command Line Email
    3. Alpine
  11. Command Shells
    1. Shells
    2. Identifying the Shell
    3. Changing the Shell
    4. Shell Configuration Files
    5. Script Execution
    6. Bourne Shell: Shell Prompts
    7. Bash: Bourne-Again Shell
    8. Bash: Configuration Files
    9. Bash: Command Line History
    10. Bash: Command Editing
    11. Bash: Command Completion
    12. Bash: "shortcuts"
    13. Bash: prompt
    14. Setting Resource Limits via ulimit
    Lab Tasks
    1. Linux Shells
    2. Bash History
    3. Aliases
    4. Bash Login Scripts
    5. The Z Shell
  12. Introduction to Shell Scripting
    1. Shell Script Strengths and Weaknesses
    2. Example Shell Script
    3. Positional Parameters
    4. Input & Output
    5. Doing Math
    6. Exit Status
    7. Comparisons with test
    8. Conditional Statements
    9. Flow Control: case
    10. The borne for-Loop
    11. The while and until Loops
    Lab Tasks
    1. Writing a Shell Script
  13. Process Management and Job Control
    1. What is a Process?
    2. Process Lifecycle
    3. Process States
    4. Viewing Processes
    5. Signals
    6. Tools to Send Signals
    7. nohup and disown
    8. Managing Processes
    9. Tuning Process Scheduling
    10. Job Control Overview
    11. Job Control Commands
    12. Persistent Shell Sessions with tmux
    13. Persistent Shell Sessions with Screen
    14. Using screen
    15. Advanced Screen
    Lab Tasks
    1. Job Control Basics
    2. Process Management Basics
    3. Screen Basics
    4. Using Screen Regions
    5. Troubleshooting Practice: Process Management
  14. At and Cron
    1. Automating Tasks
    2. at/batch
    3. cron
    4. The crontab Command
    5. crontab Format
    6. /etc/cron.*/ Directories
    7. Anacron
    8. Systemd Timers
    Lab Tasks
    1. Creating and Managing User Cron Jobs
    2. Adding System cron Jobs
    3. Troubleshooting Practice: Automating Tasks
  15. Managing Software
    1. Downloading with FTP
    2. FTP
    3. lftp
    4. Command Line Internet – Non-interactive
    5. Command Line Internet – Interactive
    6. Managing Software Dependencies
    7. Using the Yum & DNF commands
    8. Using Yum history
    9. Yum package groups
    10. Configuring Yum
    11. dnf download & yumdownloader (deprecated)
    12. Popular Yum Repositories
    13. Using the Zypper command
    14. Zypper Services and Catalogs
    15. The dselect & APT Frontends to dpkg
    16. Aptitude
    17. Configuring APT
    Lab Tasks
    1. Command Line File Transfers
    2. Using DNF
    3. Using Zypper
    4. Managing Yum Repositories
    5. Managing Zypper Repositories
    6. Using APT
    7. Adding an APT repository
  16. The Secure Shell (SSH)
    1. Secure Shell
    2. OpenSSH Client & Server Configuration
    3. Accessing Remote Shells
    4. Transferring Files
    5. Alternative sftp Clients
    6. SSH Key Management
    7. ssh-agent
    Lab Tasks
    1. Introduction to ssh and secure file transfer
    2. SSH Key-based User Authentication
    3. Using ssh-agent
  17. Mounting Filesystems & Managing Removable Media
    1. Filesystems Concept Review
    2. Mounting Filesystems
    3. NFS
    4. SMB
    5. Filesystem Table (/etc/fstab)
    6. AutoFS
    7. Removable Media
    Lab Tasks
    1. Accessing NFS Shares
    2. On-demand filesystem mounting with AutoFS
  1. Printing
    1. Legacy Print Systems
    2. Common UNIX Printing System
    3. Defining a Printer
    4. Standard Print Commands
    5. Format Conversion Utilities
    6. enscript and mpage
    Lab Tasks
    1. Printing
    2. Configuring Print Queues
  2. The X Window System
    1. The X Window System
    2. X Modularity
    3. X.Org Drivers
    4. Configuring X Manually
    5. Automatic X Configuration
    6. Xorg and Fonts
    7. Installing Fonts for Modern Applications
    8. Installing Fonts for Legacy Applications
    9. The X11 Protocol and Display Names
    10. Display Managers and Graphical Login
    11. Starting X Apps Automatically
    12. X Access Control
    13. Remote X Access (historical/insecure)
    14. Remote X Access (modern/secure)
    15. XDMCP
    16. Remote Graphical Access With VNC and RDP
    17. Specialized X Servers
    Lab Tasks
    1. Remote X with XDMCP
    2. Configure X Security
    3. Configure a VNC Server
    4. Configure a VNC Server
    5. Configure a VNC Server
    6. Secure X
  3. Emacs
    1. Emacs
    2. The Emacs Interface
    3. Basic Emacs
    4. More Emacs Commands
    Lab Tasks
    1. Text Editing with Emacs