Introduction to Linux and Shell programming


Course Code: hsts-c19

Course Description

This hands-on course provides training on standard UNIX/Linux commands and utilities used for day to day tasks including file manipulation, program execution and control, and effective use of the shell and desktop environments. The course presents the concepts necessary to understand the way UNIX works as well as the system's most commonly used commands. Data manipulation utilities and shell syntax for synthesizing command pipelines are emphasized. Bourne shell, Bash shell and Korn shell programming techniques are introduced so students will be able to read and modify existing shell scripts as well as create their own. Desktop environments are also introduced from a user's perspective, including common window managers, Open Office utilities and an introduction to configuration tools. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.

You will learn:

  • Navigating the file system
  • Controlling file access
  • File and directory naming rules and conventions
  • Manipulating files and links
  • Controlling the Terminal
  • Working with vi
  • Monitoring and controlling processes
  • Using command line editing
  • Command substitution, quoting and escaping
  • Using backup commands
  • Submitting and controlling print jobs
  • Communicating over the network
  • Using telnet commands
  • Remote access with password authentication
  • Working with secure shells
  • Using GNOME and KDE GUI environments
  • How to write and run shell scripts
  • Using conditional constructs to control script execution
  • Manipulating strings
  • Command-line processing
  • Using regular expressions
  • String processing utilities: sed,grep and awk
  • Counting words, lines and characters
  • Working with compression utilities
  • Writing functions
  • Using the ksh and bash commands
  • Working with UNIX I/O streams

Related Training and Courses

- PHP and MySQL Coding
- SQL Programming and DB Management
- Linux System Administration
- PHP Programming Language
- Korn Shell and Bash Shell Programming

Class Info

Highlights

  • 10 sessions each 1.5 hours with hands-on training led by experienced instructors
  • Digital courseware and online course tracking
  • Final course project delivery
  • Certificate of Completion for each course
  • Session-based assignment

Enrollment Fee

$29 per class hour or $390 per course

Location

  • In Person at HacDC's office (1525 Newton St, NW, Ste 212 Washington DC, 20010) located 2 blocks from the Columbia Height metro
  • Private custom training on site or at your location
  • Project based training cn site or at your location

Time

  • In Person: 9AM-3:00PM (1 hour Lunch)
  • Private custom & project based training: your preference

Software Versions

Our classes are taught on the most current version of software whenever possible. To request a specific version, please Contact Us or call us at 240-200-6131

Online Registration Form

Submit below form if you wish to register to our coding classes. The courses are filled on first come, first served basis.



Course Outline

1- Introduction to UNIX

  • Design Philosophy
  • System Components
  • The Shell and Command Entry
  • Documentation

2- Basic User Commands

  • Logging In and Logging Out
  • Command Line Editing
  • Navigating the File System
  • Viewing and Copying Files
  • Controlling the Terminal
  • Sending and Receiving Mail

3- Text Editing

  • Types of Editors
  • From ed to ex to vi
  • Basic Editor Tasks with vi
  • Editing Multiple Files
  • Named Buffers
  • vi Startup File

4- UNIX Processes

  • The UNIX Process Model
  • Process States
  • Monitoring and Controlling Processes

5- The File System

  • File System Organization
  • File Types
  • File and Directory Naming Rules and Conventions
  • Commands for Navigating the File System
  • Introduction to Inodes
  • Ownership, Permissions, and Dates
  • Manipulating Files and Links
  • Manipulating Directories
  • Determining Disk Usage
  • Other File System Utilities

6- Introduction to Shells: sh, bash, and ksh

  • Shell Functions
  • I/O Redirection and Pipes
  • Command Separation and Grouping
  • Background Execution
  • Filename Expansion
  • Shell Variables
  • Command Substitution
  • Quoting and Escaping Metacharacters
  • Bash Shell Features
  • Korn Shell Features
  • Command Execution
  • Startup Files
  • Customizing the User Environment

7- Printing

  • Printing Under AT&T UNIX
  • Printing Under BSD UNIX

8- Multitasking and Batch Processing

  • Multitasking
  • Scheduled Execution Using cron
  • The at and batch Commands

9- Shell Programming

  • Shell Script Features and Capabilities
  • Creating and Running a Script
  • Working With Variables
  • Environment Variables
  • Working With Data Types
    • Formatting
    • Base Conversion
    • Setting Special Attributes
  • Input/Output Techniques
  • Conditional Constructs
    • if/then
    • else/elif
  • Looping Constructs
    • for, while, until
  • Math Operators

10- Advanced Shell Features

  • Manipulating Strings
  • Writing and Calling Functions
  • Controlling Process Priorities
  • Interpreting Command Line Arguments
  • Making Scripts Interactive
  • Special Shell Variables
  • Advanced I/O with Streams
  • Improving Performance of Scripts

The following topics may be included at the discretion of your instructor.

11- Text Manipulation Utilities

  • Editing a File from a Script
  • Scripting with ed or sed
  • UNIX and Linux Utilities to Manipulate Files
  • Regular Expressions
  • grep and egrep
  • The Stream Editor sed
  • Sorting in Scripts
  • Generating Reports with awk
  • Splitting Large Files
  • Counting Words, Lines, and Characters
  • Transforming File Contents
  • Extracting Text Strings

12- File Processing Utilities

  • Examining and Comparing Files
  • Reporting Differences Between Files
  • Comparing Files of Any Format
  • Displaying Data in Octal and Hex
  • Compressing Data
  • Converting File Formats

13- Backing Up Files

  • Backup Media
  • UNIX Device Names
  • tar and cpio
  • File Transport and Conversion with dd

14- Networking Commands

  • UNIX Network Applications
    • Remote Execution Commands
    • Remote Activity Reporting
    • Communicating with Remote Users
  • Internet Applications
    • ftp, tftp, telnet
  • Remote Access Control Mechanisms
  • Using the Secure Shell(ssh)

15- Desktop Environments

  • KDE Menus, Toolbars, and Tools
  • Gnome Menus and Tools
  • Open Office
    • Write
    • Calc
    • Impress
    • Math
    • Draw
    • Base
  • Introduction to YaST