Course description

This course is for you if you are new to the Linux Command Line but want to learn it without all the headaches. Linux command line is a cross-cutting skill.  If you are comfortable with the command line, you can learn a lot of different skills very quickly and with minimal hassle.  After taking this course, you will be all set to work with highly useful concepts such as Linux System Administration, setting up architectures for Machine Learning and Deep Learning, work with systems that enable VoIP and many many more areas.

In this course, we will start from scratch. This is a very applied course, so we will immediately start with the command line! We will explain everything through the commands and not bore you with dull slides. In fact, there isn't a single slide in this course!

If you have never worked with Linux before (or installed it), this course will show you how to set it up in a Virtual Machine with minimal effort. If you already have Linux or Mac, you can use that too. Then, we will start from zero and get you up to the level of expert without dumping too many commands on you.

We take a case study-based approach and motivate why we need the commands we're learning. If there is a command that is typically taught in courses but isn't used too often, we skip it so that you learn only the stuff that will be useful to you.

In this course, we aim to give you the feel of the rhythm behind the command line so that you are in the position to understand the philosophy behind the command line and use it to your advantage. Through this approach, we can cover the whole spectrum in less than 3 hours.

There is also a real-time chat system in place for students who enroll in this course. With a free signup, you get access to real-time chat with myself and fellow students who are working to complete this course (or have completed the course before you). We plan on creating this network of like-minded experts who can help each other out and collaborate on exciting ideas together.

What will I learn?

  • Basics of the command line 
  • Working with files and directories from the command line (and understand why you would want to do that in the first place)
  • Applying the commands to solve real problems instead of made-up issues
  • Understand how very simple and easy-to-understand commands work together to solve much bigger and important problems
  • Know keyboard shortcuts that will save you a lot of time and effort when working with the command line
  • Perform operations that simply cannot be done in the Graphical User Interfaces
  • Follow a case study that shows how the command line can be used to download a complete YouTube playlist (and learn quite a few commands along the way)
  • Work with the extremely powerful vi editor and understand why people are so crazy about it (and how it can be useful to you)
  • Learn how the professionals make their command lines look cool (and again, learn a few commands along the way)

About the instructor: 

  • Teacher and researcher by profession
  • PhD in Security and a PostDoc from Max Planck Institute for Software Systems, Germany
  • 17+ years of working with computers and 15+ years of teaching experience 
  • 10+ years of working professionally as a Linux System Administrator/VoIP DevOp -- including 5+ years of provable track record on UpWork (with 5.0 star rating there)

Target Audience:

Anyone who:

  • Wants to know why the command line is a necessary tool for anyone working with computers   
  • Has never worked with Linux and wants to know what the fuss is all about 
  • Has worked with Linux or needs to do so but has been avoiding the command line

What you need to know before starting: 

  • No prerequisites are assumed.
  • You can take this course even if you have never worked with Linux before.

*** UPDATES ***

  • Added section on remote connectivity and keeping processes running even on disconnect.

Who this course is for:
  • Anyone interested in excelling in Computer Science
  • Anyone who is interested in leveling up their command line skills
  • Anyone who wants a soft, case study-based introduction to the command line
  • Anyone who wants to know why people learn the command line
  • Anyone who wants to work on concepts such as Linux System Administration but gets stuck due to all the commands

Course curriculum

  • 2

    Getting Started

    • Basics

    • Working with Directories

    • Working with Files

    • History and Fast Tracking Command Entry

  • 3

    Inter-Process Communication

    • Pipes and Chaining Commands (The Power of Composition)

    • Redirecting Output to Files (and the Why of it)

    • Remove, Move and Some Other Stuff

  • 4

    Disc Usage and Working with Multiple Files

    • Disc Usage and Folder Sizes

    • Keyboard Shortcuts (and how they can help you out)

    • Finding Files with Powerful Criteria

    • Tailing Files (and the Power of Debugging)

  • 5

    Working with Processes

    • Process Listings

    • CPU/Memory Information -- the Way of the Pros

  • 6

    Basics of Networking

    • Interfaces and Ports

    • Case Study: Download Youtube Playlist

  • 7

    The Might VI Editor

    • Why VI

    • Moving Around

    • Delete, Undo, Copy, Paste

  • 8

    Ownership and Permissions

    • Ownership Explained through a Case Study

    • Permissions and Security

  • 9

    Finishing Touches

    • ZSH, Syntax Highlighting, Prettifying the Terminal

  • 10

    Update 1: Remote Connections

    • SSH -- Connecting to Remote Machines

    • Executing Long-running Remote Commands (No Hangup at Disconnect)

Meet your instructor!

Mohammad Nauman
PhD, programmer, researcher, designer and teacher.

I have a PhD in Computer Sciences and a PostDoc from the Max Planck Institute for Software Systems. I have been programming since early 2000 and have worked with many different languages, tools and platforms. 

I have an extensive research experience with many state-of-the-art models to my name. My research in Android security has led to some major shifts in the Android permission model.

I love teaching and the most important reason I upload online is to make sure people can find my content.

Take this course today!

"Linux Command Line - From Zero to Expert"