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 pikuma.com.

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 November 2021
  • 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

What students are saying

5.00
5 star
100.0%
4 star
0.0%
3 star
0.0%
2 star
0.0%
1 star
0.0%
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
Efisio Mancini
"Just what I needed, excellent Intro to Linux/Unix."
08 Jan 2023
Othelo Vieira
Technical Microsoft CSP
"Worth the time investment to learn Linux and a few Dev tools. It was an awesome Linux refresher course for me, and I really enjoyed the command-line dev tools lecture."
28 Dec 2022
"Nice course! I really loved the history part as well."
12 Dec 2022
Albert Tsanaclis
Albert Tsanaclis
Senior Software Developer
"Really, really interesting and instructive course with plenty of real-world examples, that are applicable to many, many operating systems including MacOS."
06 Nov 2022

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++.