Linux
1 PART I β Linux Fundamentals (Beginner)
2 PART II β Command Line Essentials
3 PART III β Intermediate System Administration
4 PART IV β Advanced Linux Skills
5 PART V β Server Administration (Expert)
6 PART VI β DevOps and Cloud
7 PART VII β Master Topics
Where to Move
Move chapter:
- β° 1 PART I β Linux Fundamentals (Beginner)
- β° 1.1 What Is Linux?
- β° 1.1.1 What is an operating system
- β° 1.1.2 History of Unix and Linux
- β° 1.1.3 The Linux kernel
- β° 1.1.4 GNU and the Free Software Foundation
- β° 1.1.5 Open source philosophy
- β° 1.1.6 Where Linux is used today
- β° 1.1.7 Desktop vs server vs embedded Linux
-
- β° 1.2 Choosing a Linux Distribution
- β° 1.2.1 What is a distribution?
- β° 1.2.2 Package formats (deb, rpm, pacman)
- β° 1.2.3 Popular distributions
- β° 1.2.3.1 Ubuntu
- β° 1.2.3.2 Debian
- β° 1.2.3.3 Fedora
- β° 1.2.3.4 Arch Linux
- β° 1.2.3.5 openSUSE
-
- β° 1.2.4 Rolling vs fixed release
- β° 1.2.5 Choosing the right distribution
-
- β° 1.3 Installing Linux
- β° 1.3.1 Creating a bootable USB
- β° 1.3.2 Installing on real hardware
- β° 1.3.3 Dual booting with Windows
- β° 1.3.4 Installing in a virtual machine
- β° 1.3.5 Partitioning
- β° 1.3.5.1 `/` (root)
- β° 1.3.5.2 `/home`
- β° 1.3.5.3 Swap
-
- β° 1.3.6 First-time setup
-
- β° 1.4 First Steps After Installation
- β° 1.4.1 Desktop environment basics
- β° 1.4.2 Updating the system
- β° 1.4.3 Installing essential tools
- β° 1.4.4 Setting up drivers
- β° 1.4.5 Using the software center
-
- β° 1.5 Linux Filesystem Hierarchy
- β° 1.5.1 Overview of the root filesystem
- β° 1.5.2 Important directories
- β° 1.5.2.1 `/etc`
- β° 1.5.2.2 `/var`
- β° 1.5.2.3 `/usr`
- β° 1.5.2.4 `/tmp`
- β° 1.5.2.5 `/dev`
- β° 1.5.2.6 `/proc`
- β° 1.5.2.7 `/sys`
-
- β° 1.5.3 File types
- β° 1.5.4 Absolute vs relative paths
-
- β° 1.6 The Linux Graphical Environment
- β° 1.6.1 GNOME
- β° 1.6.2 KDE Plasma
- β° 1.6.3 XFCE
- β° 1.6.4 File managers
- β° 1.6.5 System settings
- β° 1.6.6 Workspaces and window management
-
-
- β° 2 PART II β Command Line Essentials
- β° 2.1 Terminal and Shell Basics
- β° 2.1.1 What is a shell?
- β° 2.1.2 Bash vs Zsh vs Fish
- β° 2.1.3 Command structure
- β° 2.1.4 Environment variables
- β° 2.1.5 Getting help
- β° 2.1.6 Command history and autocomplete
-
- β° 2.2 Files and Directories
- β° 2.2.1 Listing files
- β° 2.2.2 Navigating directories
- β° 2.2.3 File operations
- β° 2.2.4 Wildcards and globbing
- β° 2.2.5 Searching files
-
- β° 2.3 Viewing and Editing Text Files
- β° 2.3.1 Viewing tools
- β° 2.3.2 Editing with nano
- β° 2.3.3 Introduction to vim
- β° 2.3.4 Input/output redirection
-
- β° 2.4 Users, Permissions, and Ownership
- β° 2.4.1 Users and groups
- β° 2.4.2 Permission types (r, w, x)
- β° 2.4.3 Changing permissions
- β° 2.4.4 Changing ownership
- β° 2.4.5 Using sudo
-
- β° 2.5 Package Management
- β° 2.5.1 Software repositories
- β° 2.5.2 APT (Debian/Ubuntu)
- β° 2.5.3 DNF (Fedora/RHEL)
- β° 2.5.4 Pacman (Arch Linux)
- β° 2.5.5 Snap, Flatpak, AppImage
- β° 2.5.6 System upgrades
-
- β° 2.6 Working with Processes
- β° 2.6.1 What is a process?
- β° 2.6.2 Viewing processes
- β° 2.6.3 Killing processes
- β° 2.6.4 Foreground and background jobs
- β° 2.6.5 System services and daemons
-
- β° 2.7 Introduction to Shell Scripting
- β° 2.7.1 Writing your first script
- β° 2.7.2 Variables
- β° 2.7.3 Conditionals
- β° 2.7.4 Loops
- β° 2.7.5 Functions
- β° 2.7.6 Making scripts executable
-
-
- β° 3 PART III β Intermediate System Administration
- β° 3.1 Systemd and Service Management
- β° 3.1.1 What is systemd?
- β° 3.1.2 Managing services (systemctl)
- β° 3.1.3 Boot targets
- β° 3.1.4 System logs (journalctl)
- β° 3.1.5 Creating custom services
-
- β° 3.2 Storage and Filesystems
- β° 3.2.1 Devices and partitions
- β° 3.2.2 Filesystems (EXT4, XFS, Btrfs)
- β° 3.2.3 Mounting and unmounting
- β° 3.2.4 Disk usage tools
- β° 3.2.5 Archiving and compression (tar, gzip, xz)
-
- β° 3.3 Networking Fundamentals
- β° 3.3.1 IP addressing
- β° 3.3.2 Subnets and routing
- β° 3.3.3 DNS and hostnames
- β° 3.3.4 Networking tools (ip, ss, ping)
- β° 3.3.5 Editing network configuration files
-
- β° 3.4 User and Group Administration
- β° 3.4.1 User information files
- β° 3.4.2 Creating and removing users
- β° 3.4.3 Password policies
- β° 3.4.4 Managing groups
- β° 3.4.5 Shell configuration
-
- β° 3.5 System Monitoring
- β° 3.5.1 CPU and memory monitoring
- β° 3.5.2 Disk and I/O monitoring
- β° 3.5.3 Log files in /var/log
- β° 3.5.4 Boot performance
- β° 3.5.5 Monitoring running services
-
- β° 3.6 Backup and Restore
- β° 3.6.1 Backup strategies
- β° 3.6.2 Using rsync
- β° 3.6.3 Creating tar archives
- β° 3.6.4 Using snapshot systems
- β° 3.6.5 Automating backups
-
- β° 3.7 Basic System Security
- β° 3.7.1 Firewalls (UFW, firewalld)
- β° 3.7.2 Authentication policies
- β° 3.7.3 SSH security basics
- β° 3.7.4 SELinux and AppArmor overview
- β° 3.7.5 Intrusion detection basics
-
-
- β° 4 PART IV β Advanced Linux Skills
- β° 4.1 Advanced Shell Scripting
- β° 4.1.1 Script structure
- β° 4.1.2 Error handling
- β° 4.1.3 Debugging scripts
- β° 4.1.4 Scheduled tasks (cron)
-
- β° 4.2 The Linux Boot Process
- β° 4.2.1 BIOS vs UEFI
- β° 4.2.2 Understanding GRUB2
- β° 4.2.3 Kernel loading
- β° 4.2.4 initramfs
- β° 4.2.5 Troubleshooting boot issues
-
- β° 4.3 Kernel Management
- β° 4.3.1 What is the kernel?
- β° 4.3.2 Kernel modules
- β° 4.3.3 Kernel parameters
- β° 4.3.4 Compiling a custom kernel
- β° 4.3.5 Kernel versioning and updates
-
- β° 4.4 Advanced Filesystems and Storage
- β° 4.4.1 LVM concepts
- β° 4.4.2 Logical volumes
- β° 4.4.3 RAID levels
- β° 4.4.4 Full disk encryption (LUKS)
- β° 4.4.5 Snapshots and rollbacks
-
- β° 4.5 Network Services
- β° 4.5.1 SSH server configuration
- β° 4.5.2 NFS
- β° 4.5.3 Samba
- β° 4.5.4 FTP/SFTP
- β° 4.5.5 Firewalls in depth
-
- β° 4.6 Logging and Auditing
- β° 4.6.1 Systemd logging
- β° 4.6.2 Traditional logs in /var/log
- β° 4.6.3 Auditd
- β° 4.6.4 Log rotation
- β° 4.6.5 Creating custom logs
-
- β° 4.7 Virtualization and Containers
- β° 4.7.1 Virtual machines (KVM/QEMU)
- β° 4.7.2 Linux containers (LXC/LXD)
- β° 4.7.3 Docker fundamentals
- β° 4.7.4 Podman vs Docker
- β° 4.7.5 Container networking
-
-
- β° 5 PART V β Server Administration (Expert)
- β° 5.1 Web Servers
- β° 5.1.1 Apache basics
- β° 5.1.2 Nginx basics
- β° 5.1.3 Virtual hosts
- β° 5.1.4 SSL/HTTPS
- β° 5.1.5 Reverse proxy concepts
-
- β° 5.2 Database Servers
- β° 5.2.1 MySQL/MariaDB
- β° 5.2.2 PostgreSQL
- β° 5.2.3 Database backup strategies
- β° 5.2.4 Database hardening
-
- β° 5.3 Email Services
- β° 5.3.1 SMTP fundamentals
- β° 5.3.2 Configuring Postfix
- β° 5.3.3 IMAP/POP3 with Dovecot
- β° 5.3.4 Spam filtering systems
- β° 5.3.5 Email routing concepts
-
- β° 5.4 DNS and DHCP
- β° 5.4.1 Understanding DNS
- β° 5.4.2 Setting up BIND
- β° 5.4.3 DNS zones and records
- β° 5.4.4 DHCP server configuration
- β° 5.4.5 DNS troubleshooting
-
- β° 5.5 Load Balancing
- β° 5.5.1 HAProxy fundamentals
- β° 5.5.2 Nginx as a load balancer
- β° 5.5.3 Session persistence
- β° 5.5.4 High availability concepts
-
- β° 5.6 Clustering and High Availability
- β° 5.6.1 Failover principles
- β° 5.6.2 Pacemaker
- β° 5.6.3 Corosync
- β° 5.6.4 Cluster resource management
- β° 5.6.5 Distributed filesystems
-
-
- β° 6 PART VI β DevOps and Cloud
- β° 6.1 Linux for Developers
- β° 6.1.1 Compiler toolchains (gcc, make)
- β° 6.1.2 Git fundamentals
- β° 6.1.3 Debugging tools (gdb, strace)
- β° 6.1.4 Build automation (Makefile, CMake)
-
- β° 6.2 DevOps on Linux
- β° 6.2.1 CI/CD principles
- β° 6.2.2 YAML basics
- β° 6.2.3 GitHub Actions
- β° 6.2.4 GitLab CI/CD
- β° 6.2.5 Automated testing
-
- β° 6.3 Configuration Management
- β° 6.3.1 Ansible basics
- β° 6.3.2 Playbooks and inventories
- β° 6.3.3 Puppet overview
- β° 6.3.4 Chef overview
-
- β° 6.4 Infrastructure as Code
- β° 6.4.1 Terraform fundamentals
- β° 6.4.2 Providers and resources
- β° 6.4.3 Modules
- β° 6.4.4 Cloud provisioning with Terraform
-
- β° 6.5 Cloud Computing with Linux
- β° 6.5.1 Linux on AWS
- β° 6.5.2 Linux on Azure
- β° 6.5.3 Linux on GCP
- β° 6.5.4 Cloud networking basics
- β° 6.5.5 Scaling and monitoring
-
-
- β° 7 PART VII β Master Topics
- β° 7.1 Hardening a Linux System
- β° 7.1.1 Hardening principles
- β° 7.1.2 Kernel hardening
- β° 7.1.3 File integrity monitoring
- β° 7.1.4 Vulnerability scanning
-
- β° 7.2 Forensics and Incident Response
- β° 7.2.1 Collecting evidence
- β° 7.2.2 Log and file recovery
- β° 7.2.3 Analyzing suspicious processes
- β° 7.2.4 Incident response workflow
-
- β° 7.3 Performance Tuning
- β° 7.3.1 CPU tuning
- β° 7.3.2 Memory tuning
- β° 7.3.3 Disk and I/O optimization
- β° 7.3.4 Profiling tools
-
- β° 7.4 Writing Linux Tools
- β° 7.4.1 Bash-based tools
- β° 7.4.2 Python command-line tools
- β° 7.4.3 Writing tools in C
- β° 7.4.4 Using Linux system APIs
-
- β° 7.5 Linux Internals
- β° 7.5.1 Process lifecycle
- β° 7.5.2 Memory management
- β° 7.5.3 Signals and IPC
- β° 7.5.4 Namespaces
- β° 7.5.5 cgroups
-
- β° 7.6 Becoming a Linux Expert
- β° 7.6.1 Career paths
- β° 7.6.2 Certifications (RHCE, LFCS, LPIC)
- β° 7.6.3 Building a homelab
- β° 7.6.4 Contributing to open source
-
-
KAHIBARO