Course Outline


About Bash

Pre-requisites

  • The participants must be comfortable with programming constructs in any one language

Duration

  • 2-5 days

Lab Setup

  • Hardware Configuration
    • 2GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 16.04 Desktop Edition (sudo/root access required)

Course Outline for Bash Scripting

Introduction to Bash
  • What is Bash?
  • What is shell?
Basics of Bash
  • Invoking Bash
  • Simple Commands
  • Pipelines
  • Tilde Expansion
  • Brace expansion
  • Looping constructs
    • until
    • while
    • for
  • Using seq command
  • Conditional constructs
    • if statement
    • case statement
    • select statement
  • Redirections
  • Grouping commands
  • Declaring variable
  • Using sleep command
  • Using export command
  • Common commands like date, ls, wc, w, locate, find
  • Using Aliases
  • Using backtick
Filesystem Management
  • Moving and Copying files and directories
  • Mounting and unmounting filesystems
  • Linking files
  • Absolute and relative file paths
  • Partitioning
  • Creating a filesystem
  • Labeling a filesystem
  • Swap partition
  • Log files
  • Configuration files
  • Inodes
  • rsync
Process Management
  • Process Lifecycle
  • Listing running processes
  • Listing process tree
  • Killing a process
  • Suspending a process
  • Moving
  • Signals
  • Cron scripts
  • Exit code
  • Load averages
  • Daemons and Services
User Management
  • Logging in
  • Changing password
  • Users, groups and permissions
  • suid/sgid/sticky bits
  • Creating and deleting users and groups
  • Owner of a process
  • Elevating permissions
  • sudo user
  • who
Network Management
  • Network interfaces
  • DNS lookups
  • ping
  • netstat
  • SSH
  • SSH port forwarding
  • screen
  • scp
Memory Management
  • Checking free memory
  • Checking memory consumption of processes
  • Finding out more about the RAM
I/O Redirection
  • Read
  • Redirecting input
  • Redirecting output
  • Appending to redirect output
Environment Variables
  • HOME
  • USER
External Programs
  • sed
  • wk
  • grep
  • man
  • info
Bash Startup Files
  • .bashrc
  • .bash_profile
  • .bash_login
  • .bash_logout
Shell Arithmetic
  • Use of let, expr
  • Double parantheses $(( ))
  • Arithmetic expansion
Other Shells
  • zsh
  • fish

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.