Course description

This course is a comprehensive immersion into the command-line of Linux and other UNIX-like systems. We'll learn the most popular shell tools and introduce concepts of Operating System theory that became popular with the UNIX OS.

linux tutorial

We'll also discuss other important development tools that we can use with Linux, and learn how to write shell scripts that can be used to to automate system tasks.

The tools you'll need

You'll need either a Virtual Machine to install Linux or a physical machine that can be partitioned to run a Linux distribution natively.

linux terminal

We'll use a lightweight Linux distribution called Lubuntu and the Oracle VirtualBox Virtual Machine. All tools are cross-platform, so you can follow along on either Windows or macOS.

Is this course for you?

This course has no prerequisites and it's designed to be as beginner-friendly as possible. We'll start by understanding the history and the evolution of UNIX-like systems, and proceed to cover the most popular tools of the Linux command-line.

We will also try to be as portable as possible. All the commands we'll learn should work with any Linux distribution and any other UNIX-like system (OpenBSD, FreeBSD, and macOS).

This course was designed with programmers in mind. Therefore, we will not be covering advanced Linux tools for networking, infrastructure, or system administration.

About the instructor

gustavo pezzi

Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of

Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.

teaching certification
higher education academy
pgclt teaching certification
bpp university award

Course content

7 hours total length 18 Chapters Last updated January 2023
  • Motivations & Learning Outcomes
  • How to Take This Course
  • Do All Computers Need an Operating System?
  • Evolution os UNIX and Linux
  • The Birth of the Linux OS
  • Downloading a Linux Distro
  • What Linux Distro Should I Use?
  • Installing Linux on a Virtual Machine
  • Creating a Bootable Device with Linux
  • Installing Linux
  • Linux Login
  • Quiz: Installing Linux
  • Navigating Files and Directories
  • Hidden Files
  • Viewing the Content of a Text File
  • Editing Text Files
  • File Globbing and Wildcards
  • Wildcard Options
  • Copying and Moving Files
  • Issues with the Space Character
  • Escape Characters
  • Removing Files and Folders
  • Exercise: Navigating Files and Folders
  • The Root Directory
  • Important System Folders
  • Quiz: Important System Folders
  • Working with Different Shells
  • Quiz: Different Shells
  • Find
  • Grep
  • Exercise: Find and Grep
  • Visualizing OS Processes
  • Killing OS Processes
  • Exercise: Processes
  • Redirecting Output
  • Redirecting Input
  • The Pipe Operator
  • Exercise: IO Stream
  • UNIX Common Ground
  • Adding Users
  • File Permissions
  • Executing Files
  • Exercise: File Permissions
  • Environment Variables
  • RC Files
  • Working with a Package Manager
  • Different Package Managers
  • Exercise: Installing Packages
  • Popular Command-Line Text Editors
  • Understanding System Calls
  • Popular Shell Utilities
  • Compressing and Extracting Files
  • List of Popualr Shell Tools
  • Exercise: Shell Tools
  • What is a Shell Script?
  • Writing and Executing Shell Scripts
  • Script Variables
  • Numerical Expressions
  • Special Script Variables
  • Tests and Conditional Statements
  • Comparison Operators
  • Example of String Test
  • For Loops
  • While Loops
  • Secure Shell and Deamons
  • Scheduling Tasks with Cron
  • Awk and Sed
  • Exercise: Shell Scripting
  • Functions in Shell Scripting
  • Popular Development Tools
  • Compiling with GCC
  • Debugging with GDB
  • Building with Makefiles
  • Installing Programs from Source
  • Exercise: Building Nano from Source
  • Popular Scripting Languages
  • Conclusion and Next Steps
  • Moving Forward and Extra Resources

73% of our students come back for another course

We don't offer discounts on our courses. Ever.

What students are saying

5 star
4 star
3 star
2 star
1 star
Sisouphanh Sayarath
Sisouphanh Sayarath
"Excellent explaining course topics."
25 Nov 2023
Biagio Paparella
"Nice overview of Linux Fundamentals. Well-rounded presentation covering a little bit of everything. Useful and interesting."
09 Nov 2023
Filipe Araujo
Senior Technical Artist
"A fantastic introduction to working with shell! As a user of windows for all of my life and having never touched linux , this course made it so I could comfortably navigate linux / mac os and more importantly, clarified a lot of things about how OSes work. A really excellent primer for anyone who wants to get that foundational computer science knowledge. Highly recommended."
19 Feb 2023
Fabrizio Sartori
"AMAZING! I've been a programmer for a long time, which includes working a ilttile with Linux/UNIX environment. However, because of the daily work, we are only focused on solving application issues of legacy systems, and not doing something from scratch. This course opened my eyes for some things that I had never done before (to have my hands durty, as the professor says. LOL), and it was truly good! Thanks, Gustavo!"
15 Feb 2023
Daniel Schapira
"Gustavo is reassuring and personable. This is important to me as a retiree new to Linux, and wanting to embark on a programming hobby.

Excellent video overlay of Gustavo's image and hands pointing at the text on the video image of the terminal, in real time. This like a tutor in a live lesson. The ability to replay the mini-lessons compensates for lack of true face to face teaching.

Compared to the numerous free youtube tutorials: there are no intrusive adverts, no flashy video editing gimics, no merchandising and no heavy accented tutors with diction that makes you concentrate to hard on the words to extract the meaning. I reviewed the lessons many times. I know that the only way to integrate the knowledge knowledge is to practice. This was a good toe in the water and I am ready to start another course."
10 Jan 2023

Other similar courses

3D Computer Graphics Programming

35 hours
  • Create a 3D software renderer from scratch using the C programming language.

C++ 2D Game Engine Development

30 hours
  • Learn to make a simple 2D game engine using modern C++, SDL, ECS, and Lua.

Game Physics Engine Programming

35 hours
  • Learn how to create a 2D rigid-body game physics engine from scratch with C++.