Linux Fundaments GL120 Training in Ames

Enroll in or hire us to teach our Linux Fundaments GL120 class in Ames, Iowa by calling us @303.377.6176. Like all HSG classes, Linux Fundaments GL120 may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, Linux Fundaments GL120 may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

 
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 regular expressions; managing jobs and processes; vi, the standard Unix editor; automating tasks with shell scripts; managing software; secure remote administration; and more.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

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

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 & w
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
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 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
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 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
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 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
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
Launching X Apps Automatically
Secure X
 
EMACS
Emacs
The Emacs Interface
Basic Emacs
More Emacs Commands
LAB TASKS
Text Editing with Emacs

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Linux Unix Uses & Stats

Linux Unix is Used For:
Desktop Mainframe Computers Mobile Devices Embedded Devices
Difficulty
Popularity
Year Created
1991/1971
Pros
Performance:
Linux supports many efficient tools and operates them seamlessly. Because it's architecture is lightweight it runs faster than both Windows 8.1 and 10. 
 
Security:
Because Linux is an open-source software,  anyone can contribute code to help enhance the users’ experience i.e., adding features, fixing bugs, reducing security risks, and more.
 
 
Software Development:
The terminal in Linux is a *wild card*. You can do almost anything with it. This includes software installation, application and server configurations, file system management, and etc.
 
Large-scale:
Open-source projects benefit from having an attentive community. As a result, Linux is more secure than Windows. Instead of installing anti viruses to clean malware, you just have to stick to the recommended repositories. 
 
Efficient: 
Developers have the convenience of running servers, training machine learning models, accessing remote machines, and compiling and running scripts from the same terminal window. 
 
Free: 
Linux is free (you can put it on as many systems as you like) and you can change it to suit your needs.
Cons
Learning Curve: 
Linux is not for everyone, there is a learning curve in switching to Ubuntu. To actually learn Linux efficiently would take a user one to several years.
 
No Tech Support:
Unlike Windows, there isn’t a dedicated tech support, so getting help for things is up to you. 
 
Designer Compatabilty:
Linux is not as user friendly as Windows or as ‘straight out of the box design’ As an example for design choices, Adobe hasn’t released any of its products to Linux users. So it’s impossible to run them directly. The Ubuntu alternative is a free software called GIMP. 
 
Gaming Capabilities: 
Most games aren’t available in Linux. But that’s not to say you can’t make it happen, it's just not as easy.   
Linux Unix Job Market
Average Salary
$85k-$105k
Job Count
n/a
Top Job Locations

New York City
Boston
San Francisco 

Complimentary Skills to have along with Linux Unix
The following are types of jobs that may require Linux skills.  The top 15 job titles on Dice.com that mention Linux in their postings are:
- DevOps Engineer
- Software Engineer
- Java Developer
- Systems Engineer
- Systems Administrator
- Senior Software Engineer
- Network Engineer
- Python Developer
- Linux Systems Administrator
- Software Developer
- System Administrator
- Linux Administrator
- Linux Engineer
- Senior Java Developer
- C++ Developer

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.