The GL120 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 regu
Interested in attending? Have a suggestion about running this event near you?
Register your interest now
Description
- 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 & 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
- 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
- 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 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
- 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
- Command Line Email
- Alpine
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Secure X
EMACS
- Emacs
- The Emacs Interface
- Basic Emacs
- More Emacs Commands
LAB TASKS
- Text Editing with Emacs
Prerequisites
Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.