High-level architecture of Linux machine

  1. Understanding kernel, TTY terminal, PTY terminal, shell, and hardware interfacing

Building the VM-based learning environment for seamless hands-on experience

  1. Understanding VM and host machine
  2. How we automated the VM building workflow? What are the tools and resources required?
  3. How to install VirtualBox, Vagrant, and Git Bash in your host machine? (hands-on)
  4. How to build an automated Ubuntu Linux 18.04 server-based VM? (hands-on)
  5. Managing the Ubuntu Linux 18.04 server VM from CLI (hands-on)

Terminal-based text editors

  1. What is Vim and Nano? Why we use Vim and Nano text editors?
  2. How to use Vim and Nano text editors? (hands-on)

Kernel

  1. What is the importance of the Linux kernel in the DevOps world?
  2. How to access the kernel and its modules? (hands-on)
  3. How the Linux kernel bootstraps? How to correlate it with GRUB, the bootloader program?
  4. How to observe a bootstrapped Linux kernel? (hands-on)

Terminal

  1. How to understand the TTY and the PTY terminals?
  2. Visualizing the TTY and PTY terminal devices (hands-on)

Shell

  1. What is the significance of the Bash shell in the Linux world?
  2. How to install C-shell, Korn shell, and Z-shell? (hands-on)
  3. How to switch and access different shells? (hands-on)
  4. How the PTY terminal integrates with the shell? (hands-on)
  5. Understanding the usage of shell environment variables
  6. Managing the shell environment variables (hands-on)

User and group

  1. What is the best way to understand the users and groups?
  2. What happens when you create a user? (hands-on)
  3. Who is the Sudo user or Sudoer?
  4. How to create and manage a Sudo user? (hands-on)
  5. Managing the users and groups (hands-on)

Partition and filesystem

  1. How partition and filesystem concepts are relevant to the modern-day DevOps engineer?
  2. What are the four major steps involved in storage management?
  3. Understanding the major divisions and different types of partitions with limitations
  4. How to create and manage partitions effectively? (hands-on)
  5. Understanding the different types of filesystems and the use cases
  6. How to flash a filesystem into the partition? (hands-on)
  7. What are the ways to mount a filesystem? How to understand the filesystem mount configurations?
  8. How to persist filesystem mount configuration during system reboot? (hands-on)
  9. Understanding the structure of filesystem tree with it’s naming conventions
  10. Visualizing the structure of filesystem tree and navigating between filesystem paths (hands-on)
  11. Knowing the different types of files supported in Linux machine
  12. How to verify the different types of files in Linux machine? (hands-on)
  13. Understanding the concept of ownership and permission in filesystem
  14. How to apply and manage ownership and permission to a file and directory? (hands-on)

Process

  1. As a DevOps engineer, what is the significance of process management?
  2. Understanding the process management lifecycle in Linux machine
  3. What are the different modes of process execution? How to understand process signals?
  4. How to use signals to control foreground and background processes? (hands-on)
  5. How to interpret system performance based on CPU cores and RAM?
  6. Observing system load and system memory pressure to measure system performance (hands-on)

Package

  1. What is the significance of package management in the context of DevOps engineering?
  2. What are the two ways of installing software on a Linux machine? How to understand it better?
  3. How package managers like Debian and RPM simplifies the software installation mechanism?
  4. How to build/compile and install software from its source code? (hands-on)
  5. How to install and configure a software using a package manager? (hands-on)

Service

  1. How service management is relevant to the modern-day DevOps engineer?
  2. Interconnecting the init system, daemon programs, and the system services
  3. How to understand and correlate Systemd with SysV, the runlevel-based init system?
  4. Observing the implementation of Systemd and how it internally uses runlevels (hands-on)
  5. How to manage system services using SysV and Systemd? (hands-on)

Network

  1. What is the importance of networking in container technology and cloud infrastructure?
  2. Analogy-based understanding of networking components namely DHCP, IP, NIC, MAC, device, port, socket, traffic, connection, etc
  3. How to understand major classes and design a network namespace using the CIDR format?
  4. How to use simple commands to verify the networking stack of Linux machine? (hands-on)

SSH

  1. How popular DevOps tools like Ansible, Chef, Git, and Jenkins uses SSH protocol? How SSH is used in cloud servers and containers?
  2. Understanding the architecture of SSH protocol with key-based authentication
  3. How to install and configure an OpenSSH server? (hands-on)
  4. How to configure key-based authentication in an OpenSSH server based on the recommended practices? (hands-on)