
Enable Windows Subsystem for Linux, install Ubuntu from the Microsoft Store, and set up a user to run the Linux command line on Windows, including updating repositories and installing unzip.
Explore Linux file system basics, including the single root slash, /home, and directories, and contrast with Windows drive letters while practicing core commands like date, cal, ls, unzip, and clear.
Navigate the linux command line: use cd to change directories, ls to list, and mkdir to create folders. Use .. and cd - for navigation and -R for recursive views.
Learn to work with files in Linux command line by locating your current working directory, creating files with touch, and viewing, listing, and counting contents with cat, ls, and wc.
Speed up command entry by using history: cycle through past commands with the up arrow, view entries with history, and re-run a command by its number.
Explore the power of composition by chaining pipes and commands to count, filter, and search data using cat, wc, head, and grep.
Redirect command output to a file using the greater-than symbol, capture console output, distinguish redirection from piping, and rename or move files.
Use cp, mv, and rm to manage backups and directories: create backups with mkdir, copy or move files, and remove directories recursively, noting deletion is permanent.
Learn how to check disk usage in Linux with df -h for space and du -h or du -s to reveal folder sizes and identify largest files for cleanup.
Discover useful Linux keyboard shortcuts, including tab-completion for directories, dash notation to shorten names, and control-key sequences for clearing, cutting, and yanking commands.
Discover how to use the find command to locate files by type, size, and other criteria in the current directory, with examples of large files and human readable format.
Learn to use tail to view the last lines of a file and follow it in real time, enabling live debugging of log files and rapid error detection.
Learn to list and inspect running processes on Linux using real-time top and non-real-time ps variants, filter by user and name, and terminate stuck processes with kill -9 and killall.
Explore Linux CPU and memory information, inspect process details, and monitor changes with watch, grep, and ls commands to understand process status, memory usage, and context switches.
Explore linux interfaces and ports with ifconfig to view interfaces and ip addresses, use nslookup for dns, verify connectivity with ping, and view listening ports with netstat.
See a case study of downloading a YouTube playlist from the command line with a single command. Learn the one-time setup, including Python and pip, to enable seamless downloads.
learn why vi, a powerful command line editor, saves time and is essential even with gui editors, covering command and insert modes and saving with :wq or quitting with :q!.
Learn fast navigation in the Linux editor using keyboard shortcuts: enable line numbers, jump to lines, end/beginning of lines, search with slash, and jump to matching brackets.
Master Vim basics for the command line: delete with x, d, and dd; copy to the clipboard; paste with p; select visually with v; and undo changes.
Explore how Linux permissions govern access by walking through a case where a shared /static folder is created outside the home directory, then owned and managed via sudo and chown.
Describe how the shell searches for commands using the path environment variable and how to make a script executable with chmod, covering owner, group, and others permissions.
Install and switch from bash to the edge zsh shell, enable syntax highlighting, and prettify the terminal prompt for a more interactive, efficient command experience.
Learn to connect to remote servers via ssh using PuTTY or OpenSSH, then run commands, edit files, and manage configurations.
Start a long-running remote task with nohup and an ampersand to keep it running after disconnect, and redirect output to a log file for later review.
*** UPDATES ***
Added section on remote connectivity and keeping processes running even on disconnect.
Added video on using Windows Subsystem for Linux for this course
Get excellent support for the course: all questions answered within 24 hours!
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.