Mastering Linux: The Comprehensive Guide
About Course
Gain an almost unfair advantage by unlocking the Power of Linux: 70 hours of hands-on training. The ONLY course you need.
Do you sometimes feel lost with the command line and want to use Linux with confidence? Do you want to boost your daily efficiency and gain a significant advantage for your tech career?
This is where our Mastering Linux course steps in. Led by a top Udemy instructor with real-world expertise, we simplify Linux for you. Featuring 70+ hours of content, hands-on projects, and practical scenarios, and many quizzes – this course is all you need.
Dive in, sharpen your skills, and give your tech career a big lift.
Course Highlights:
-
Career Amplification: Propel your career forward. This course positions you as a sought-after Linux authority, primed for elite tech engagements.
-
Holistic Learning: Imparted by a distinguished instructor with seasoned experience at flagship tech giants. Experience a harmonious blend of real-world relevance and innovative teaching methods.
-
Stand Out in Tech Roles: Go beyond rote learning and grasp the reasoning behind each Linux concept. This enriches your learning experience, and makes you stand out from others.
-
Have Fun While Learning: Dive into a dynamic learning experience packed with practical examples, engaging quizzes, and real-world scenarios. Our interactive approach ensures you remain captivated while absorbing and applying Linux’s core principles. Learning has never been this enjoyable and impactful.
What is the structure of this course?
-
Bash CLI Mastery:
Dive deep into the Command Line Interface (CLI) with Bash and transform your day-to-day tech tasks. By mastering this foundational element, you’ll not only become comfortable in the command line environment but also gain the confidence to handle daily operations seamlessly.From executing basic commands to managing files, the CLI is an indispensable tool for any Linux enthusiast. Through our hands-on exercises and real-world scenarios, you’ll learn to use Bash with precision, making everyday tasks easier and more efficient.
-
Diving Deep into Linux:
This segment takes you to the heart of Linux, preparing you for tasks like server administration, network configuration or workstation setups. By exploring the intricate details of Linux processes, user groups, and permissions & SELinux, you’ll gain a foundational understanding how everything works. Delve into the boot process, package management, firewalls, networking.This knowledge ensures you’re well-equipped to manage servers, set up Linux networks, or tackle any related challenges. By the end of this section, you’ll navigate the Linux ecosystem with confidence, ready to handle real-world applications with precision.
-
Advanced Bash Scripting:
With your foundational knowledge in place, this section dives deeper into the real-world applications of Bash scripting. Learn to automate repetitive tasks, monitor system health, process vast datasets, and seamlessly integrate with web services. Delve into crafting intricate scripts that utilize loops, tests, and APIs.This module ensures you’re equipped with both theoretical insight and hands-on skills, ready to tackle diverse challenges in various tech environments.
Why This Course Stands Out:
-
Purposeful Learning: Emphasis on comprehension over plain memorization.
-
Practical Integration: Each session is meticulously crafted for real-tech applicability.
-
Comprehensive Curriculum: Over 70 hours of curated content for exhaustive learning.
-
Mentorship Excellence: Absorb wisdom from a top-tier Udemy maestro.
-
Practical Engagements: Dive into projects that mirror real-world scenarios.
-
Collaborative Learning: Vibrant forums for collective discussions and inquiries.
-
Everlasting Access: Pay once, benefit forever.
Embrace Your Linux Future:
Are you ready to say goodbye to feeling lost with Linux and the command line? Are you eager to command Linux like a professional and give your tech career a substantial boost?
Click that enroll button now and take the first step towards unlocking the power of Linux. You got nothing to loose and a world of opportunities to gain!
Course Content
—– Part 1 INTRODUCTION & INSTALLATION —–
-
Intro
04:17 -
Getting the Most out of this Course
04:17 -
What is Linux
00:00 -
What are Linux Distributions
05:58 -
Installing VirtualBox
07:35 -
Installing Ubuntu [VirtualBox]
11:45 -
Configuration of Ubuntu [VirtualBox]
12:51 -
Installing CentOS Stream [VirtualBox]
13:07 -
Configuration of CentOS Stream [VirtualBox]
12:55 -
How to create a Snapshot [VirtualBox]
04:15 -
Outlook
00:55
—– Part 2 BASH CLI —–
-
Bash CLI Intro
03:09
First Steps in the Terminal
-
Setting up your Terminal
07:04 -
Outputting Text the Command `echo`
09:18 -
Displaying and Changing the Current Directory the Commands `pwd` & `cd`
08:04 -
Listing Content in Directories the Command `ls`
07:38 -
Path Types Absolute Paths vs. Relative Paths
03:44 -
Executing Multiple Commands using `;`
03:40 -
Getting Terminal Help `man` and `–help`
06:41
First Steps with Linux
-
Intro
01:36 -
User Management Basics System Accounts, Regular Users, Superusers
03:30 -
Elevating Privileges the Command `sudo`
07:48 -
Optional [Troubleshooting] When `sudo` does not work
05:53 -
What is Package Management and how does it work
02:23 -
Updating and Installing Software in Ubuntu apt
10:47 -
Updating and Installing Software in CentOS Stream dnf
12:44 -
Extra lecture (optional) [MacOS] How to use Bash in MacOS (Part 1)
06:27 -
Extra lecture (optional) [MacOS] How to use Bash in MacOS (Part 2)
06:10
File Management (Part 1) – Organize Files & Directories
-
Intro
01:06 -
Creating Files and Directories the Commands `touch` & `mkdir`
04:40 -
Moving and Copying Files the Commands `mv` & `cp`
07:53 -
Deleting Files and Directories the Commands `rm` & `rmdir`
08:07 -
Exercise Intro Website File Management
01:46 -
Solution Website File Management
07:09 -
File Name Selection by Pattern Matching Globbing with “
13:20 -
Advanced Globbing Wildcards “, `[0-9]`, “
07:34 -
Pitfalls of Globbing Avoiding Traps in Pattern Matching
09:17 -
Exercise Navigate a nested folder structure using Globbing
04:07 -
Solution Navigate a nested folder structure using Globbing
04:42 -
Extra lecture (optional) Sophisticated File Searching the Program `find`
05:59
File Management (Part 2) – Handle Text Files
-
Intro
01:50 -
Viewing (Text) File Content the Command `cat`, `head` and `tail`
05:34 -
Reading Large Text Files the Command `less`
04:27 -
Counting Words and Measuring Disk Usage the Programs `wc` & `du`
07:11 -
Text Editing in the Terminal the Command-Line-Editor nano
06:07 -
Exercise Intro Analyze a Log File
03:17 -
Solution Analyze a Logfile
05:53
Redirection – Manage Data Streams
-
Intro
02:01 -
Writing and Appending to (Text) Files the Redirection Operators “ & “
06:22 -
The Standard Streams stdin, stdout, stderr
04:14 -
Managing Error Messages Redirecting stderr (and stdout)
07:32 -
Redirecting stdout to stderr (Part 1)
09:34 -
Redirecting stdout to stderr (Part 2)
05:14 -
Redirecting stdin
07:14
Pipes – Data Processing through Command Chaining
-
Intro
03:37 -
What is a Pipe (“)
06:21 -
Dual Output the Utility `tee`
07:24 -
Sorting and Removing Duplicates the Commands `sort` and `uniq`
06:08 -
Searching for Patterns in Text the Utility `grep`
09:39 -
Character Replacements and Reversal the Utilities `tr` & `rev`
04:39 -
Selective Extraction the Program `cut`
08:17 -
Text Substitution with the Stream Editor `sed`
03:34 -
Exercise Webserver Log File Analysis
04:11 -
Solution Webserver Log File Analysis
07:25
Environment Variables – Manage your Shell Configuration
-
Intro
02:03 -
What is a shell
03:23 -
What are Environment Variables and how to access them
07:33 -
The Environment Variables HOME, PWD & USER
04:32 -
Creating and Deleting Environment Variables the Commands `export` & `unset`
06:37 -
Efficient Command Execution the variable PATH
06:06 -
Extra lecture (optional) The File Hierarchy Standard
12:38 -
Modifying the PATH variable
10:51 -
Extra lecture (optional) [Python Script] Creating Custom Executable Files
06:34 -
Utilizing Environment Variables for Data Transfer into Programs (Python example)
11:03 -
Retrieve the Default Shell the Variable SHELL
05:09 -
Storing Custom Shell Configurations .bashrc and other Bash Startup Files
12:28 -
Editing Bash Startup Files with the Command-Line Editor nano
12:00 -
Command Shortcuts Creating Aliases with the `alias` Command
07:20 -
Adjusting Shell Behavior the Command `set`
07:02 -
Fine-Tuning Shell Behavior (Bash) the Command `shopt`
04:55
Project – Create a Custom Bash Prompt
-
Intro
01:06 -
Customizing your Shell Prompt the Variable PS1
07:23 -
Terminal Color Control via Escape Sequences
13:12 -
Bold Text in the Terminal`infocmp` and additional Terminal Capabilitites
06:18 -
Crash-course Command Substitution `$(…)` in Bash
04:49 -
Streamlining Terminal Control the Program `tput`
10:02 -
Important PS1 fix for upcoming Exercise
08:39 -
Exercise Customize your Terminal Prompt
07:48 -
Solution Customize your Terminal Prompt
10:46
Shell Expansions – How Commands are parsed
-
Intro
01:18 -
Filename Expansions “& “
05:33 -
Referencing the Home Directory the Tilde expansion `~`
04:24 -
Accessing and Manipulating Values Variable and Parameter Expansions `${…}`
07:53 -
Word splitting & the variable IFS
07:39 -
Quoting Mechanisms No Quotes vs. Single Quotes ‘…’ vs. Double Quotes
09:46 -
Caution Common Pitfalls in Shell Expansions
11:39 -
Escaping the Backslash character “
06:03 -
Expanding Strings of Characters the Brace Expansion `{…}`
02:45 -
Leveraging Command Output the Command Substitution `$(…)`
06:52 -
Dynamic Input & Output Process Substitution with `(…)`& `(…)`
11:36 -
Recap
02:26
—– Part 3 LINUX —–
-
Part 3 Linux Intro
08:25
Files on Unix – The Everything is a File Concept
-
Intro
01:32 -
What is a File
08:52 -
Flexible File Referencing with Symlinks (Symbolic Links)
11:36 -
Extra lecture (optional) [Windows] Symlinks on Windows
07:03 -
Referencing Inodes with Hardlinks
11:53 -
Troubleshooting The Inode Limit
05:58 -
Buffered vs. unbuffered IO
06:19 -
What is a Device
13:38 -
Examples of Pseudo-Devices `devnull`, `devrandom`, `devurandom`
09:16 -
System Insights Files in the Folder `proc`
10:10 -
Filesystem Hierarchy Standard (Part 1) (root), bin, boot, dev, etc
07:19 -
Filesystem Hierarchy Standard (Part 2) home, lib, media, mnt, opt
09:01 -
Filesystem Hierarchy Standard (Part 3) proc, root, run, sbin, srv, sys
06:52 -
Filesystem Hierarchy Standard (Part 4) tmp, usr, var, lost+found
09:41 -
Streamlining Filesystem Structure the Project usrmerge
03:17
Linux User Management – Groups, Permissions & Access Control
-
Intro
02:50 -
Managing Users The Roles of `etcpasswd`, `etcshadow` & `etcgroup`
11:10 -
Creating and Securing New Users `useradd` & `passwd`
13:22 -
Extra lecture (optional) How Password Expiration works
05:16 -
Change User Options the Command `usermod`
06:43 -
Deleting Users the Command `userdel`
03:25 -
How do Groups work
11:17 -
Add and Remove Group Members with `usermod`, `adduser`, `deluser`
08:13 -
Creating & Modifying Custom Groups the Command `groupadd`
05:33 -
Switching Users the Command `su`
05:05 -
Elevating User Privileges with `sudo` (Deep Dive)
09:36 -
Executing Commands as Different User with `sudo -U`
03:39 -
Advanced `sudo` Configuration the File `etcsudoers`
11:21 -
Assigning & Changing File Permissions with `chmod` & `chown`
09:25 -
Setting File Permissions Efficiently `chmod` with Numerical Values
03:38 -
Managing Permissions and Ownerships for Directories
08:30 -
Setting Default File Permissions the Command `umask`
18:50 -
Securing Directories Setting the Sticky Bit
12:07 -
Advanced File Permissions SUID (Set User ID) and SGID (Set Group ID)
16:16 -
Best Practices for User Management
03:10
Linux Processes – Orchestrate System Operations
-
Intro
01:29 -
What are Processes
08:12 -
Monitoring Processes The `ps` Command
10:32 -
Optional [MacOS] Different Behavior of `ps` on MacOS
07:47 -
Extra lecture (optional) BSD-style parameters (`ps aux`)
03:14 -
Inspecting Context Switches How Multitasking Works
08:12 -
Controlling Process Priorities by Setting the Niceness
14:17 -
Identifying Process IDs with `pgrep` and adjusting their Priority with `renice`
05:40 -
Influencing Processes with Signals
08:26 -
Sending Signals with the `kill` command & the Interruption Signal SIGINT
03:57 -
Terminating Processes Soft and Hard the Signals SIGTERM vs SIGKILL
12:50 -
Controlling Processes with the Signals SIGHUP, SIGSTOP and SIGCONT
09:46 -
The `kill` Command vs the Program `usrbinkill`
06:07 -
Sending Signals to Multiple Processes the `killall` Command
02:40 -
Process Endings Process Reaping, Orphan & Zombie Processes
15:00 -
Overview of Process States
13:10 -
Monitoring System Activity the `top` Program
11:45 -
Advanced `top` Usage (Deep Dive)
10:50 -
Monitoring System Activity the `htop` Program (Alternative to `top`)
08:58
Job Control in Bash – Navigate Background and Foreground Operations
-
Intro
01:56 -
What Jobs are and how to start your First Background Job (using `&`)
09:40 -
Job Listing and Foregrounding The `jobs` and `fg` Commands
07:44 -
Suspending and Resuming Jobs with `fg`
05:08 -
Terminating Jobs with `kill`
03:13 -
Suspending Jobs with Output using `stty`
04:35 -
Job Synchronization with the `wait` Command
06:47 -
Keep Programs Running the Command `nohup` vs `&`
10:51
Package Management with `APT` & `dpkg` [Ubuntu] – Streamline Software Handling
-
Intro
06:39 -
Installing Software manually with the Debian Package Manager (dpkg)
12:42 -
Installing Software manually with the Advanced Package Tool (APT)
10:37 -
Managing Linux System Updates and Upgrades with APT Best Practices
09:06 -
Autoremoving Old Dependencies to Maintain a Lean System
02:47 -
The file `sources.list` and Ubuntu’s Repository Structure
09:25 -
Managing Custom Repositories (by the Example of WineHQ)
14:47 -
Using Third-Party Repositories with Personal Package Archives (PPAs)
07:52 -
Extra lecture (optional) Verifying Package Integrity with Debsums
11:36 -
Dependency Management with APT Resolving Conflicts and Debugging Techniques
09:02 -
Best Practices for Resolving Dependency Conflicts with APT
15:53 -
Extra lecture (optional) Reconfiguring Packages after Installation with dpkg
09:08 -
Package Management with Snap Dealing with Self-Contained Applications
11:12
Package Management with `DNF` [CentOS] – Streamline Software Handling
-
Intro
04:45 -
The Red Hat Package Manager (RPM) Format
11:12 -
Installing Software manually with the DNF (Dandified Yum) Package Manager
07:31 -
What are Repositories
08:49 -
What are Software Dependencies
07:57 -
How Weak Dependencies Enhance Software Efficiency
10:57 -
How Backward Weak Dependencies Enhance Software Functionality
09:05 -
Managing Package Dependencies in DNF Preventing Unintended Removals
10:13 -
How to Safely Upgrade and Cautiously Downgrade with DNF
08:16 -
Excluding Packages from Upgrades for Ensuring Compatibility
09:01 -
Balancing System Stability and Convenience with Automatic Updates
04:05 -
Software Version Control with DNF Modules for Ensuring Stability (Part 1)
08:15 -
Software Version Control with DNF Modules for Ensuring Stability (Part 2)
10:42 -
EPEL-Release Extra Packages for Enterprise Linux
09:15 -
Taming Dependency Challenges in CentOS Strategies for Smooth System Updates
07:36 -
Extra lecture (optional) Software Flexibility with Snap on CentOS and RHEL
08:37
The System Boot Process & Systemd – Understand the Startup Mechanisms
-
Intro 11
01:56 -
The GRUB2 Bootloader Safely Modifying Configuration for Linux System Startup
12:24 -
Bridging Hardware and Software How does a Kernel work
14:14 -
The Service Management Tool systemd
07:34 -
Complexity vs Flexibility The systemd Controversy
05:00 -
Deep Dive into Boot and Service Management with systemd
11:58 -
Managing Apache 2 as systemd Unit Installation, Configuration, and Control
10:04 -
Process Grouping & Control Efficient Resource Management with cgroups
08:16 -
Example Controlling Resources with systemd and cgroups
15:15 -
Systemd Targets Achieving Efficient System States
07:40 -
Enabling and Disabling Units Managing Services with systemctl
08:24 -
Systemd Unit Files Structuring and Optimizing Services
16:47 -
Customizing systemd Unit Files (Part 1)
04:12 -
Customizing systemd Unit Files (Part 2)
05:16 -
Boot-time Program Launch with systemd Creating and Managing Unit Files
19:58 -
Scheduling Delayed Tasks with systemd Timers Precision and Efficiency
10:10 -
Advanced systemd Timers Precision Scheduling with Repeated Calendar Events
05:51 -
Journald and journalctl Effective System Logging and Analysis
15:35
Volumes, Partitions & Mounts – Integrate and Manage Filesystems in Linux
-
Intro 12
01:56 -
Managing Storage with Partition Tables MBR vs GPT
07:24 -
Understanding Storage Units Differentiating Kibibytes, Mebibytes and more
07:22 -
Adding a Virtual Hard Drive [VirtualBox]
06:09 -
File Systems Overview and Creating a first Partition
12:36 -
Disk Partitioning with `parted` CLI Management and Best Practices
12:16 -
Volumes vs Partitions Mounting and Accessing Storage
09:51 -
Manual Drive Mounting Enhancing Flexibility
12:46 -
Partition Mounting Options (ext4) `ro`, `rw`, `noexec`, `nosuid` and `noatime`
10:05 -
Advanced Mounting and Permission Configuration for exFAT
11:47 -
Efficient Drive Mounting with etcfstab
11:04 -
Extra lecture (optional) Mounting FTP Servers with curlftpfs
14:28 -
Extra lecture (optional) Securing FTP Server Mounts with .netrc Files
06:53 -
Extra lecture (optional) Automatically Mounting FTP Servers through etcfstab
09:09 -
The SMART Protocol Proactive Drive Health Monitoring
08:33 -
Ensuring Data Integrity File System Checks
09:35 -
Automatic File System Checks for Enhanced Reliability [Ubuntu]
05:29 -
Extra lecture (optional) Recovering Data from a Compromised File System
09:49 -
Reducing File Systems and Partitions
12:06 -
Expanding File Systems and Partitions
06:35
Logical Volume Manager (LVM) – Handle Storage Dynamically
-
Intro
03:42 -
Setup VM with Multiple Storage Drives
04:19 -
The Logical Volume Manager (LVM) Flexible Storage Management
04:04 -
Initializing Physical Volumes with LVM
12:03 -
Creating a Volume Group with LVM
04:21 -
Creating and Managing Logical Volumes with LVM
08:56 -
Expanding Volume Groups & Safely Removing Physical Volumes in LVM
09:32 -
Resizing Logical Volumes with LVM
09:35 -
Dismantling LVM Safely Removing Logical Volumes and Groups
03:10 -
CentOS Boot Process with LVM Integration
05:31 -
Advanced LVM Features RAID, Thin Volumes, and Snapshot
05:57
Extra chapter (optional) Full Software Upgrade & Troubleshooting Tutorial
-
Intro 14
02:15 -
Full Software Upgrade on Ubuntu
19:05 -
Troubleshooting Identifying Kernel Issues & Facilitating Data Backup
18:51 -
Solving Using `chroot` and GRUB Configuration for Recovery
12:44 -
Prevention Kernel Safeguarding
10:06 -
Outro Best Practices and Common Challenges
07:09
Extra chapter (optional) Cron Jobs – Automate and Schedule Tasks
-
Intro 15
04:10 -
Cron Variants Overview `vixie-cron`, `anacron` & `cronie`
04:02 -
The Cron Daemon `crond` & Crontab Files Editing and Permissions
05:55 -
Task Scheduling in Crontab Files Understanding the Crontab Syntax
12:47 -
Managing Cron Output Email Notifications & MAILTO Configuration [Ubuntu]
11:53 -
Managing Cron Output Email Notification & `sendmail` Integration [CentOS]
06:31 -
The `flock` command Ensuring Data Consistency through File Locking
07:27 -
The etccrontab File Defining System-Wide Tasks
05:38 -
Managing Tasks with anacron Flexible Scheduling [Ubuntu]
13:08 -
Managing Tasks with anacron Flexible Scheduling [CentOS]
12:23 -
Best Practices for Cron Jobs Smart Scheduling, Security and Maintenance
07:27
Networking – Arrange and Manage Linux Communication Channels
-
Intro 16
02:18 -
What is the Internet
06:33 -
The `ip` command Inspecting Network Configurations
04:07 -
The tool Wireshark Monitoring Network Traffic (incl. Ethical Considerations)
09:19 -
Overview The Open Systems Interconnection (OSI) model
08:35 -
OSI Layer 17 The Physical Layer
04:24 -
Managing Layer 1 Controlling Physical Devices with Software
06:21 -
OSI Layer 27 The Data Link Layer
17:13 -
Understanding Layer 2 Hardware Bridges, Switches and Wireless Access Points
07:10 -
OSI Layer 37 The Network Layer
11:56 -
How Subnets enhance Network Efficiency
11:41 -
What are Subnet Masks and how do they work
10:16 -
The Address Resolution Protocol (ARP) the Dynamics of IP Packet Transmission
07:06 -
Managing IP Addresses with the `ip` command Listing, Adding & Removing
07:24 -
Navigating Network Routing Inspecting Routing Tables & adding Routes
14:47 -
Dynamic Host Configuration Protocol (DHCP) Managing IP Addresses on Networks
09:27 -
Inspecting DHCP Logs with `systemd-networkd` Troubleshooting IP Address Issues
03:27 -
Inspecting DHCP Logs with `NetworkManager` Troubleshooting IP Address Issues
04:56 -
The program `ping` Inspecting Network Connectivity by ICMP
03:55 -
Exploring Network Routes with `traceroute` Diagnosing Latency and Routing
09:07 -
How `traceroute` works Mapping Internet Packet Paths and TTL
09:42 -
OSI Layer 47 The Transport Layer
11:38 -
TCP (Transmission Control Protocol) Ports The Key to Data Routing
08:05 -
Essential TCP & UDP Ports
07:46 -
The TCP Handshake Process Establishing Reliable Network Connections
08:30 -
Port Scanning with Nmap
13:13 -
Scan Types in Nmap TCP-SYN-Scan, TCP-connect-scan and UDP-scan
09:26 -
Extra lecture (optional) Network Address Translation (NAT)
15:25 -
OSI Layer 57 The Session Layer
05:08 -
OSI Layer 67 The Presentation Layer
03:45 -
OSI Layer 77 The Application Layer
02:23 -
The Domain Name System (DNS) Protocol Resolving Domain Names to IP Addresses
09:34 -
The `host` command & DNS Records Types A, AAAA, CNAME, MX and NS
04:33 -
Extra lecture (optional) Manual DNS Resolution with the `dig` command
06:23 -
DNS Vulnerabilities and Security Measures
06:46 -
Manual Domain-IP Mapping Editing the `etchosts` File on Linux
08:37 -
The mDNS (Multicast DNS) Standard Configuring Hostnames in Local Networks
12:31 -
The Hypertext Transfer Protocol (HTTP) Browser Inspection and Telnet Testing
14:16 -
IPv6 Overview Advantages, Enhanced Security and Dual-Stack Transition
14:35
SSH – Securely Connect to Remote Servers
-
Intro 17
03:00 -
What is the Secure Shell (SSH)
05:15 -
Networking (bridged)
07:19 -
Networking (NAT)
10:53 -
Our first SSH Connection
10:18 -
Security tips (part 1, port)
11:34 -
Security tips (part 1, port) [CentOS]
06:28 -
Security tips (part 2, users)
08:18 -
How to Not Lock Yourself Out
04:05 -
Public Private Key
11:02 -
Disabling Password Login
07:13 -
How to Keep a Connection Open
05:49 -
Fingerprints
08:24 -
File transfers with SFTP
08:38 -
The Utility Screen
07:46
Project Set up a Web Server
-
Intro 18
05:03 -
The LAMP Setup
08:00 -
Installing LAMP [CentOS]
05:07 -
Installing LAMP [Ubuntu]
05:25 -
How to configure Apache
11:46 -
Configuration of Apache [CentOS]
09:46 -
Adding a Port to httpd [CentOS]
03:18 -
Configuration of Apache2 [Ubuntu]
09:47 -
How does a VirtualHost work
09:32 -
Creating a VirtualHost [CentOS]
10:43 -
Creating a VirtualHost [Ubuntu]
05:18 -
How do the Log Files work
11:05 -
PHP [CentOS]
05:12 -
PHP [Ubuntu]
06:36 -
Setting up MySQL
06:02 -
Creating a MySQL Admin User
06:12 -
Installing phpmyadmin [CentOS]
03:59 -
Installing phpmyadmin [Ubuntu]
06:28 -
Preparing the DB for WordPress
05:57 -
Installation of WordPress
14:46 -
How to Override Configuration via htaccess
05:24 -
How to Password Protect a Directory
07:38 -
Access phpmyadmin through Tunnel
07:13
Extra chapter (optional) Firewall – Control Network Traffic
-
Intro 19
03:23 -
Why we need a Firewall
11:10 -
Why we are not learning iptables
05:44 -
The Architecture of firewalld
06:44 -
Installing firewalld on Ubuntu
03:44 -
What are Services in firewalld
07:33 -
Opening and Closing Services
13:32 -
Zones in firewalld
12:51 -
Outlook firewalld
05:18
SELinux (Security Enhanced Linux) – Enforce Robust Access Control Policies
-
Intro
08:42 -
Discretionary Access Control
05:36 -
The Problem with Discretionary Access Control
13:37 -
Mandatory Access Control
07:45 -
Enabling and Disabling SELinux
10:31 -
File Contexts in SELinux
05:32 -
How SELinux Protects you
09:13 -
Changing File Context (`chcon`, `restorecon`)
14:39 -
Setting Default Contexts (`semanage fcontext`)
15:39 -
Security Attributes of Processes
09:52 -
A quick look at the SELinux Policy
13:04 -
Targeted Policy and how Processes are Started
07:51 -
SELinux Booleans
14:32 -
How to fix Policy Violations
12:53 -
Managing Ports
06:35 -
Disabling SELinux during Boot
11:40 -
Summary and Outlook
06:55
Linux Distributions – Explore the Landscape from Red Hat to Arch Linux
-
Intro 21
03:42 -
The Red Hat family Fedora, CentOS Stream, Red Hat Enterprise Linux
12:17 -
The extended Red Hat family Rocky Linux, AlmaLinux, Oracle Linux
04:53 -
The Debian family Debian, Ubuntu, Kali Linux, Raspberry Pi OS, Linux Mint
08:23 -
Ubuntu Linux and its variants Ubuntu Server, Kubuntu, Xubuntu, Lubuntu
08:49 -
The SUSE family SUSE Linux Enterprise, openSUSE Leap & Tumbleweed
05:20 -
Arch Linux
04:48 -
Gentoo Linux
06:33 -
How to choose a Linux Distribution
03:44
—– Part 4 BASH SCRIPTING —–
-
Part 4 Bash Scripting Intro
04:15
Bash Scripting Basics (Part 1) – Leverage Variables for Dynamic Scripts
-
Intro 22
05:24 -
Our first Bash Script
05:57 -
What is a Shebang
08:30 -
Comments in Bash
10:54 -
Variables in Bash
11:15 -
Bash Variables vs. Environment Variables
09:22 -
How to not declare a Variable
07:59 -
The `declare` command
11:33 -
Unsetting Variables
02:59 -
Reading Input (`read`)
05:13 -
Advanced `read` Usage
09:13 -
Reading the Contents of a File
05:56 -
Let’s Create a Program
10:56 -
Exercise (Overview) System Info Script
07:28 -
Solution System Info Script
10:02
Bash Scripting Basics (Part 2) – Build Robust Scripts
-
Intro 23
04:01 -
Pipe vs Process Substitution
11:58 -
Splitting a Script into Multiple Files
10:45 -
Making a Script accessible through PATH
04:15 -
Best Practices for Shell Scripts
08:48 -
Paths in Shell Scripts
14:52 -
The `shellcheck` Program
05:51 -
Writing Shell Scripts with Visual Studio Code
09:59
Numeric Variables & Arithmetic Operations – Work with Numerical Data
-
Intro 26
00:53 -
Basic Math in Bash
07:49 -
Integer Variables
08:47 -
Read ints in Bash
08:14 -
How to use Decimals
06:18 -
Extra lecture (optional) `awk`
15:57
Access External Data – Retrieve JSON Data from APIs
-
Intro 27
01:52 -
How an HTTP Request works
10:08 -
First steps with `curl`
09:31 -
Extra lecture (optional) How the Download Bar from `curl` works
03:51 -
What is JSON
07:56 -
The Program jq
06:34 -
Exercise (Overview) Fetch Weather Data
09:45 -
Solution Fetch Weather Data (Part 1; API)
06:19 -
Solution Fetch Weather Data (Part 2; JSON)
07:46
Tests & the `if` Clause – Implement Logical Evaluations & Conditional Logic
-
Intro 28
02:58 -
Exit Codes
08:45 -
Chaining Commands
04:44 -
Chaining Commands with OR
03:01 -
Testing values
09:18 -
The `if` Statement in Bash
10:00 -
The `elif` Statement
05:10 -
Comparing Strings
04:36 -
Pattern Matching
09:28 -
Checking for Files
03:26 -
Numeric Tests
08:13 -
More Complex Conditions
06:03 -
Exercise (Overview) Conditional File Download
04:57 -
Solution Conditional File Download
14:44 -
How not to Test
10:21 -
The `case` Statement
10:36
`while` loops – Utilize Iterative Control Flows
-
Intro 29
01:19 -
A first `while` Loop
06:31 -
`break` and `continue`
04:28 -
Reading a File Line by Line
10:42 -
Exercise (Overview) Bulk Image Download
05:58 -
Solution Bulk Image Download (Part 1)
08:05 -
Solution Bulk Image Download (Part 2)
10:57
`for` Loops – Traverse Data Sequences
-
Intro 30
01:27 -
Writing a first `for` Loop
06:45 -
Sequence expression and `for` Loops
07:44 -
Additional Expansions
09:07 -
Command Substitution and `for` Loops
11:16 -
Arithmetic Expressions and `for` Loops
04:47
Project Automated Thumbnail Generation (using ImageMagick)
-
Intro 31
03:11 -
Installing ImageMagick
03:52 -
Querying Images
07:18 -
Converting Images
05:31 -
Working with Filenames
09:42 -
Exercise Automated Thumbnail Generation
04:15 -
Solution Automated Thumbnail Generation
12:17
User Interaction with `select`, `dialog`, and zenity – Craft Interactive Menus
-
Intro 32
02:10 -
The `select` Construct
06:57 -
Example `select` and `case` in Action
05:10 -
Installing the `dialog` Program
02:10 -
Creating a first Dialog (msgbox)
07:43 -
Creating a yesno Dialog
04:55 -
Creating a Text Input Dialog
10:43 -
Creating Menus
04:07 -
GUI dialoges with zenity
11:24 -
Exercise Interactive Students Administration
02:26 -
Solution Interactive Students Administration
13:07
Arguments In Bash – Process Command Line Input within Scripts
-
Intro 33
02:08 -
Accepting Arguments
09:23 -
The `shift` command
06:38 -
`shift` and `while`
06:29 -
The `getopts` command
06:46 -
Accepting Multiple Options (`getopts`, `while`)
11:20 -
Accepting Options with Arguments
06:20
Functions – Write Well-Structured Scripts
-
Intro 34
02:29 -
Creating a first Function
06:43 -
Variables within a Function
09:26 -
Getting Data into a Function
09:06 -
Getting Data out of a Function
07:21 -
Project (Overview) Trivia Game
04:29 -
Project (Exercise) Trivia Game (Part 1)
11:50 -
Project (Solution) Trivia Game (Part 2)
11:56 -
Project (Solution) Trivia Game (Part 3)
08:51 -
Project (Solution) Trivia Game (Part 4)
09:01 -
Project Trivia Game (Part 5 random order)
07:12 -
Project Trivia Game (Part 6 final touches)
10:35
Arrays in Bash – Manage and Manipulate Data Collections
-
Intro 35
04:15 -
Our first Array
09:40 -
Accessing an Array
06:19 -
Overwriting Array Elements
03:14 -
Array Operations
05:06 -
Copying an Array
04:36 -
`for` and `select`
07:04 -
Output of Program to Array
10:19 -
Output to Array (`readarray`)
05:48 -
How to check if an Array contains a specific Element
08:43 -
Associative Arrays
11:30 -
Exercise (Overview) Directory Storage Monitor
03:09 -
Solution Directory Storage Monitor
06:10 -
Extra lecture (optional) (Enhancement) Directory Storage Monitor
12:27
Project Build a Backup Script with Archiving and Compression
-
Intro 36
01:34 -
Working with Archives
09:35 -
Compression (gz, bz2, xz)
13:55 -
Manually creating a .tar.bz2 file
02:54 -
Automatically creating a .tar.bz2 file
04:10 -
Exercise Write a Backup Script
05:47 -
Exercise (Hints) Write a Backup Script (date)
06:03 -
Solution Write a Backup Script (Part 1)
07:25 -
Solution Write a Backup Script (Part 2 adding `for` Loop)
05:26 -
Solution Write a Backup Script (Part 3 Error Handlung I)
10:48 -
Solution Write a Backup Script (Part 4 Error Handlung II)
08:54
Effective Data Filtering with `grep` and Regular Expressions (regex)
-
Intro 37
02:07