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.

 

More Information

The Linux Upskill Challenge
YouTube Playlist

Reddit

Related Articles

Learn Python with HackInScience

Three Tips for the Linux Shell Addict

Kickstart Coding With Endless OS

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Flox Releases Flox Hub
13/03/2024

Flox has announced that its Command Line Interface (CLI) and FloxHub are now generally available. The CLI is open source and FloxHub is free for anyone to use.



JetBrains Announces TeamCity Pipelines
19/03/2024

JetBrains has released a public beta of TeamCity Pipelines, a cloud-based Continuous Integration/Continuous Deployment (CI/CD) service for small and medium-sized engineering teams.


More News

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 15 July 2021 )