|The Linux Upskill Challenge|
|Written by Nikos Vaggalis|
|Thursday, 15 July 2021|
A compact and previously paid course is now free and open source. It teaches everything someone needs in order to transition to Linux.
The range of subjects covered includes a treat for everyone;from setting up your own lab on a VPS and accessing it, to installing software, exploring the file structure, working with the CLI and its commands, to more advanced subjects like scripting ??on bash.
The lessons are divided in 21 days, each day focusing on a separate subject, and although it's self-paced it requires a daily commitment of 1-2 hours each day for a month.
The full list of Days is as follows :
Day 0 - Creating Your Own Server: how to setup your lab in AWS, Azure, Digital Ocean, Google Cloud and others
Day 1 - Accessing your server: Starting with ssh-ing in and some simple commands like: ls, uptime, free, df -h, uname -a.
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 - Installing Apache: Installing Apache2, stopping and starting, altering the content, reading logs
Day 8 - The infamous "grep"...: 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 - Ports, open and closed: Looking at open ports with with ss, and a nod to netstat, install nmap and test. Install ufw, set up, enable and test etc. Discuss security responsibilities as the sysadmin.
Day 10 - Getting the computer to do your work for you: Covering cron, at, and systemd timers
Day 11 - Finding things...: locate, find, grep, which
Day 12 - Copying with SFTP: SFTP, the technology, clients, and copying up and down
Day 13 - Who has permission?: Permissions, users, groups, (ACLS and SELinux in the Extension)
Day 14 - Your little helper...: Using adduser, visudo to setup up a restricted "helper" to manage our host
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 - "tar" and friends...: Understanding and using tar and gzip
Day 17 - 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 - Log rotation: Log management and rotation, logrotate
Day 19 - Inodes, symlinks and stat: Inodes, hard links symlinks and stat
Day 20 - Scripting: Understanding how scripting work in Linux, the shebang, permissions and $PATH.
Day 21 - What's next?: Closing the course with some suggestions.
Material wise, it's a mix of short sections of text as well as short 5-10 minutes introductory YouTube videos that explain the concept at hand, after which you are expected to practice by being assigned a few related tasks.
So, for example, on Day 1, the tasks are to connect and login remotely to your server and run a few simple simple commands to check it out, while on Day 8 we have to dump out a file with cat but pipe that output to grep with a search term or use the -v option to invert the selection.
From the list of 21 lessons, ones I found particularly useful were Day 9 where you use ss or nmap to figure out which ports are closed or open as well as starting out with the default OS firewall, and Day 13 on the very important and frequently misused subject of how Linux handles file permissions.
The course leads up to Day 20 - Scripting, which covers:
"how to write small programs or “shell scripts” to help manage your system"
The following paragraph indicates of the level of experience that the course requires to follow along:
Why make a script rather than just typing commands in manually?
It saves typing. Remember when we searched through the logs with a long string of grep, cut and sort commands? If you need to do something like that more than a few times then turning it into a script saves typing - and typos!
Parameters. One script can be used to do several things depending on what parameters you provide
Automation. Pop your script in /etc/cron.daily and it will run each day, or install a symlink to it in the appropriate /etc/rc.d folder and you can have it run each time the system is shut down or booted up.
All lessons follow this uncomplicated and light pattern of explaining the concepts taught, something that makes obvious the target group that the course is addressing.
That said, apart from junior sysadmins, it's especially useful for Windows users who now with the introduction of WSL want to get that extra mileage from using Linux without having to install anything and find out what the fuss is about. However the course endorses the use of a VPS (Virtual Private Server), as described in Day 0.
Each lesson points to curated external links and there's also a reddit dedicated forum where students can post their progress, share their findings and exchange tips and opinions.
This is a pretty useful hands-on and informal introduction to Linux. Check it out on Github.
or email your comment to: email@example.com
|Last Updated ( Thursday, 15 July 2021 )|