Foundations
Foundations: What's Linux?
()
Foundations: Distros
()
Foundations: Installing Linux in a virtual machine
()
Foundations: USB installer
()
Foundations: Installing Linux
()
Foundations: Dual-booting your system
()
Foundations: Core Utilities
()
Foundations: Linux on a VPS
()
Linux on Azure
()
Google Cloud Platform
()
Linux on DigitalOcean
()
System Basics
System basics: The Linux file system
()
System basics: The command line
()
System basics: Keyboard shortcuts
()
System basics: sudo access and root
()
System basics: Explore a system
()
System basics: Exploring Bash
()
System basics: Bash scripting basics
()
System basics: The Bash prompt
()
System basics: Bash output redirection
()
Bash expansions and substitutions
()
Bash aliases and functions
()
Bash operators
()
Logs
()
Grub
()
SysV init
()
Systemd
()
Cron
()
Understanding chroot
()
System basics: User and group management
()
System basics: Service management
()
Backing up data with rsync
()
Splitting and combining files
()
Environment configuration files
()
Working with dotfiles
()
Exploring the PATH variable
()
Browsing with the directory stack
()
Finding or locating files
()
Working with swap
()
Read and write caches
()
Terminals, consoles, and TTYs
()
Exploring journalctl
()
Filesystem Basics
Files on Linux
()
File system basics: Archives
()
File system basics: Permissions 101
()
Loop devices
()
Configuring group file shares
()
Managing space on the file system
()
Overlay file systems
()
Bind mounts
()
Modifying the file system table
()
Sticky bit
()
Access control lists
()
Working with Text
Working with text: Vim 101
()
Working with text: Emacs 101
()
Working with text: nano 101
()
Working with text: grep
()
Working with text: Regular expressions
()
Working with text: sed
()
Working with text: AWK
()
Working with text: cut and sort
()
Working with text: ed 101
()
Package Management
Package management: Basics
()
aptitude
()
dpkg
()
yum and DNF
()
RPM
()
Creating your own packages
()
Adding third-party repositories with APT
()
Adding third-party repositories with Yum
()
Create a local APT repository
()
Create an APT repository for your network
()
Mirror repositories to save bandwidth
()
Zypper
()
Using Flatpak
()
Using snaps
()
Package management: PPAs
()
Homebrew package management
()
Using AppImage apps
()
Working Remotely
Remote files: curl and wget
()
SSH: Secure access
()
SSH: Transferring files with scp and sftp
()
SSH: Managing and distributing keys
()
SSH: Tunnels
()
Browsing the web through a proxy server
()
X11 forwarding
()
Using a SOCKS proxy
()
Using a Squid proxy
()
Using mosh
()
SSH: Reverse tunnel
()
Process Management
Process management: ps
()
Process management: top
()
Process management: htop
()
Process management: System load
()
Process management: fg, bg, and kill
()
Manage terminal sessions with screen
()
Manage terminal sessions with tmux
()
Customizing tmux
()
Security
Firewall basics
()
Understanding iptables
()
Exploring UFW: Uncomplicated firewall
()
File checksums
()
Services: Network Time Protocol (NTP)
()
Encrypting files
()
Encrypted filesystems
()
AppArmor
()
Security systems: SELinux
()
Firewalls: firewalld
()
System Administration
Disks and partitions
()
Logical volume management
()
Create a RAID array
()
Repairing a RAID array
()
Local IP address
()
Predictable network interface names
()
DNS
()
VPN
()
Exploring system hardware
()
Drivers and modules
()
Understanding QEMU and KVM
()
Creating a VM with QEMU and KVM
()
Private networking
()
Routing and forwarding
()
DHCP
()
Network troubleshooting
()
Wi-Fi on Linux
()
Set up a secure tunnel with WireGuard
()
Scanning network ports with Nmap
()
Desktops and Displays
Desktops: Basics
()
Desktops: GNOME
()
Desktops: Xfce
()
Desktops: KDE Plasma Desktop
()
Desktops: LXQt
()
Desktops: i3wm
()
Sharing your desktop with VNC
()
Remote desktop login with xrdp
()
Display geometry with GRUB
()
Display geometry with xrandr
()
Exploration Topics
Exploring Windows Subsystem for Linux
()
Windows Subsystem for Linux
()
Exploring virtualization
()
Exploring containers
()
Exploring Fedora
()
Ubuntu desktop 18.04
()
Changing the default shell
()
Exploring other shells
()
Blocking ads on your network with Pi-hole
()
Exploring CentOS
()
Exploring Zsh
()
Osquery
()
Exploring fish
()
Exploring csh and tcsh
()
Using diff to compare files
()
Using xargs
()
Configuring and managing logs
()
Job control
()
Using watch and time
()
Recording a terminal session
()
Exploring Debian
()
Exploring SUSE Linux
()
Exploring Arch Linux
()
Exploring Alpine Linux
()
Exploring Linux Mint
()
Exploring Amazon Linux
()
UNIX time and the 2038 problem
()
Visual file management with Midnight Commander
()
Terminal on the go
()
FUSE and SSHFS
()
Removing Linux
()
WSL distros on Windows 10
()
Embedded Linux
()
Exploring Netboot
()
Exploring ZFS
()
Docker on Linux
()
Troubleshooting Topics
Recover a system with Live Boot
()
Rescue mode and Emergency mode
()
Projects
Planning a home server
()
Backups with rsync
()
Linux on an old PC
()
Creating a disk image with dd
()
Mounting and writing disk images with dd
()
Migrating to a new distro
()
Planning a portable bootable disk
()
Creating a portable bootable disk
()
Host your own Apache web server
()
Set up Let’s Encrypt on a web server
()
Host a personal cloud with Nextcloud
()
Hosting email services
()
Set up a print server with CUPS
()
Create a network PDF printer
()
Remote logging with Rsyslog
()
Set up a Git server
()
NGINX web server
()
Share files with a Samba server
()
Set up an NFS server
()
Monitoring your server
()
Exploring Internet Relay Chat (IRC)
()
Keep on learning!
()