Linux Upskill Challenge
An Introduction to Linux Server Administration
This includes all the source material for the 20 lessons of what was previously a commercial online Linux server admin course - now free for you to learn with!
If you spot any typos or "dead links" simply raise an issue.
READ THIS FIRST!
HOW THIS WORKS & FAQ
Table of Contents
- Day 0 - Creating Your Own Server: how to setup your lab in AWS, Azure, Google Cloud, Digital Ocean and on a local server
- Day 1 - Get to know your server: Starting with
ssh
-ing in and some simple commands like: ls
, uptime
, free
, df -h
, uname -a
. Extensions on doing passwordless login with public keys and and an ssh
config file.
- Day 2 - Basic navigation: Basic navigation, the "man" pages, file hierarchy
- Day 3 - Power trip!: Working with
sudo
, uptime
, timezones
, changing your hostname
- Day 4 - Installing software, exploring the file structure: Using 'apt' to find and install software. Use of
mc
to explore the filesystem. Looking at the contents of: /etc/passwd
, /etc/ssh/sshd_config
and /var/log/auth.log
- Day 5 - More or less...: Using
more
, less
and navigating in these. Dotfiles, history, tab completion, and using the nano
txt editor
- Day 6 - Editing with "vim": Learning
vim
, the minimal knowledge, but also via vimtutor
- Day 7 - The server and its services: Installing Apache2, stopping and starting, altering the content, reading logs
- Day 8 - The infamous "grep" and other text processors: Hands-on with text tools like
grep
, cat
, more
, less
, cut
, awk
and tail
- and piping of course. (and a wave to awk
and sed
)
- Day 9 - Diving into networking: Looking at open ports with
ss
, and a nod to netstat
, install nmap
and test. Install ufw
, set up, enable and test etc. Discuss security resonsibilities as the sysadmin.
- Day 10 - Scheduling tasks: Covering
cron
, at
, and systemd timers
- Day 11 - Finding things...: Finding things with:
locate
, find
, grep
, which
- Day 12 - Transferring files: SFTP, the technology, clients, and copying up and down
- Day 13 - Users and Groups: Using
adduser
, visudo
to setup up a restricted "helper" to manage our host
- Day 14 - Who has permission?: Permissions, users, groups, (ACLS and SELinux in the Extension)
- Day 15 - Deeper into repositories...: Repositories in more detail, how to enable "Multiverse", the role of PPAs in Ubuntu, enabling and installing from them
- Day 16 - Archiving and compressing: Understanding and using
tar
and gzip
- Day 17 - Build from the source: Installing from source. Discussion, using
wget
to get a tarball, tar
to extract and then configure, make and install. Discussion of security, maintenance issues.
- Day 18 - Logs, monitoring and troubleshooting: Log management and rotation,
logrotate
- Day 19 - Inodes, symlinks and other shortcuts: Inodes, hard links symlinks and
stat
- Day 20 - Scripting: Understanding how scripting work in Linux, the shebang, permissions and $PATH. A couple of simple sample scripts based on the filtering of logs we've been doing. Resources to explore further.
- Day 21 - What's next?: Closing the course with some suggestions.
You are free to use this under the terms of the license, but feel free to donate or contribute to keep the challenge running: