Course Overview
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!
FAQ
FAQ area empty
Course curriculum
-
Intro
256 Xem trước -
Getting the Most out of this Course
256 Xem trước -
Slides of this Course (as .pdf)
Xem trước -
What is Linux?
265 -
What are Linux Distributions?
358 Xem trước -
Test your knowledge about Basic Linux Terms
Xem trước -
Heads-up: Ubuntu 24.04 LTS / 25.05
-
Installing VirtualBox
455 Xem trước -
Info: VirtualBox "Unattendend Installation"
Xem trước -
Installing Ubuntu [VirtualBox]
704 -
Configuration of Ubuntu [VirtualBox]
771 -
For your convenience: Configuration Recap
-
Hint: Problem with shared Folder
-
Read before installing CentOS Stream
-
Installing CentOS Stream [VirtualBox]
786 -
Configuration of CentOS Stream [VirtualBox]
775 -
For your convenience: Configuration Recap
-
How to create a Snapshot? [VirtualBox]
255 -
Outlook
54
-
Important: Only for macOS users
-
Installing UTM
426 -
The link to download Ubuntu
-
Installing Ubuntu [UTM]
587 -
Configuration of Ubuntu [UTM]
553 -
For your convenience: Configuration Recap
-
Installing CentOS Stream [UTM]
574 -
Configuration of CentOS [UTM]
826 -
For your convenience: Configuration Recap
-
Outlook
54
-
Important: If you've already been using the Terminal
-
Setting up your Terminal
423 -
Outputting Text: the Command `echo`
558 -
Test your knowledge about First Commands
-
Displaying and Changing the Current Directory: the Commands `pwd` & `cd`
484 -
Listing Content in Directories: the Command `ls`
457 -
Path Types: Absolute Paths vs. Relative Paths
223 -
Executing Multiple Commands using `;`
219 -
Test your knowledge about Directory Navigation
-
Getting Terminal Help: `man` and `--help`
400
-
Intro
96 -
Information User Managment
-
User Management Basics: System Accounts, Regular Users, Superusers
209 -
Elevating Privileges: the Command `sudo`
467 -
Optional [Troubleshooting]: When `sudo` does not work
352 -
Test your knowledge about Handling User Privileges
-
What is Package Management and how does it work?
142 -
Updating and Installing Software in Ubuntu: apt
646 -
Updating and Installing Software in CentOS Stream: dnf
764 -
Exercise: Explore `cowsay`
-
Extra lecture (optional) [MacOS]: How to use Bash in MacOS (Part 1)
386 -
Extra lecture (optional) [MacOS]: How to use Bash in MacOS (Part 2)
370 -
Making the Most of Role Plays [Beta]
-
[S4 & S5]: Fixing Onboarding Documentation
0
-
Important: If you've already been using the Terminal / Linux
-
Intro
66 -
Introduction to Labs
-
Creating Files and Directories: the Commands `touch` & `mkdir`
279 -
Moving and Copying Files: the Commands `mv` & `cp`
472 -
Deleting Files and Directories: the Commands `rm` & `rmdir`
487 -
Test your knowledge about File Management
-
Exercise Intro: Website File Management
105 -
Exercise: Website File Management
-
Solution: Website File Management
428 -
File Name Selection by Pattern Matching: Globbing with `*`
799 -
Advanced Globbing Wildcards: `?`, `[0-9]`, `**`
454 -
Pitfalls of Globbing: Avoiding Traps in Pattern Matching
556 -
Test your knowledge about Globbing
-
Download the materials for the next exercise
-
Exercise: Navigate a nested folder structure using Globbing
246 -
Exercise: Navigate a nested folder structure using Globbing
-
Solution: Navigate a nested folder structure using Globbing
282 -
Extra lecture (optional): Sophisticated File Searching: the Program `find`
359 -
[S6]: File Handling Challenges
0
-
Intro
109 -
The eBook in the next lecture
-
Viewing (Text) File Content: the Command `cat`, `head` and `tail`
333 -
Reading Large Text Files: the Command `less`
266 -
Counting Words and Measuring Disk Usage: the Programs `wc` & `du`
430 -
Text Editing in the Terminal: the Command-Line-Editor nano
366 -
Test your knowledge about Handling Text Files
-
Exercise Intro: Analyze a Log File
196 -
Exercise Materials: Analyze a Log File
-
Exercise Check: Analyze a Logfile
-
Solution: Analyze a Logfile
353 -
[S7]: Tracking and Editing Log Files
0
-
Intro
120 -
Writing and Appending to (Text) Files: the Redirection Operators `>` & `>>`
381 -
The Standard Streams: stdin, stdout, stderr
253 -
Managing Error Messages: Redirecting stderr (and stdout)
452 -
Test your knowledge about Standard Streams and Redirection
-
Redirecting stdout to stderr (Part 1)
573 -
Redirecting stdout to stderr (Part 2)
313 -
Redirecting stdin
434 -
Test your knowledge about Advanced Redirection
-
Intro
216 -
What is a Pipe (`|`)?
380 -
Dual Output: the Utility `tee`
444 -
Sorting and Removing Duplicates: the Commands `sort` and `uniq`
368 -
Searching for Patterns in Text: the Utility `grep`
579 -
Character Replacements and Reversal: the Utilities `tr` & `rev`
278 -
Selective Extraction: the Program `cut`
497 -
Text Substitution with the Stream Editor `sed`
213 -
Exercise: Webserver Log File Analysis
250 -
Exercise Material: Webserver Log File Analysis
-
Exercise Check: Webserver Log File Analysis
-
Solution: Webserver Log File Analysis
445 -
[S8 & S9]: Handling Logs with Redirection, Pipes, and Filters
0
-
Intro
123 -
What is a shell?
203 -
What are Environment Variables and how to access them?
453 -
The Environment Variables HOME, PWD & USER
271 -
Creating and Deleting Environment Variables: the Commands `export` & `unset`
396 -
Efficient Command Execution: the variable PATH
365 -
Extra lecture (optional): The File Hierarchy Standard
757 -
Modifying the PATH variable
650 -
Extra lecture (optional) [Python Script]: Creating Custom Executable Files
393 -
Utilizing Environment Variables for Data Transfer into Programs (Python example)
663 -
Retrieve the Default Shell: the Variable SHELL
308 -
Storing Custom Shell Configurations: .bashrc and other Bash Startup Files
748 -
Editing Bash Startup Files with the Command-Line Editor nano
720 -
Command Shortcuts: Creating Aliases with the `alias` Command
439 -
Adjusting Shell Behavior: the Command `set`
422 -
Fine-Tuning Shell Behavior (Bash): the Command `shopt`
295 -
Test your knowledge about Environment Variables
-
[S10]: Managing Environment Variables for Reliable Shell Configurations
0
-
Intro
65 -
Why There Are No Labs for Customizing the Bash Prompt (PS1)
-
Customizing your Shell Prompt: the Variable PS1
443 -
Terminal Color Control via Escape Sequences
791 -
Bold Text in the Terminal:`infocmp` and additional Terminal Capabilitites
377 -
Crash-course: Command Substitution `$(...)` in Bash
288 -
Streamlining Terminal Control: the Program `tput`
601 -
Important: PS1 fix for upcoming Exercise
519 -
Exercise: Customize your Terminal Prompt
468 -
Solution: Customize your Terminal Prompt
646 -
Test your knowledge about Bash Prompt Control
-
Intro
77 -
Filename Expansions: `*`& `?`
332 -
Referencing the Home Directory: the Tilde expansion `~`
264 -
Accessing and Manipulating Values: Variable and Parameter Expansions `${...}`
473 -
Word splitting & the variable IFS
458 -
Quoting Mechanisms: No Quotes vs. Single Quotes '...' vs. Double Quotes "..."
585 -
Caution: Common Pitfalls in Shell Expansions
698 -
Escaping: the Backslash character `\`
362 -
Expanding Strings of Characters: the Brace Expansion `{...}`
164 -
Leveraging Command Output: the Command Substitution `$(...)`
411 -
Dynamic Input & Output: Process Substitution with `<(...)`& `>(...)`
696 -
Test your knowledge about Shell Expansions
-
Recap
145 -
[S12]: Mastering Shell Expansions
0
-
Intro
92 -
What is a File?
531 -
Flexible File Referencing with Symlinks (Symbolic Links)
696 -
Extra lecture (optional) [Windows]: Symlinks on Windows
423 -
Referencing Inodes with Hardlinks
712 -
Troubleshooting: The Inode Limit
357 -
Buffered vs. unbuffered I/O
378 -
What is a Device?
817 -
Examples of Pseudo-Devices: `/dev/null`, `/dev/random`, `/dev/urandom`,...
555 -
Test your knowledge about Files and Links
-
System Insights: Files in the Folder `/proc`
609 -
Filesystem Hierarchy Standard (Part 1): / (root), /bin, /boot, /dev, /etc
438 -
Filesystem Hierarchy Standard (Part 2): /home, /lib, /media, /mnt, /opt
541 -
Filesystem Hierarchy Standard (Part 3): /proc, /root, /run, /sbin, /srv, /sys
412 -
Filesystem Hierarchy Standard (Part 4): /tmp, /usr, /var, /lost+found
581 -
Streamlining Filesystem Structure: the Project usrmerge
196 -
Test your knowledge about the Filesystem Hierarchy Standard
-
Wrapping Up the Labs
-
[S14]: Handling Files, Links, and the Linux Filesystem
0
-
Intro
169 -
Managing Users: The Roles of `/etc/passwd`, `/etc/shadow` & `/etc/group`
670 -
Creating and Securing New Users: `useradd` & `passwd`
801 -
Extra lecture (optional): How Password Expiration works
316 -
Change User Options: the Command `usermod`
402 -
Deleting Users: the Command `userdel`
204 -
How do Groups work?
677 -
Add and Remove Group Members with `usermod`, `adduser`, `deluser`
492 -
Creating & Modifying Custom Groups: the Command `groupadd`
332 -
Switching Users: the Command `su`
304 -
Heads-up: EDITOR for visudo
-
Elevating User Privileges with `sudo` (Deep Dive)
575 -
Executing Commands as Different User with `sudo -U`
218 -
Advanced `sudo` Configuration: the File `/etc/sudoers`
681 -
Test your knowledge about Users & Groups
-
Assigning & Changing File Permissions with `chmod` & `chown`
564 -
Setting File Permissions Efficiently: `chmod` with Numerical Values
218 -
Managing Permissions and Ownerships for Directories
510 -
Setting Default File Permissions: the Command `umask`
1129 -
Securing Directories: Setting the Sticky Bit
727 -
Advanced File Permissions: SUID (Set User ID) and SGID (Set Group ID)
975 -
Test your knowledge about File Permissions
-
Best Practices for User Management
189 -
[S15]: User Management Basics - Accounts, Groups, and Permissions
0
-
Intro
89 -
Important [CentOS]: Note for CentOS Users
-
What are Processes?
491 -
Monitoring Processes: The `ps` Command
631 -
Optional [MacOS]: Different Behavior of `ps` on MacOS
466 -
Extra lecture (optional): BSD-style parameters (`ps aux`)
193 -
Inspecting Context Switches: How Multitasking Works
492 -
Controlling Process Priorities by Setting the Niceness
856 -
Identifying Process IDs with `pgrep` and adjusting their Priority with `renice`
340 -
Test your knowledge about Processes
-
Influencing Processes with Signals
505 -
Materials regarding the Upcoming Lessons
-
Sending Signals with the `kill` command & the Interruption Signal SIGINT
236 -
Terminating Processes Soft and Hard: the Signals SIGTERM vs SIGKILL
770 -
Controlling Processes with the Signals SIGHUP, SIGSTOP and SIGCONT
585 -
The `kill` Command vs the Program `/usr/bin/kill`
367 -
Sending Signals to Multiple Processes: the `killall` Command
159 -
Process Endings: Process Reaping, Orphan & Zombie Processes
900 -
Overview of Process States
790 -
Monitoring System Activity: the `top` Program
704 -
Advanced `top` Usage (Deep Dive)
650 -
Monitoring System Activity: the `htop` Program (Alternative to `top`)
538 -
Test your knowledge about Signals
-
Intro
115 -
What Jobs are and how to start your First Background Job (using `&`)
579 -
Job Listing and Foregrounding: The `jobs` and `fg` Commands
463 -
Notice: resuming job with 'fg'
-
Suspending and Resuming Jobs with `fg`
308 -
Terminating Jobs with `kill`
192 -
Suspending Jobs with Output using `stty`
274 -
Job Synchronization with the `wait` Command
406 -
Keep Programs Running: the Command `nohup` vs `&`
650 -
Test your knowledge about Job Management
-
[S16 & S17]: Managing Processes and Jobs
0
-
Intro
398 -
Installing Software manually with the Debian Package Manager (dpkg)
762 -
Installing Software manually with the Advanced Package Tool (APT)
637 -
Managing Linux System Updates and Upgrades with APT: Best Practices
546 -
Autoremoving Old Dependencies to Maintain a Lean System
166 -
The file `sources.list` and Ubuntu's Repository Structure
564 -
Update: source.list
-
Managing Custom Repositories (by the Example of WineHQ)
886 -
Using Third-Party Repositories with Personal Package Archives (PPAs)
471 -
Extra lecture (optional): Verifying Package Integrity with Debsums
695 -
Dependency Management with APT: Resolving Conflicts and Debugging Techniques
541 -
Best Practices for Resolving Dependency Conflicts with APT
953 -
Extra lecture (optional): Reconfiguring Packages after Installation with dpkg
548 -
Package Management with Snap: Dealing with Self-Contained Applications
671 -
Test your knowledge about Package Management on Ubuntu
-
[S18]: Mastering Linux Package Management
0
-
Intro
284 -
The Red Hat Package Manager (RPM) Format
671 -
Installing Software manually with the DNF (Dandified Yum) Package Manager
450 -
What are Repositories?
529 -
What are Software Dependencies?
477 -
How Weak Dependencies Enhance Software Efficiency
656 -
How Backward Weak Dependencies Enhance Software Functionality
544 -
Notice for the next lecture
-
Managing Package Dependencies in DNF: Preventing Unintended Removals
612 -
How to Safely Upgrade and Cautiously Downgrade with DNF
495 -
Excluding Packages from Upgrades for Ensuring Compatibility
540 -
Balancing System Stability and Convenience with Automatic Updates
244 -
Software Version Control with DNF Modules for Ensuring Stability (Part 1)
494 -
Software Version Control with DNF Modules for Ensuring Stability (Part 2)
641 -
EPEL-Release: Extra Packages for Enterprise Linux
554 -
Taming Dependency Challenges in CentOS: Strategies for Smooth System Updates
455 -
Extra lecture (optional): Software Flexibility with Snap on CentOS and RHEL
517 -
Test your knowledge about Package Management on CentOS
-
[S19]: Managing Packages and Dependencies with RPM & DN
0
-
Intro
116 -
The GRUB2 Bootloader: Safely Modifying Configuration for Linux System Startup
743 -
Bridging Hardware and Software: How does a Kernel work?
853 -
The Service Management Tool systemd
454 -
Complexity vs Flexibility: The systemd Controversy
299 -
Deep Dive into Boot and Service Management with systemd
717 -
Managing Apache 2 as systemd Unit: Installation, Configuration, and Control
603 -
Process Grouping & Control: Efficient Resource Management with cgroups
495 -
Example: Controlling Resources with systemd and cgroups
915 -
Systemd Targets: Achieving Efficient System States
459 -
Enabling and Disabling Units: Managing Services with systemctl
504 -
Systemd Unit Files: Structuring and Optimizing Services
1006 -
Customizing systemd Unit Files (Part 1)
251 -
Customizing systemd Unit Files (Part 2)
315 -
Boot-time Program Launch with systemd: Creating and Managing Unit Files
1197 -
Scheduling Delayed Tasks with systemd Timers: Precision and Efficiency
609 -
Advanced systemd Timers: Precision Scheduling with Repeated Calendar Events
351 -
Journald and journalctl: Effective System Logging and Analysis
935 -
Test your knowledge about systemd
-
[S20]: Core Linux Internals - From GRUB2 to Systemd and Beyond
0
-
Intro
115 -
Managing Storage with Partition Tables: MBR vs GPT
443 -
Understanding Storage Units: Differentiating Kibibytes, Mebibytes and more
441 -
Adding a Virtual Hard Drive [VirtualBox]
369 -
File Systems Overview and Creating a first Partition
755 -
Disk Partitioning with `parted`: CLI Management and Best Practices
735 -
Volumes vs Partitions: Mounting and Accessing Storage
590 -
Manual Drive Mounting: Enhancing Flexibility
766 -
Partition Mounting Options (ext4): `ro`, `rw`, `noexec`, `nosuid` and `noatime`
604 -
Advanced Mounting and Permission Configuration for exFAT
707 -
Efficient Drive Mounting with /etc/fstab
663 -
Extra lecture (optional): Mounting FTP Servers with curlftpfs
868 -
Extra lecture (optional): Securing FTP Server Mounts with .netrc Files
413 -
Extra lecture (optional): Automatically Mounting FTP Servers through /etc/fstab
548 -
The SMART Protocol: Proactive Drive Health Monitoring
512 -
Ensuring Data Integrity: File System Checks
575 -
Automatic File System Checks for Enhanced Reliability [Ubuntu]
328 -
Extra lecture (optional): Recovering Data from a Compromised File System
588 -
Reducing File Systems and Partitions
725 -
Expanding File Systems and Partitions
395 -
Test your knowledge about Mounts
-
[S21]: Ensuring Storage Efficiency and Reliability in Linux
0
-
Intro
221 -
A quick heads-up
-
Setup: VM with Multiple Storage Drives
259 -
The Logical Volume Manager (LVM): Flexible Storage Management
244 -
A quick heads-up: /dev/sdb1 vs. /dev/sdb2
-
Initializing Physical Volumes with LVM
722 -
Creating a Volume Group with LVM
260 -
Creating and Managing Logical Volumes with LVM
536 -
Expanding Volume Groups & Safely Removing Physical Volumes in LVM
572 -
Resizing Logical Volumes with LVM
574 -
Dismantling LVM: Safely Removing Logical Volumes and Groups
190 -
CentOS Boot Process with LVM Integration
330 -
Advanced LVM Features: RAID, Thin Volumes, and Snapshot
357 -
Test your knowledge about LVM
-
[S22]: Efficient Storage Management with LVM
0
-
Intro
134 -
Full Software Upgrade on Ubuntu
1144 -
Troubleshooting: Identifying Kernel Issues & Facilitating Data Backup
1131 -
Solving: Using `chroot` and GRUB Configuration for Recovery
763 -
Prevention: Kernel Safeguarding
605 -
Outro: Best Practices and Common Challenges
428 -
Test your knowledge about this Chapter
-
Intro
249 -
Cron Variants Overview: `vixie-cron`, `anacron` & `cronie`
242 -
The Cron Daemon `crond` & Crontab Files: Editing and Permissions
354 -
Task Scheduling in Crontab Files: Understanding the Crontab Syntax
766 -
Managing Cron Output: Email Notifications & MAILTO Configuration [Ubuntu]
713 -
Managing Cron Output: Email Notification & `sendmail` Integration [CentOS]
390 -
The `flock` command: Ensuring Data Consistency through File Locking
447 -
The /etc/crontab File: Defining System-Wide Tasks
337 -
Managing Tasks with anacron: Flexible Scheduling [Ubuntu]
787 -
Managing Tasks with anacron: Flexible Scheduling [CentOS]
742 -
Best Practices for Cron Jobs: Smart Scheduling, Security and Maintenance
446 -
Test your knowledge about Cron Jobs
-
Intro
138 -
What is the Internet?
393 -
The `ip` command: Inspecting Network Configurations
247 -
The tool Wireshark: Monitoring Network Traffic (incl. Ethical Considerations)
559 -
Overview: The Open Systems Interconnection (OSI) model
515 -
OSI Layer 1/7: The Physical Layer
264 -
Managing Layer 1: Controlling Physical Devices with Software
381 -
OSI Layer 2/7: The Data Link Layer
1033 -
Understanding Layer 2 Hardware: Bridges, Switches and Wireless Access Points
430 -
OSI Layer 3/7: The Network Layer
715 -
How Subnets enhance Network Efficiency
700 -
What are Subnet Masks and how do they work?
615 -
The Address Resolution Protocol (ARP): the Dynamics of IP Packet Transmission
425 -
Managing IP Addresses with the `ip` command: Listing, Adding & Removing
443 -
Navigating Network Routing: Inspecting Routing Tables & adding Routes
886 -
Dynamic Host Configuration Protocol (DHCP): Managing IP Addresses on Networks
566 -
Inspecting DHCP Logs with `systemd-networkd`: Troubleshooting IP Address Issues
206 -
Inspecting DHCP Logs with `NetworkManager`: Troubleshooting IP Address Issues
295 -
The program `ping`: Inspecting Network Connectivity by ICMP
234 -
Exploring Network Routes with `traceroute`: Diagnosing Latency and Routing
546 -
How `traceroute` works: Mapping Internet Packet Paths and TTL
582 -
Test your knowledge about the Network Layer
-
OSI Layer 4/7: The Transport Layer
698 -
TCP (Transmission Control Protocol) Ports: The Key to Data Routing
484 -
Essential TCP & UDP Ports
465 -
The TCP Handshake Process: Establishing Reliable Network Connections
509 -
Port Scanning with Nmap
793 -
Scan Types in Nmap: TCP-SYN-Scan, TCP-connect-scan and UDP-scan
565 -
Extra lecture (optional): Network Address Translation (NAT)
924 -
OSI Layer 5/7: The Session Layer
308 -
OSI Layer 6/7: The Presentation Layer
225 -
OSI Layer 7/7: The Application Layer
143 -
The Domain Name System (DNS) Protocol: Resolving Domain Names to IP Addresses
573 -
The `host` command & DNS Records Types: A, AAAA, CNAME, MX and NS
273 -
Extra lecture (optional): Manual DNS Resolution with the `dig` command
382 -
DNS Vulnerabilities and Security Measures
405 -
Manual Domain-IP Mapping: Editing the `/etc/hosts` File on Linux
517 -
The mDNS (Multicast DNS) Standard: Configuring Hostnames in Local Networks
750 -
The Hypertext Transfer Protocol (HTTP): Browser Inspection and Telnet Testing
856 -
IPv6 Overview: Advantages, Enhanced Security and Dual-Stack Transition
874 -
Test your knowledge about OSI Layers
-
[S25]: Exploring the OSI Model and Network Protocols
0
-
Intro
179 -
What is the Secure Shell (SSH)?
314 -
Networking (bridged)
439 -
Networking (NAT)
653 -
Our first SSH Connection
617 -
Security tips (part 1, port)
693 -
Security tips (part 1, port) [CentOS]
387 -
Security tips (part 2, users)
497 -
How to Not Lock Yourself Out
244 -
Public Private Key
661 -
Disabling Password Login
432 -
How to Keep a Connection Open
349 -
Fingerprints
503 -
File transfers with SFTP
517 -
The Utility Screen
466 -
Test your knowledge about SSH
-
[S26]: Securing Remote Access with SSH
0
-
Intro
303 -
The LAMP Setup
480 -
Installing LAMP [CentOS]
307 -
Installing LAMP [Ubuntu]
324 -
How to configure Apache?
705 -
Configuration of Apache [CentOS]
585 -
Adding a Port to httpd [CentOS]
197 -
Configuration of Apache2 [Ubuntu]
587 -
How does a VirtualHost work?
571 -
Creating a VirtualHost [CentOS]
642 -
Creating a VirtualHost [Ubuntu]
317 -
How do the Log Files work?
664 -
Test your knowledge about Web Server Setup (Part 1)
-
PHP [CentOS]
312 -
PHP [Ubuntu]
396 -
Setting up MySQL
362 -
Creating a MySQL Admin User
371 -
Installing phpmyadmin [CentOS]
238 -
Installing phpmyadmin [Ubuntu]
387 -
Preparing the DB for WordPress
356 -
Installation of WordPress
886 -
How to Override Configuration via htaccess
324 -
How to Password Protect a Directory
457 -
Access phpmyadmin through Tunnel
432 -
Test your knowledge about Web Server Setup (Part 2)
-
Intro
521 -
Discretionary Access Control
335 -
The Problem with Discretionary Access Control
816 -
Mandatory Access Control
464 -
Enabling and Disabling SELinux
630 -
File Contexts in SELinux
331 -
How SELinux Protects you
553 -
Changing File Context (`chcon`, `restorecon`)
878 -
Setting Default Contexts (`semanage fcontext`)
939 -
Test your knowledge about SELinux (Part 1)
-
Security Attributes of Processes
591 -
A quick look at the SELinux Policy
783 -
Targeted Policy and how Processes are Started
471 -
SELinux Booleans
872 -
How to fix Policy Violations
772 -
Managing Ports
394 -
Disabling SELinux during Boot
699 -
Summary and Outlook
414 -
Test your knowledge about SELinux (Part 2)
-
{S29}: Strengthening System Security with SELinux
0
-
Intro
222 -
The Red Hat family: Fedora, CentOS Stream, Red Hat Enterprise Linux
737 -
The extended Red Hat family: Rocky Linux, AlmaLinux, Oracle Linux
292 -
The Debian family: Debian, Ubuntu, Kali Linux, Raspberry Pi OS, Linux Mint
503 -
Ubuntu Linux and its variants: Ubuntu Server, Kubuntu, Xubuntu, Lubuntu
528 -
The SUSE family: SUSE Linux Enterprise, openSUSE: Leap & Tumbleweed
319 -
Arch Linux
287 -
Gentoo Linux
393 -
How to choose a Linux Distribution?
224
-
Intro
323 -
Our first Bash Script
356 -
What is a Shebang?
510 -
Comments in Bash
654 -
Variables in Bash
675 -
Bash Variables vs. Environment Variables
562 -
How to not declare a Variable
479 -
The `declare` command
693 -
Unsetting Variables
178 -
Test your knowledge about Bash Scripting Basics
-
Reading Input (`read`)
313 -
Advanced `read` Usage
552 -
Reading the Contents of a File
355 -
Let's Create a Program
656 -
Exercise (Overview): System Info Script
447 -
Exercise: The starting script for my solution
-
Solution: System Info Script
601 -
Solution (download): System Info Script
-
Intro
112 -
How an HTTP Request works
608 -
[Windows]: Install git Bash Environment on Windows
-
First steps with `curl`
571 -
Extra lecture (optional): How the Download Bar from `curl` works
231 -
What is JSON?
476 -
The Program jq
393 -
Test your knowledge about APIs & JSON
-
Exercise (Materials): Fetch Weather Data
-
Exercise (Overview): Fetch Weather Data
585 -
Solution (Materials): Fetch Weather Data
-
Solution: Fetch Weather Data (Part 1; API)
378 -
Solution: Fetch Weather Data (Part 2; JSON)
466
-
Intro
178 -
Exit Codes
525 -
Chaining Commands
283 -
Chaining Commands with OR
180 -
Testing values
558 -
The `if` Statement in Bash
599 -
The `elif` Statement
309 -
Comparing Strings
275 -
Pattern Matching
568 -
Test your knowledge about Tests in Bash and `if` Statements (Part 1)
-
Checking for Files
205 -
Numeric Tests
493 -
More Complex Conditions
362 -
Exercise (Material): Conditional File Download
-
Exercise (Overview): Conditional File Download
297 -
Solution (Material): Conditional File Download
-
Solution: Conditional File Download
883 -
How not to Test
620 -
The `case` Statement
636 -
Test your knowledge about Tests in Bash and `if` Statements (Part 2)
-
Intro
78 -
Materials
-
A first `while` Loop
391 -
`break` and `continue`
267 -
Reading a File Line by Line
641 -
Test your knowledge about `while` Loops
-
Exercise (Material): Bulk Image Download
-
Exercise (Overview): Bulk Image Download
357 -
Solution (Material): Bulk Image Download
-
Solution: Bulk Image Download (Part 1)
484 -
Solution: Bulk Image Download (Part 2)
656
-
Intro
129 -
Materials
-
The `select` Construct
416 -
Example: `select` and `case` in Action
310 -
Installing the `dialog` Program
129 -
Creating a first Dialog (msgbox)
463 -
Creating a "yesno" Dialog
294 -
Creating a Text Input Dialog
642 -
Creating Menus
246 -
GUI dialoges with zenity
683 -
Test your knowledge about Interactive Menus
-
Exercise: Interactive Students Administration
146 -
Solution (Materials): Interactive Students Administration
-
Solution: Interactive Students Administration
787
-
Intro
128 -
Materials
-
Accepting Arguments
563 -
The `shift` command
398 -
`shift` and `while`
388 -
The `getopts` command
405 -
Accepting Multiple Options (`getopts`, `while`)
680 -
Accepting Options with Arguments
380 -
Test your knowledge about Arguments
-
[S40 & S41]: Making Bash Scripts Interactive and Flexible
0
-
Intro
148 -
Creating a first Function
402 -
Variables within a Function
566 -
Getting Data into a Function
546 -
Getting Data out of a Function
440 -
Test your knowledge about Functions
-
Project (Overview): Trivia Game
269 -
Materials
-
Project (Exercise): Trivia Game (Part 1)
709 -
Project (Solution): Trivia Game (Part 2)
716 -
Project (Solution): Trivia Game (Part 3)
530 -
Project (Solution): Trivia Game (Part 4)
541 -
Project: Trivia Game (Part 5: random order)
431 -
Project: Trivia Game (Part 6: final touches)
635
-
Intro
255 -
Materials
-
Our first Array
580 -
Accessing an Array
378 -
Overwriting Array Elements
194 -
Test your knowledge about Arrays (1/3)
-
Array Operations
305 -
Copying an Array
275 -
`for` and `select`
424 -
Test your knowledge about Arrays (2/3)
-
Output of Program to Array
619 -
Output to Array (`readarray`)
347 -
How to check if an Array contains a specific Element
522 -
Associative Arrays
689 -
Test your knowledge about Arrays (3/3)
-
Exercise (Overview): Directory Storage Monitor
188 -
Solution (Material): Directory Storage Monitor
-
Solution: Directory Storage Monitor
369 -
Extra lecture (optional) (Enhancement): Directory Storage Monitor
746 -
[S42 & S43]: Structuring Bash with Functions and Arrays
0
-
Intro
94 -
Materials
-
Working with Archives
574 -
Compression (gz, bz2, xz)
834 -
Manually creating a .tar.bz2 file
173 -
Automatically creating a .tar.bz2 file
249 -
Exercise: Write a Backup Script
347 -
Exercise (Hints): Write a Backup Script (date)
362 -
Solution (Materials): Write a Backup Script
-
Solution: Write a Backup Script (Part 1)
445 -
Solution: Write a Backup Script (Part 2: adding `for` Loop)
325 -
Solution: Write a Backup Script (Part 3: Error Handling I)
648 -
Solution: Write a Backup Script (Part 4: Error Handling II)
534
-
Intro
127 -
A first search with `grep`
442 -
Most important options for `grep`
422 -
Data for the next Quiz
-
Test your knowledge about Basic Usage of `grep -F`
-
More options for `grep`
343 -
Combining multiple `grep` commands in a pipeline
-
Extracting specific information with `grep` and `cut`
-
Data for the next Quiz
-
Test your knowledge about Advanced Usage of `grep -F`
-
Flavors of Regular Expressions
524 -
First Metacharacter: `. `
346 -
More Metacharacters: `^`, `$`, `\`
503 -
First Quantifier: `*`
338 -
Data for the next Quiz
-
Test your knowledge about BRE (Part 1)
-
Character Classes
418 -
Character Ranges
253 -
Negating Characters
347 -
Named Character Classes
294 -
Character Groups
396 -
Test your knowledge about BRE (Part 2)
-
From Basic Regular Expressions (BRE) to Extended Regular Expressions (ERE)
423 -
Alternations
245 -
More Quantifiers: `?`, `+`, `{n}`, `{n,m}`, `{n,}`
519 -
Word Boundaries
342 -
Test your knowledge about ERE
-
How to use ERE features in BRE?
375 -
How to use ERE in Bash tests? (`=~`)
210 -
Pearl Compatible Regular Expressions (PCRE)
610 -
Extra lecture (optional): Lookaheads & Lookbehinds (PCRE features)
539 -
Exercise: Log file from an Apache Webserver
-
Exercise (Overview): Analyze a Log File from an Apache Webserver
737 -
Exercise (Check): Analyze a Log File from an Apache Webserver
-
Solution: Analyze a Log File from an Apache Webserver
1045 -
[S45]: Improving Search Skills with Grep and Regex
0
-
Intro
64 -
Link to the download of the next lecture
-
`wget` vs `curl`
430 -
CLI options for `wget`
396 -
Batch downloading with `wget`
147 -
Links to the downloads of the next lecture
-
Download a whole website with `wget`
668 -
Checksums
919 -
Test your knowledge about wget
-
[S46]: Mastering Wget and File Integrity
0
-
Intro
539 -
Installation of Zsh
183 -
A first look into Zsh
421 -
Configuration Files for Zsh
329 -
Installing of Oh-My-Zsh
615 -
Extra lecture (optional): Different Behavior of `echo`
275 -
Zsh vs Bash, Expansions with Variables
311 -
Different Array Indexing
198 -
Extra lecture (optional): The Command `repeat`
199 -
Extra lecture (optional): Extended Globbing in Zsh
334 -
Extra lecture (optional): Zsh for Shell Scripts
182
Requirment
-
Basic Computer Literacy: Familiarity with general computer operations (opening files, searching the web,...)
-
An Open Mind: Eagerness to learn and explore new concepts
-
A System to Practice On: Access to a computer (Windows, Mac, or Linux) to run Linux simulations or installations. We will install everything required together - you pretty much just need a few GB of extra storage
-
Reliable Internet: For accessing course materials, videos, and online resources
Outcomes
-
Career Boost: Stand out in tech roles such as System Administrator, Web Developer, Software Engineer, DevOps Engineer, Site Reliability Engineer, and more
-
Master the CLI: You will never feel lost on the command line again. Daily tasks will be quicker and easier than ever before
-
Holistic Comprehension: Grasp the 'why' behind Linux. This makes learning intuitive and engaging. No annoying 1:1 memorisation needed!
-
Engaging & Interactive: Dive into a fun learning experience with numerous examples, hands-on projects, and quizzes to reinforce and test your knowledge
-
Package Management & Application: Navigate package systems seamlessly and apply knowledge in real-world projects
-
Advanced Bash Scripting: Create sophisticated scripts using loops, tests, APIs, and JSON for automation and complex tasks
-
Comprehensive Linux Insight: Understand processes, user groups, permissions, and get acquainted with system boots and storage mounts
-
All-Encompassing Guide: Dive into the definitive Linux course, meticulously crafted to be the only resource you'll ever need
0 Student
1 Course
0 review