Linux Operating System Training
Mastery of Linux Systems and Server Administration
Course Code: 420-XX
Session: Winter 2025
Instructor: Haythem Rehouma
Institution: inskillflow academy
Course Overview
This course will teach you to master Linux operating systems, system administration, and server management. From introduction to advanced concepts, you will learn to administer, secure, and optimize Linux systems in production.
Learning Objectives
By the end of this course, you will be able to:
- Understand the architecture and fundamental concepts of Linux
- Administer Linux systems (installation, configuration, maintenance)
- Manage users, permissions, and system security
- Master the shell and automation with scripts
- Configure and manage Linux networks
- Administer system services and daemons
- Monitor and debug Linux systems
- Deploy and maintain Linux servers in production
Teaching Approach
70% Practical - 30% Theory
Each module combines:
- Detailed theoretical explanations with Mermaid diagrams
- Hands-on labs
- Real-world examples and use cases
- Validation exercises and quizzes
📚 Course Plan - 13 Modules
This training is structured into 13 progressive modules that will take you from the introduction to Linux to advanced server administration in production. Each module builds on what you learned in the previous ones.
Progression Overview
Module Structure
Each module includes:
- Theoretical chapters with diagrams and examples
- Practical labs to apply the concepts
- Assessment quizzes to check your knowledge
- Supplementary resources for further learning
MODULE 1 - Introduction to Linux
Duration: 2-3 sessions
Content:
- What is Linux and why use it?
- History and evolution (Unix → Linux)
- Linux distributions (Debian, Red Hat, Ubuntu, etc.)
- Linux architecture (Kernel, Shell, File System)
- Comparison with other operating systems
Objectives:
- Understand the role of Linux in modern computing
- Identify the main components
- Discover the Linux ecosystem
Labs:
- Lab 1.1: Installation and First Use of Linux
MODULE 2 - Linux System Architecture
Duration: 2-3 sessions
Content:
- Detailed system architecture
- Linux Kernel
- System processes (init, systemd)
- Memory management and swap
- Virtual File System (VFS)
- System components
- Shell and command interpreter
- System libraries
- System utilities
- Boot process and run levels
- Inter-process communication
Objectives:
- Understand the internal workings of Linux
- Identify the role of each component
- Visualize system communication flows
Labs:
- Lab 2.1: Boot Process Analysis
- Lab 2.2: System Architecture Exploration
- Lab 2.3: System Components Monitoring
MODULE 3 - File System
Duration: 3-4 sessions
Content:
- Linux File System Structure (FHS)
- Navigation and basic commands (cd, ls, pwd, mkdir, rmdir)
- File management (cp, mv, rm, touch)
- File permissions (chmod, chown, chgrp)
- File search (find, locate, which, whereis)
- Symbolic and hard links
- File system types (ext4, xfs, btrfs)
Objectives:
- Navigate efficiently in the file system
- Manage files and directories
- Understand and manage permissions
- Use search tools
Labs:
- Lab 3.1: Navigation and Creation
- Lab 3.2: Permissions Management
- Lab 3.3: Search and Links
- Lab 3.4: Complete Practice
MODULE 4 - Process Management
Duration: 3-4 sessions
Content:
- Introduction to Linux processes
- Process visualization (ps, top, htop)
- Process control (kill, killall, pkill)
- Priorities and nice values
- Background processes (jobs, fg, bg, nohup)
- System signals
- Zombie and orphan processes
Objectives:
- Understand the process lifecycle
- Visualize and control processes
- Manage priorities and jobs
- Use system signals
Labs:
- Lab 4.1: Process Visualization
- Lab 4.2: Process Control
- Lab 4.3: Priorities and Nice
- Lab 4.4: Background Jobs
MODULE 5 - Users and Permissions
Duration: 2-3 sessions
Content:
- User management (useradd, usermod, userdel)
- Group management (groupadd, groupmod, groupdel)
- File permissions (chmod, chown, chgrp)
- Numeric and symbolic permissions
- Sudo and elevated privileges
- ACL (Access Control Lists)
- User quotas
Objectives:
- Create and manage users and groups
- Understand and configure permissions
- Use sudo securely
- Implement ACLs
Labs:
- Lab 5.1: User Management
- Lab 5.2: Group Management
- Lab 5.3: Advanced Permissions
- Lab 5.4: Best Practices
MODULE 6 - Shell Scripting
Duration: 3-4 sessions
Content:
- Introduction to Bash scripting
- Variables and parameters
- Control structures (if, for, while)
- Functions and reusable scripts
- Error handling and debugging
- Cron and crontab: task scheduling
- Cron syntax and practical examples
- System cron vs user cron
- systemd timers (modern alternative)
Objectives:
- Master Bash shell scripting
- Automate administrative tasks
- Schedule tasks with cron and systemd timers
- Create robust and maintainable scripts
Labs:
- Lab 6.1: Basic Bash Scripts
- Lab 6.2: Advanced Scripts with Functions
- Lab 6.3: Cron Configuration and Use
- Lab 6.4: systemd Timers and Modern Scheduling
MODULE 7 - Network and Configuration
Duration: 3-4 sessions
Content:
- Linux network configuration
- Network interfaces (ifconfig, ip, nmcli)
- Routing and routing tables
- DNS and name resolution
- Static IP vs DHCP configuration
- Basic firewall (iptables, firewalld)
- Network troubleshooting
Objectives:
- Configure and manage Linux networks
- Understand routing and DNS
- Secure network communications
- Diagnose network issues
Labs:
- Lab 7.1: Network Interface Configuration
- Lab 7.2: Routing and Routing Tables
- Lab 7.3: DNS Configuration
- Lab 7.4: Firewall and Network Security
MODULE 8 - Services and Daemons
Duration: 3-4 sessions
Content:
- Service management with systemd
- Unit files (service, timer, target)
- Starting, stopping, and restarting services
- Startup services (enable/disable)
- systemd journal (journalctl)
- Advanced cron: crontab, /etc/cron.d, anacron
- Cron log management
- Apply best practices for scheduled tasks
- Alternatives: at, batch
Objectives:
- Administer system services
- Understand systemd and unit files
- Master cron and scheduled tasks
- Manage logs and monitoring
Labs:
- Lab 8.1: systemd Service Management
- Lab 8.2: Creating Custom Services
- Lab 8.3: Advanced Cron and Crontab
- Lab 8.4: systemd Timers vs Cron
MODULE 9 - System Security
Duration: 3-4 sessions
Content:
- Authentication and authorization
- User and group management
- File permissions (chmod, chown, ACL)
- Sudo and elevated privileges
- Firewall (iptables, firewalld, ufw)
- SELinux and AppArmor (introduction)
- Security auditing
- Cron security: permissions and environment
Objectives:
- Secure a Linux system
- Manage permissions and access
- Configure and maintain a firewall
- Audit system security
Labs:
- Lab 9.1: Permissions Management
- Lab 9.2: Sudo Configuration
- Lab 9.3: Firewall and iptables Rules
- Lab 9.4: Security Audit and Logs
MODULE 10 - Package Management
Duration: 2-3 sessions
Content:
- Package managers (apt, yum, dnf, pacman)
- Software installation and updates
- Repositories and package sources
- Dependency resolution
- Compilation from source
- Managing .deb and .rpm packages
- Snap, Flatpak, and AppImage
Objectives:
- Install and manage Linux software
- Understand different package systems
- Resolve dependency issues
- Use modern tools (Snap, Flatpak)
Labs:
- Lab 10.1: Management with apt/yum
- Lab 10.2: Repository Configuration
- Lab 10.3: Compilation from Source
- Lab 10.4: Snap and Flatpak
MODULE 11 - Monitoring and Logs
Duration: 3-4 sessions
Content:
- System monitoring (top, htop, iotop, vmstat)
- CPU, memory, disk usage
- Processes and resources
- System logs (/var/log, journald)
- Log rotation (logrotate)
- Cron monitoring: logs and notifications
- Monitoring tools (sar, sysstat)
- Alerts and notifications
Objectives:
- Monitor system performance
- Analyze logs and diagnose issues
- Configure log rotation
- Monitor scheduled tasks
Labs:
- Lab 11.1: System Resource Monitoring
- Lab 11.2: Log Analysis with journalctl
- Lab 11.3: Logrotate Configuration
- Lab 11.4: Cron Monitoring and Alerts
MODULE 12 - Advanced Administration
Duration: 3-4 sessions
Content:
- Server administration in production
- Backup and restoration
- System maintenance and updates
- Advanced troubleshooting
- Performance tuning
- Automation with cron and scripts
- Apply best practices for scheduled tasks
- Documentation and procedures
Objectives:
- Administer Linux servers in production
- Implement backup strategies
- Optimize performance
- Automate administrative tasks
Labs:
- Lab 12.1: Backup Strategies
- Lab 12.2: Performance Tuning
- Lab 12.3: Complete Automation with Cron
- Lab 12.4: Final Project - Complete Linux Server
Tools and Technologies
Development Environment
- Bash / Zsh: Linux Shells
- SSH: Secure remote access
- Vim / Nano / Emacs: Text editors
- Git: Version control
- tmux / screen: Terminal multiplexers
Linux Distributions
- Ubuntu / Debian: Debian-based distributions
- CentOS / RHEL / Fedora: Red Hat-based distributions
- Arch Linux: Advanced distribution
- SUSE / openSUSE: Enterprise distribution
Complementary Tools
- systemd: Service manager
- rsync / scp: File transfer
- cron / systemd timers: Task scheduling
- iptables / firewalld: Firewall
- logrotate / journald: Log management
Skills you will develop
Technical Skills
System Administration:
- Installation and configuration of Linux systems
- User and permission management
- Service and process administration
- System maintenance and updates
Scripting and Automation:
- Shell scripting (Bash)
- Administrative task automation
- Scheduling with cron and systemd
- Configuration management
Network and Security:
- Linux network configuration
- Firewall and system security
- SSH and secure remote access
- System monitoring and logs
Professional Skills
- Understanding of the Linux ecosystem
- Production server administration
- Complex system problem-solving
- Collaboration with IT/DevOps teams
Assessments
Practical Work (50%)
- TP1: System configuration and administration (15%)
- TP2: Scripting and automation (20%)
- TP3: Complete Linux server project (15%)
Labs (30%)
- Weekly labs (25%)
- Participation and engagement (5%)
Final Project (20%)
- Configured and secured Linux server (15%)
- Documentation and presentation (5%)
Total: 100%
Prerequisites
Prior Knowledge
- Basic computer knowledge
- Computer usage
- Basic operating system concepts
- No prior Linux knowledge required
Required Equipment
- Computer with at least 4 GB RAM (8 GB recommended)
- 20 GB of free disk space
- Stable Internet connection
- 64-bit processor
Software to Install
- Linux distribution (Ubuntu, Debian, or VM)
- Terminal/SSH client
- Text editor (VS Code, Vim, or Nano)
- Root or sudo access
Course Resources
Official Documentation
Recommended Books
- "Linux Command Line and Shell Scripting Bible" - Richard Blum
- "The Linux Command Line" - William Shotts
- "Linux Administration Handbook" - Evi Nemeth
Community
Course Progression
[🔄 IN PROGRESS] MODULE 1 - Introduction to Linux
[📝 UPCOMING] MODULE 2 - System Architecture
[📝 UPCOMING] MODULE 3 - File System
[📝 UPCOMING] MODULE 4 - Process Management
[📝 UPCOMING] MODULE 5 - Users and Permissions
[📝 UPCOMING] MODULE 6 - Shell Scripting
[📝 UPCOMING] MODULE 7 - Network and Configuration
[📝 UPCOMING] MODULE 8 - Services and Daemon
[📝 UPCOMING] MODULE 9 - System Security
[📝 UPCOMING] MODULE 10 - Package Management
[📝 UPCOMING] MODULE 11 - Monitoring and Logs
[📝 UPCOMING] MODULE 12 - Advanced Administration
Start Now!
Explore the modules in the sidebar and begin your Linux learning journey!
Enjoy the course!
Last updated: December 2024