Difficulty: intermediate
Estimated Time: 20 minutes

Welcome to Intermediate Command Line and Bash Scripting


Bash is a programming language commonly used as a command-line interpreter, or shell. It is the default shell on many operating systems, including OS X and many linux distributions, and you have been using it to complete these tutorials.

This tutorial will show a few slightly more advanced bash tricks and tips and unix commands that often come in useful, as well as introducing some of the inbuilt bash statements that can automate away much of the tedium of data wrangling.

Advanced command line

Step 1 of 8

01: Introduction to bash

Bash introduction

As a programming language, bash has variables - named references to stored numbers or characters.

We can assign a variable using '=', with the variable name on the left and the value to store on the right.

VAR='Hello World'

The value can then be accessed by prepending a '$' to the variable name:

echo $VAR

or optionally surrounding it in curly braces - {} - which is useful when following the variable directly with other characters, which would otherwise be confused as part of the variable name:

echo ${VAR}s

echo $VARs

Limited variable manipulation

In some cases text manipulation may be more easily achieved through bash directly, rather than sed or awk. Bash includes a number of inbuilt variable manipulations, including:

  • Changing case

    echo ${VAR,}

    echo ${VAR,,}

    echo ${VAR^}

    echo ${VAR^^}

  • Sub-string removal - Use # to match a pattern from the beginning, and % to match a pattern from the end.

    echo ${VAR#Hel}

    echo ${VAR%World}

    echo ${VAR#World}

  • Substitution - Use / to replace the first instance or // to replace all instances of a pattern. Particularly useful when renaming things

    echo ${VAR/o/e}

    echo ${VAR//o/e}

Environmental variables

Your computer will have various environmental variables already set. Of particular use are '$HOME', a variable pointing to the current users home directory, and $PATH, a variable containing all the paths that bash will look for programs on. Often $PATH must be added to when a user installs a program themself. e.g. PATH=$PATH:$HOME/bin would allow you to run programs from a 'bin' folder in your home directory when you are working in any other directory.

This tab will not be visible to users and provides only information to help authors when creating content.

Creating Katacoda Scenarios

Thanks for creating Katacoda scenarios. This tab is designed to help you as an author have quick access the information you need when creating scenarios.

Here are some useful links to get you started.

Running Katacoda Workshops

If you are planning to use Katacoda for workshops, please contact [email protected] to arrange capacity.

Debugging Scenarios

Below is the response from any background scripts run or files uploaded. This stream can aid debugging scenarios.

If you still need assistance, please contact [email protected]