Instructor: Mostafa Hamouda
Level: Beginner to Intermediate
Status: Active
Welcome to the Linux Administration Course repository. This curriculum is designed and taught by Mostafa Hamouda to take you from a Linux novice to a capable System Administrator.
Whether you are looking to manage servers, deploy applications, or automate tasks, this course covers the essential skills required in the modern IT infrastructure landscape (DevOps, Cloud, and On-Premise).
By the end of this course, students will be able to:
-
Install and configure Linux Enterprise systems (RHEL/CentOS/Ubuntu).
-
Master the Command Line Interface (CLI).
-
Manage users, groups, and permissions securely.
-
Configure networking, firewalls, and SSH.
-
Manage software packages and repositories.
-
Handle storage, disk partitioning, and LVM.
-
Perform basic Bash scripting and task automation.
-
Troubleshoot common system issues.
To get the most out of this course, you should have:
Hardware: A computer (Windows, Mac, or Linux) with at least 8GB RAM to run Virtual Machines.
Software: VirtualBox or VMWare Workstation installed.
Mindset: A willingness to learn through trial and error!
Note: No prior Linux experience is required. We start from scratch.
-
History of Unix/Linux.
-
The Linux Kernel vs. Distributions.
-
Setting up the Lab Environment (VirtualBox).
-
Installing Linux (Manual Partitioning vs. Automatic).
-
Shell basics and syntax.
-
Navigation (cd, ls, pwd).
-
File management (cp, mv, rm, touch, mkdir).
-
Viewing file content (cat, less, head, tail).
-
User Management: Creating users, modifying defaults, and user locking (useradd, usermod).
-
Group Management: Understanding groups and /etc/group.
-
Permissions: Symbolic vs. Numeric permissions (chmod, chown, chgrp).
-
Special Permissions: SUID, SGID, and Sticky Bit.
-
Understanding Processes (PID, PPID).
-
Monitoring system activity (top, htop, ps).
-
Managing background/foreground jobs.
-
Systemd: Starting, stopping, and enabling services (systemctl).
-
RPM/YUM/DNF: Managing packages on Red Hat based systems.
-
APT/DPKG: Managing packages on Debian/Ubuntu based systems.
-
Compiling software from source (Tarballs).
-
Disk partitioning (fdisk, gdisk).
-
File Systems (ext4, xfs).
-
Mounting and unmounting (mount, /etc/fstab).
-
LVM (Logical Volume Manager): Creating PVs, VGs, and LVs.
-
Network configuration (Static IP vs DHCP).
-
Hostname resolution (/etc/hosts).
-
SSH: Secure remote access and key-based authentication.
-
Firewall: Basic configuration using firewalld or ufw.
-
Shebang and script execution.
-
Variables and user input.
-
Conditional statements (if/else).
-
Loops (for, while).
-
Cron jobs and scheduling.
-
We will be using virtual machines for all exercises to prevent data loss on your personal computer.
-
Download the ISO image ( via official vendor site ).
-
Create a VM with 2 CPU Cores and 4GB RAM.
-
Bridge the network adapter (optional) or use NAT.
Students are encouraged to fork this repository and submit Pull Requests if they find typos or want to add useful scripts to the community_scripts folder.
Fork the Project
Create your Feature Branch (git checkout -b feature)
Commit your Changes (git commit -m 'Add some ')
Push to the Branch (git push origin feature)
Open a Pull Request
Happy Learning!