Skip to content

Instantly share code, notes, and snippets.

@heinthanth
Created December 28, 2020 04:45
Show Gist options
  • Save heinthanth/456c1a480a8811468dd236c97309080f to your computer and use it in GitHub Desktop.
Save heinthanth/456c1a480a8811468dd236c97309080f to your computer and use it in GitHub Desktop.
linux-course-outline.md

Linux Course Outline

Introduction to Linux

  • History of Linux, Understanding Linux Kernel
  • Linux vs Other OSes
  • Linux family, Linux distributions and choosing distros

Installation ( Basics )

  • Downloading and Installing Hypervisor ( VirtualBox )
  • Setting up an Ubuntu VM.
  • Installing Ubuntu VM with basic partition management.

Understanding Linux Desktop Environment

  • Introduction to Linux Desktop Environment
  • Guided tour to GNOME desktop environment
  • Performing various operation with GNOME nautilus.
  • Exploring GNOME setting. Tweaking various parameters.

Understanding Linux File System

  • Guided tour to Linux Directory Structure
  • Commonly used files and their usage.
  • Let's explore them with nautilus

Introduction to Linux Command Line

  • First things first, cd, ls, pwd, commands.
  • Relative paths and absolute paths.
  • more options of ls.
  • Let's explore our Linux PC with above commands.

APT Package Manager ( Basics )

  • Installing, Removing Packages
  • Searching for Packages.
  • Using dpkg package manager and installing Debian packages.
  • Details process of apt and dpkg

More on Command Line ( Basics )

  • File operations, cat, less, head, tail, touch, mkdir, cp, mv, rm.
  • How file extensions works in Linux. (explore magic bytes with hexdump)
  • Find ( search ) file with find and locate commands.
  • There're still more options to use with find. ( we'll talk about it later )
  • basic operation with Command Line Text Editors (nano, vim)
  • Hard Link and Soft Link
  • Handling compression (zip, unzip, tar)
  • Understanding standard input, output, error.
  • Using pipe to redirect output.
  • too many commands ( I can't write down ) - let's learn on the fly.
  • Let's move to other module ( and continue later )

User Management

  • manage user (useradd, usermod userdel, groupadd, groupdel)
  • Understanding the magic word sudo.
  • Configuring sudoer
  • Enumerating users who, whoami, last, w, id.

Permission and Ownership

  • Understanding file permission and ownership (chmod, chown, chgrp)
  • Guide tour to ACL ( Access Control List )
  • Special permissions (sticky bit)
  • abusing sudo and sticy bits ( hacking tip )

Network Utils

  • HTTP client, FTP client ( curl, wget, ftp)
  • Managing remote machine (ssh, scp)
  • Getting, Setting ip address (ifconfig)
  • Understanding network tools basic (macchanger, dig, ping, ufw)

Other Utilities

  • Get system / kernal information (uname, hostnamectl, uptime, dmidecode)
  • Managing process and Jobs (systemctl, ps, kill, top, fg, bg)
  • Run Levels and other utils (shutdown, reboot, init 0-6)
  • Root password recovery

Disk Management

  • Managing Disk via GUI, fdisk, cfdisk, dd.
  • Mounting disk via terminal.
  • Logical Volume Manager (pvcreate, vgcreate, lvcreate)
  • What is swap and how to add them.
  • OS installation with LVM and (LUKS)

Recap

  • Let's play with redirection and find options.
  • More on software installation ( various format, build tools )
  • Development Setup
  • Ask me anything.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment