Skip to main content

Shell

One of the very first concepts that you will need to familiarize yourself with as you begin this journey is the Shell.

Shell Navigation and basic Linux commands

As you begin your journey to becoming a software engineer, there are a lot of new things that you are going to learn. Some of these will be totally new to you, while others may be slightly different from what you are used to already.

One such concept is what we refer to as the command line (to be introduced soon). Prior to this time, when you use your computer, you are able to drag and drop things with your mouse. You have mouse buttons that you click or double click to get options which you use to move around or get some work done.

This use of computers wasn’t always so. There was a time when computers didn’t have mouses and everything needed to be done with the keyboard. You literally had to give the computer commands by typing them out if you wanted to do something.

The current interface, where you are able to use your mouse to drag and drop and also get graphical representation of all the things on your computer is known as the Graphical User Interface (GUI). What preceded it, which didn’t have any graphical representations and everything needed to be done by explicitly typing out commands from your keyboard, is known as the Command Line Interface (CLI).

You may think that once we now have access to the GUI, there will be no need for the CLI but that isn’t the case at all. There are a couple of advantages that the CLI still overs which makes it preferably for professionals like Software Engineers.

As such, throughout your training to become a software engineer, you are going to be working a lot with the CLI. To get you started with CLI, we will be introducing you to the Shell.

The Shell is basically what is responsible for interpreting all the commands that you type and ensuring that you get the right response. It does this by taking commands from the keyboard and sending it to the operating system for execution.

For your computer to take in the commands you type from your keyboard there has to be an interface where you type your commands. This interface is generally referred to as a terminal.

So, when you are using the CLI, you have to open a terminal to type your commands and the shell will interpret and execute those commands for you.

Since you will be working with this throughout the program, it is only important to familiarize yourself with it as soon as possible.

Just as you are able to move around, open a folder, close a folder, copy and paste, move files, and many more with your mouse on a GUI computer, you should be able to similarly navigate around using the CLI.

This is what we will be calling Shell Navigation. You should therefore learn about the various commands that you can use when you intend to take actions like the following:

  • Copy and paste a file
  • Open a new folder/directory
  • Delete a file
  • Create a file
  • Move a file
  • Go back to a previous folder, etc

Before we introduce you to some resources you can use to learn these, let us address some of the frequently asked questions that new learners have concerning what we have talked about so far.

1: Is everyone required to have Linux installed on their computer?
2: Does it mean that one cannot do the program if they do not have a Linux system?
3: Do I need to install a Linux or Unix-based operating system before we start the program?

The answers to the above questions are similar, so let’s answer them together.

You don’t necessarily need to install a Linux operating system before starting the SWE program. Once you start the program, you will be given access to a sandbox where you can do all your projects in and even do your own practice with.

If you feel adventurous enough, you can figure out how to install a linux operating system on your computer (possible choices include: using a virtual machine, windows subsystem for linux, dual boot operating systems)

Resources

  1. Peer Discussion Led by Adewole Adegboyega-Conde for some ALX learners

  2. Introduction to shell

  3. Basic Linux Commands

  4. 37 Important Linux Commands You Should Know - recommended by Ruya - @GhandoriEl

  5. Bash Guide for Beginners - recommended by Ruya - @GhandoriEl