Linux Fundamentals
Understanding Linux Operating System
- What you Need to Know
-
Linux History and Philosophy
- Understanding of Unix origins and Linux development by Linus Torvalds
- Open-source philosophy and GNU/Linux ecosystem
- Different Linux distributions and their purposes (Ubuntu, CentOS, Debian, Fedora)
- Resources:
- History of Linux - Linux Foundation - Comprehensive Linux history and development
- What is Linux? - Red Hat - Linux fundamentals and ecosystem overview
- GNU/Linux Philosophy - GNU Project - Understanding free software principles
-
Linux Architecture and Components
- Kernel, shell, and user space concepts
- Understanding of system calls and hardware abstraction
- File system hierarchy and organization principles
- Resources:
- Linux Architecture Overview - GeeksforGeeks - System architecture fundamentals
- Linux Kernel Documentation - Official kernel documentation
- Filesystem Hierarchy Standard - Standard directory structure
-
Command Line Interface Mastery
- What you Need to Know
-
Terminal and Shell Basics
- Understanding terminals, shells (bash, zsh, fish) and command prompt
- Navigation commands (cd, pwd, ls) and directory traversal
- Command structure, options, arguments, and help systems
- Resources:
- Linux Command Line Basics - Ubuntu - Beginner-friendly command line tutorial
- Bash Guide for Beginners - TLDP - Comprehensive bash shell guide
- Command Line Crash Course - Learn Code the Hard Way - Intensive command line training
-
Essential Commands and Operations
- File and directory operations (mkdir, rmdir, cp, mv, rm)
- File viewing and editing (cat, less, more, head, tail)
- Text processing and searching (grep, find, locate, which)
- Resources:
- Linux Commands Cheat Sheet - Red Hat - Essential command reference
- ExplainShell - Interactive command explanation tool
- Linux Command Examples - Tecmint - Practical command usage examples
-
Command Line Efficiency and Shortcuts
- Tab completion, command history, and keyboard shortcuts
- Pipes, redirection, and command chaining
- Aliases, functions, and environment customization
- Resources:
- Bash Shortcuts and Tips - DigitalOcean - Productivity enhancement techniques
- Linux Productivity Tips - Linux Journal - Advanced command line techniques
- Command Line Productivity - MIT - MIT's command line efficiency course
-
File System and Directory Structure
- What you Need to Know
-
Linux File System Hierarchy
- Understanding root directory (/) and major subdirectories
- System directories (/bin, /sbin, /etc, /var, /usr, /home)
- Temporary and runtime directories (/tmp, /proc, /sys)
- Resources:
- Linux Directory Structure - GeeksforGeeks - Complete directory hierarchy explanation
- File System Hierarchy - Linux Documentation - Detailed filesystem organization
- Understanding /proc filesystem - Virtual filesystem documentation
-
File Types and Attributes
- Regular files, directories, symbolic links, and special files
- File permissions and ownership concepts (user, group, other)
- Hidden files, file extensions, and naming conventions
- Resources:
- Linux File Types - Linuxize - Understanding different file types
- File Permissions Tutorial - DigitalOcean - Comprehensive permissions guide
- Symbolic Links Guide - Linux Handbook - Creating and managing symbolic links
-
File Operations and Management
- Creating, copying, moving, and deleting files and directories
- File compression and archiving (tar, gzip, zip)
- File searching and location techniques
- Resources:
- File Management Commands - Linux Config - Essential file operations
- Archive and Compression - TLDP - tar, gzip, and compression tools
- Find Command Tutorial - Tecmint - Advanced file searching techniques
-
Text Processing and File Manipulation
- What you Need to Know
-
Text Viewing and Basic Editing
- File content viewing (cat, less, more, head, tail)
- Basic text editing with nano and introduction to vim
- Text streaming and real-time file monitoring
- Resources:
- Nano Text Editor Guide - Linux Hint - User-friendly text editor tutorial
- Vim Basics Tutorial - OpenVim - Interactive vim learning platform
- Text Processing Tools - Linux Journey - Comprehensive text manipulation guide
-
Pattern Matching and Text Search
- grep command for pattern matching and regular expressions
- Text searching across files and directories
- Basic regular expressions for pattern matching
- Resources:
- Grep Command Tutorial - DigitalOcean - Comprehensive grep usage guide
- Regular Expressions Basics - RegexOne - Interactive regular expression tutorial
- Linux Text Processing - TLDP - Advanced text processing techniques
-
Text Manipulation and Processing
- Text transformation with sed and awk
- Sorting, counting, and unique operations (sort, uniq, wc)
- Text formatting and column manipulation
- Resources:
- Sed Tutorial - Grymoire - Comprehensive sed stream editor guide
- Awk Programming - GNU - Official awk programming manual
- Text Processing Examples - Linux Config - Practical text manipulation examples
-
File Permissions and Security
- What you Need to Know
-
Understanding Permission System
- User, group, and other permission categories
- Read, write, and execute permissions for files and directories
- Numeric and symbolic permission notation
- Resources:
- Linux Permissions Explained - Linux Handbook - Complete permissions system guide
- File Permissions Calculator - Interactive permission calculator tool
- Understanding umask - Red Hat - Default permission settings
-
Permission Management Commands
- chmod command for changing file permissions
- chown and chgrp for ownership management
- Special permissions (setuid, setgid, sticky bit)
- Resources:
- Chmod Command Examples - Tecmint - Practical permission modification examples
- Chown Command Guide - Linuxize - File ownership management
- Special Permissions - DigitalOcean - Advanced permission concepts
-
Security Best Practices
- Principle of least privilege in permission assignment
- Secure file and directory creation practices
- Understanding security implications of different permissions
- Resources:
- Linux Security Best Practices - CIS - Comprehensive security guidelines
- File Security Guide - SANS - Security-focused file management
- Linux Hardening Guide - Red Hat - System security hardening
-
Process Management and System Information
- What you Need to Know
-
Understanding Processes and Jobs
- Process concepts, PID, and process hierarchy
- Foreground and background job execution
- Process states and lifecycle management
- Resources:
- Linux Processes Explained - Linux Journey - Process fundamentals and monitoring
- Process Management - TLDP - Kernel-level process concepts
- Job Control in Bash - GNU - Job management techniques
-
Process Monitoring and Control
- Process viewing with ps, top, and htop commands
- Process termination and signal handling (kill, killall)
- Process priority and nice values
- Resources:
- Process Monitoring Tools - Tecmint - Comprehensive process monitoring guide
- Kill Command Tutorial - Linuxize - Process termination techniques
- Process Priority Management - DigitalOcean - Priority and resource management
-
System Information and Resource Monitoring
- System information commands (uname, whoami, id, date)
- Resource monitoring (free, df, du, uptime)
- Hardware information and system specifications
- Resources:
- System Information Commands - Linux Config - Essential system info commands
- Resource Monitoring Guide - Red Hat - System performance monitoring
- Hardware Information Tools - Tecmint - Hardware discovery commands
-
Input/Output Redirection and Pipes
- What you Need to Know
-
Standard Streams and Redirection
- Understanding stdin, stdout, and stderr streams
- Output redirection to files (>, >>, 2>, &>)
- Input redirection and here documents
- Resources:
- I/O Redirection Tutorial - TLDP - Comprehensive redirection guide
- Bash Redirection - Linux Journey - Interactive redirection learning
- Advanced Redirection - DigitalOcean - Advanced I/O techniques
-
Pipes and Command Chaining
- Connecting commands with pipes (|)
- Command substitution and process substitution
- Building complex command pipelines
- Resources:
- Linux Pipes Tutorial - GeeksforGeeks - Pipe fundamentals and usage
- Command Substitution Guide - Bash Hackers - Advanced command substitution
- Pipeline Examples - Linux Config - Practical pipeline construction
-
Advanced Stream Processing
- tee command for splitting output streams
- xargs for argument processing and command building
- Named pipes (FIFOs) for inter-process communication
- Resources:
- Tee Command Examples - Linuxize - Output splitting and logging
- Xargs Tutorial - DigitalOcean - Argument processing and batch operations
- Named Pipes Guide - Linux Journal - Inter-process communication techniques
-
Environment Variables and Shell Configuration
- What you Need to Know
-
Environment Variables and Shell Variables
- Understanding environment vs. shell variables
- Common system variables (PATH, HOME, USER, SHELL)
- Setting and exporting variables
- Resources:
- Environment Variables Guide - DigitalOcean - Variable management comprehensive guide
- Bash Variables - TLDP - Shell variable fundamentals
- PATH Variable Tutorial - Linux Hint - Understanding and modifying PATH
-
Shell Configuration and Customization
- Profile files (.bashrc, .bash_profile, .profile)
- Aliases and functions for command shortcuts
- Prompt customization and shell options
- Resources:
- Bash Configuration Files - Linux Journey - Configuration file hierarchy and usage
- Bash Aliases Guide - Linuxize - Creating and managing command aliases
- Bash Prompt Customization - ArchWiki - Advanced prompt configuration
-
Command History and Shell Features
- Command history management and searching
- Tab completion and programmable completion
- Shell options and behavior modification
- Resources:
- Bash History Guide - DigitalOcean - History management and expansion
- Tab Completion Tutorial - Linux Config - Completion system configuration
- Bash Options Reference - GNU - Shell behavior customization
-
Package Management and Software Installation
- What you Need to Know
-
Understanding Package Managers
- Distribution-specific package managers (apt, yum, dnf, pacman)
- Package repositories and software sources
- Package dependencies and conflict resolution
- Resources:
- Package Management Comparison - DistroWatch - Package manager overview by distribution
- APT Tutorial - Ubuntu - Debian/Ubuntu package management
- YUM/DNF Guide - Red Hat - Red Hat package management
-
Software Installation and Management
- Installing, updating, and removing packages
- Searching for packages and package information
- Managing package repositories and keys
- Resources:
- Linux Package Installation Guide - Tecmint - Multi-distribution package management
- Software Installation Methods - Linux Journey - Various installation approaches
- Repository Management - DigitalOcean - Repository configuration and management
-
Alternative Installation Methods
- Compiling from source code (configure, make, make install)
- Snap packages and Flatpak applications
- AppImage and portable applications
- Resources:
- Compiling Software Guide - TLDP - Source code compilation process
- Snap Packages Tutorial - Ubuntu - Universal package management
- Flatpak Guide - Flatpak.org - Cross-distribution app packaging
-
Basic System Configuration
- What you Need to Know
-
System Settings and Configuration Files
- Understanding configuration file locations and formats
- Editing system configuration safely
- Backup and recovery of configuration files
- Resources:
- Linux Configuration Files - GeeksforGeeks - Important system configuration locations
- Configuration Management - Red Hat - System configuration best practices
- Config File Backup Strategies - Linux Journal - Configuration backup and versioning
-
Time and Date Configuration
- System time and timezone management
- Network time synchronization (NTP)
- Date and time display formatting
- Resources:
- Time Management in Linux - DigitalOcean - Time synchronization setup
- Timezone Configuration - Red Hat - Timezone management
- NTP Configuration Guide - Ubuntu - Network time protocol setup
-
Locale and Language Settings
- System locale configuration and character encoding
- Language and regional settings
- Keyboard layout configuration
- Resources:
- Locale Configuration - ArchWiki - Comprehensive locale setup guide
- Language Settings - Ubuntu - Language and locale configuration
- Character Encoding Guide - Linux Documentation - Unicode and character encoding
-
Getting Started Exercises and Practice
- What you Need to Know
-
Hands-On Practice Scenarios
- Set up Linux virtual machine and explore different distributions
- Practice essential commands through daily tasks and challenges
- Complete beginner-friendly Linux projects and tutorials
- Resources:
- Linux Upskill Challenge - 20-day structured Linux learning challenge
- OverTheWire Bandit - Progressive Linux command line challenges
- Linux Survival - Interactive command line tutorial
-
Building Command Line Proficiency
- Daily command line usage for file management and system tasks
- Creating and managing directory structures and file organizations
- Developing muscle memory for essential commands and shortcuts
- Resources:
- Command Line Challenge - Interactive command line problem solving
- Bash Scripting Exercises - HackerRank - Programming challenges for shell skills
- Linux Academy Hands-On Labs - Practical Linux scenarios and exercises
-
Ready to Continue? Master system administration with Module 2: System Administration to learn user management, process control, and system configuration!