Introduction to Unix Shell

Say you want to download a YouTube video. How would you do that? You may go to the internet, find a YouTube downloader, install it, and give it the video link, and it downloads the video. But after a few downloads, a window pops-up saying “upgrade to download more”, right? At least this is what I faced when using GUI apps in Windows. In Unix shell, you can do the whole job with a simple command, youtube-dl link, and that’s it! It will download the video for you with the highest possible bandwidth!

downloading youtube videos from linux shell
simple YouTube video downloading in progress

Shell is a command-line interface. It’s a place where you can control everything on your computer. You run commands on a shell and it runs programs for you. If you use a software to do some work, say for the YouTube downloader, you can do only the things given for you. It’s called GUI, or Graphical User Interface. You’re here limited to do what you want. But in the shell, you can do whatever you want. Here things are not clickable, you need to write some short codes to get your works done.

Why do I need to use Shell?

Shell is fast and flexible. That’s why you see developers always using shells. The vast majority, around 99.6% of web servers around the world runs on Linux. A shell is a vital tool for deployment and remote administration in Linux servers. When you become a developer, and trying to use web servers, you won’t find any GUI software. You must use Shell. You indeed need to remember some magic words to work on Shell, but once you get used to it, it’ll save you tons of time and give you the ability to control your computer as you want.

If you’re familiar with Python programming language and have used the built-in IDE for it, using Shell is almost the same. In Python IDE you write some commands, then it executes your commands, and shows some result. Then it waits for another command. Shell is a command-line for your computer in general, working with files, directories, running programs, and interacting with other computers.


The program we use to interact with the shell is called Terminal program. If you’re on Mac or Linux, you already got a Terminal. Because Mac and Linux are built on Unix. But if you’re on Windows, you need to install a shell and Terminal to know how the servers work. Windows does have a command-line interface, known as Command Prompt or CMD. But it’s based on old MS-DOS, and not Unix style. For web developers, a Unix style command line is pretty standard, as most web servers are based on the Unix style command line. It’s a piece of good news that Windows 10 users can now use Unix shell, with some modification. Details on installation instruction.

Bash Scripting

We’ll be using Bash, which is the most popular Unix style shell. Bash stands for Bourne Again Shell. It’s an improvement of the old Bourse Shell, sh. Shell scripting means scripting in any Unix style shell, whereas Bash scripting means scripting in the Bash shell.

What You’ll Learn

After completing all the lessons in Bash scripting, you’ll have enough knowledge to work with Bash. Although Bash scripting is a programming language, you’ll only learn what we need in daily life. I’ll keep updating the lessons so that you don’t need to look anywhere else to get your daily jobs done. Try to follow them serially to get the best of this website.

Final Instructions

I’ll be using Linux Mint ’20. But you can use Ubuntu, Mac, Windows, or whatever you want. The functionality is the same everywhere, but the appearance may differ as you can always edit your shell’s appearance. If you still face any problem, try surfing the web, or ask in the comment section. (Comment section currently unavailable for security issues)


Start you bash scripting journey with these tutorials, or just jump right into the next tutorial.

Mind Sharing It?
Join Facebook Group

Public Group

A group optimized for learning purposes. Track your progress by joining a unit

Follow on Quora

Public Space

Best place to ask questions! Join the built-in community to get help from others