Course Summary
By combining our UNIX/Linux Essentials and Shell Programming courses, this course not only gets you started as a UNIX/Linux user, but will put you well into the Power User category.
The "Essentials" portion starts off by building on a student's prior experience as a Windows desktop user: developing an understanding of what the UNIX/Linux operating system is, and how it's file-system and commands support familiar file handling activities. Then you'll learn to apply the UNIX/Linux concepts of standard input/output/error and command pipelines as you learn to take advantage of the ways that the Korn or Bash shells interpret commands you enter. We'll cover all the common UNIX/Linux "filter" commands that let you extract exactly the data you need from very large files such as application logs or data-base queries. We'll also discuss some very basic system troubleshooting techniques.
Then you'll move into the "Programming" part, where you'll see that the UNIX/Linux command-line is actually a complete programming language, allowing you to implement sophisticated automation of procedures that less experienced users need to spend time doing manually. We'll also go well beyond the "Essential" use of UNIX/Linux Power Tools such as grep, sed and awk, by thoroughly covering the principles of regular expressions, and how that understanding lets you apply those tools to solve just about any data extraction and processing requirement.
This course is applicable to any version of UNIX and/or Linux, including Solaris, AIX, HP/UX, RedHat, SuSe, Ubuntu and others. The course content is fully applicable to both Korn and Bash shells (but not csh or tcsh), noting where incompatibilities between them occur.
Topics Covered In This Course
What Is UNIX/Linux
- Why Would Anyone Use UNIX/Linux?
- What Is UNIX/Linux?
- Components of a UNIX/Linux System
- The Common UNIX/Linux Shells
- Accessing A UNIX/Linux System
Getting Started
- Logging In To UNIX/Linux
- Installing/Configuring PuTTY
- Getting To The Shell
- Working With The Shell
- Getting Help
- Try A Few Common Commands
Navigating The Filesystem
- Translating Windows Explorer to Shell Commands
- What's That Stuff In My "ls" Output
- Absolute and Relative File Names
- Working With Directories
- Working With Files
- Standard ?Places? In the UNIX/Linux Filesystem
Basic Shell Features
- Is It UNIX or Is It Shell ?
- Shell Magic
- File-Name Matching
- A Key UNIX Concept: Standard I/O
- I/O Redirection
- Command Pipelines
- Command Aliases
Editing Files With Vi
- Editing Without A Mouse
- "Just Getting By" With Vi
- "A Bit More Efficient" With Vi
- Command-Line Editing
- Avoiding Vi: Copy and Paste
- Avoiding Vi: File Transfer
Managing Processes
- Programs and Processes
- Foreground and Background
- Basic "Job" Management
- Advanced Job Management
- UNIX Signals
What?s Happening on The System
- What?s Running?
- Where?s My Drives?
- Basic Troubleshooting Techniques
Common UNIX Tools
- Commands That Give You Information
- Sending E-mail
- Comparing (Similar) Files
- Slicing and Dicing Data
- Analyzing File Content
- Searching/Filtering Idioms
More Advanced UNIX Tools
- Sorting
- Automated Editing
- Finding Files
- Processing Files That You Find
- Archiving With "tar" and "cpio"
- Compressing Files and Pipelines
Understanding "The Environment"
- Using Shell Variables
- Scope of Variables
- What's In The UNIX Environment
- Managing File/Directory Access Permissions
Getting Started With Shell Scripts
- How the Shell Finds Commands
- Turning A Script Into A Real Command
- Using Command-Line Arguments
- Getting Input From The User
- Getting Data From Other Commands
- Doing Arithmetic
Conditional ("if") Programming
- Testing For Command Failures
- Comparing Strings and Numbers
- Testing For File Status
- Short-Circuit Operators
- Multi-Way Branching Logic
- Debugging Shell Programs
Loop Programming
- Iterators
- Logical Expression Loops
- Calculated (Counting) Loops
- Breaking Out of A Loop
- Looping Through Command-Line Arguments
- I/O Redirection With Loops
- Bash/Ksh Differences
Additional Shell Programming Techniques
- Shell Functions
- The "dot" command
- Creating Reusable Libraries
- The "set" Command
- The "typeset" Command
- Using Arrays
- Substitution Parameters
- Precise Output Formatting
- Using Command-Line Options
- Scheduled Tasks (Cron Jobs)
Understanding Regular Expressions
- Simple Regular Expressions (Patterns!)
- Character Classes
- Anchors
- Repetition
- Sub-Expressions and References
- Basic vs. Extended and Other Implementations
The UNIX Power Tools
- Getting More Out of Grep
- Getting More Out of Sed
- Combining Power Tools With Scripts
Awk: The Ultimate Power Tool
- One Liners
- Selectors and Methods
- Programming Syntax
- Awk's Built-In Functions
- "Non-Standard" I/O
- Extracting Data From Reports
What You Can Expect
This course is fairly intense since it assumes relatively little experience with UNIX/Linux at the start, but by the end it moves into shell and tool techniques that are quite advanced. Consider taking the Essentials and Shell Programming courses separately for a more "relaxed" experience while covering the same topics.
On completing this course, a delegate can expect to be able to:
- understand the basic structure of the UNIX/Linux operating system, and how its similar to and different from Windows.
- thoroughly understand UNIX/Linux command-line syntax.
- use shell wildcards, variables, history, and other syntax to save typing and work more effectively.
- perform any kind of file-management activity including creating, copying, renaming, and setting access permissions for both directories and files.
- use pipelined commands to work more effectively at the command-line level.
- use UNIX tools alone or in combination with shell-scripts for extracting data from, and processing text files.
- create and maintain your own shell and awk scripts, even fairly complex ones.
- understand, debug and modify shell and awk scripts originally written by expert UNIX/Linux programmers.
- do basic troubleshooting of Linux and application operation and performance.
Who Should Take This Course
This course is ideal for technical staff that have user-level experience with mainframe or Windows systems and are finding they now have the need to work as effectively and confidently on Linux based systems. It's also a great refresher for staff who find that their UNIX experience has become dated.
This course is recommended for those staff that will have the need to automate procedures (e.g., system administration, application monitoring, analysis, testing, etc.) using UNIX/Linux. Users who want to be effective UNIX/Linux users, but are not interested in programming, will find the stand-alone Essentials course will meet their needs more effectively.
Recommended Prerequisites
No prior experience with the UNIX or Linux operating system is required, however a background in programming using any language is strongly recommended.
Training Style
Short lecture sessions, along with extensive hands-on workshops.
Related Courses
Code |
Course Title |
Duration |
Level |
|
SUSE10E1 |
SuSe Enterprise Linux 10 Essentials |
5 Days |
I |
Details |
UNIXE |
UNIX/Linux: The Essentials |
3 Days |
I |
Details |
SHELL |
UNIX Shell Programming |
3 Days |
II |
Details |
Every student attending a Verhoef Training class will receive
a certificate good for $100 toward their next public class taken
within a year.
You can also buy "Verhoef Vouchers" to get a discounted rate for a
single student in any of our public or web-based classes.
Contact your account manager or our sales office for details.