{"id":13455386,"url":"https://github.com/livialima/linuxupskillchallenge","last_synced_at":"2025-10-06T20:30:48.817Z","repository":{"id":260956094,"uuid":"865700386","full_name":"livialima/linuxupskillchallenge","owner":"livialima","description":"Learn the skills required to sysadmin a remote Linux server from the commandline.","archived":false,"fork":false,"pushed_at":"2024-11-23T04:51:34.000Z","size":2115,"stargazers_count":42,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-23T05:24:28.726Z","etag":null,"topics":["linux","linux-command-line"],"latest_commit_sha":null,"homepage":"https://linuxupskillchallenge.org/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livialima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"livialima","custom":"https://www.buymeacoffee.com/livialima"}},"created_at":"2024-10-01T01:21:12.000Z","updated_at":"2024-11-23T04:51:16.000Z","dependencies_parsed_at":"2024-11-05T19:33:42.218Z","dependency_job_id":null,"html_url":"https://github.com/livialima/linuxupskillchallenge","commit_stats":null,"previous_names":["livialima/linuxupskillchallenge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livialima%2Flinuxupskillchallenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livialima%2Flinuxupskillchallenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livialima%2Flinuxupskillchallenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livialima%2Flinuxupskillchallenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livialima","download_url":"https://codeload.github.com/livialima/linuxupskillchallenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235547083,"owners_count":19007620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","linux-command-line"],"created_at":"2024-07-31T08:01:04.729Z","updated_at":"2025-10-06T20:30:43.456Z","avatar_url":"https://github.com/livialima.png","language":"HTML","readme":"\u003cdiv align=\"center\" width=\"100%\"\u003e\n  \u003ch1\u003eLinux Upskill Challenge\u003c/h1\u003e\n  \u003ch3\u003eAn Introduction to Linux Server Administration\u003c/h3\u003e\n  \u003ca href=\"https://linuxupskillchallenge.org/\"\u003e\u003cimg alt=\"Website\" src=\"https://img.shields.io/website?url=https%3A%2F%2Flinuxupskillchallenge.org\u0026style=for-the-badge\u0026label=LinuxUpskillChallenge.org\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://programming.dev/c/linuxupskillchallenge\"\u003e\u003cimg alt=\"Lemmy subscribers\" src=\"https://img.shields.io/lemmy/linuxupskillchallenge%40programming.dev?style=for-the-badge\u0026logo=lemmy\u0026logoColor=white\u0026label=lemmy\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.reddit.com/r/linuxupskillchallenge/\"\u003e\u003cimg alt=\"Subreddit subscribers\" src=\"https://img.shields.io/reddit/subreddit-subscribers/linuxupskillchallenge?style=for-the-badge\u0026logo=reddit\u0026logoColor=white\u0026label=reddit\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/linux-upskill-challenge-682046666928685068\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/682046666928685068?label=discord\u0026logo=discord\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\u003c/a\u003e\u003c/br\u003e\n  \u003cimg alt=\"GitHub last commit (branch)\" src=\"https://img.shields.io/github/last-commit/livialima/linuxupskillchallenge/master?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/livialima/linuxupskillchallenge?style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitHub watchers\" src=\"https://img.shields.io/github/watchers/livialima/linuxupskillchallenge?style=for-the-badge\"\u003e\n  \u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/livialima/linuxupskillchallenge?style=for-the-badge\"\u003e\n  \u003ca href=\"https://github.com/sponsors/livialima\"\u003e\u003cimg alt=\"GitHub Sponsors\" src=\"https://img.shields.io/github/sponsors/livialima?style=for-the-badge\u0026logo=githubsponsors\"\u003e\u003c/a\u003e\u003c/br\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/livialima\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/arial-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 45px !important;width: 164px !important;\" \u003e\u003c/a\u003e\n\u003c/div\u003e\n\nThis 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!\n\n*If you spot any typos or \"dead links\" simply [raise an issue](https://github.com/livialima/linuxupskillchallenge/issues/new/choose).*\n\n* [Website of the course](https://LinuxUpskillChallenge.org)\n* [Full lesson source](https://github.com/livialima/linuxupskillchallenge)\n* [Complementary video playlists](https://www.youtube.com/@livia2lima/search?query=linuxupskillchallenge)\n* [Monthly lessons on Lemmy](https://programming.dev/c/linuxupskillchallenge)\n* [Monthly lessons on Reddit](https://www.reddit.com/r/linuxupskillchallenge/)\n* [Chat with Discord](https://discord.gg/linux-upskill-challenge-682046666928685068)\n\n## READ THIS FIRST!\n[HOW THIS WORKS \u0026 FAQ](docs/how-this-works.md)\n\n## Table of Contents\n\n* [Day 0](docs/00.md) - **Creating Your Own Server**: how to setup your lab in AWS, Azure, Google Cloud, Digital Ocean and on a local server\n* [Day 1](docs/01.md) - **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.\n* [Day 2](docs/02.md) - **Basic navigation**: Basic navigation, the \"man\" pages, file hierarchy\n* [Day 3](docs/03.md) - **Power trip!**: Working with `sudo`, `uptime`, `timezones`, changing your hostname\n* [Day 4](docs/04.md) - **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`\n* [Day 5](docs/05.md) - **More or less...**: Using `more`, `less` and navigating in these. Dotfiles, history, tab completion, and using the `nano` txt editor\n* [Day 6](docs/06.md) - **Editing with \"vim\"**: Learning `vim`, the minimal knowledge, but also via `vimtutor`\n* [Day 7](docs/07.md) - **The server and its services**: Installing Apache2, stopping and starting, altering the content, reading logs\n* [Day 8](docs/08.md) - **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`)\n* [Day 9](docs/09.md) - **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.\n* [Day 10](docs/10.md) - **Scheduling tasks**: Covering `cron`, `at`, and systemd timers\n* [Day 11](docs/11.md) - **Finding things...**: Finding things with: `locate`, `find`, `grep`, `which`\n* [Day 12](docs/12.md) - **Transferring files**: SFTP, the technology, clients, and copying up and down\n* [Day 13](docs/13.md) - **Users and Groups**: Using `adduser`, `visudo` to setup up a restricted \"helper\" to manage our host\n* [Day 14](docs/14.md) - **Who has permission?**: Permissions, users, groups, (ACLS and SELinux in the Extension)\n* [Day 15](docs/15.md) - **Deeper into repositories...**: Repositories in more detail, how to enable \"Multiverse\", the role of PPAs in Ubuntu, enabling and installing from them\n* [Day 16](docs/16.md) - **Archiving and compressing**: Understanding and using `tar` and `gzip`\n* [Day 17](docs/17.md) - **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.\n* [Day 18](docs/18.md) - **Logs, monitoring and troubleshooting**: Log management and rotation, `logrotate`\n* [Day 19](docs/19.md) - **Inodes, symlinks and other shortcuts**: Inodes, hard links symlinks and `stat`\n* [Day 20](docs/20.md) - **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.\n* [Day 21](docs/21.md) - **What's next?**: Closing the course with some suggestions.\n\n*You are free to use this under the terms of the license, but feel free to donate or contribute to keep the challenge running:*\n\u003cp\u003e\n  \u003ca href=\"https://github.com/sponsors/livialima\"\u003e\u003cimg alt=\"GitHub Sponsors\" src=\"https://img.shields.io/github/sponsors/livialima?style=for-the-badge\u0026logo=githubsponsors\u0026label=Be%20a%20Sponsor!\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/livialima\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/arial-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 32px !important;width: 114px !important;\" \u003e\u003c/a\u003e\n\u003c/p\u003e\n","funding_links":["https://github.com/sponsors/livialima","https://www.buymeacoffee.com/livialima"],"categories":["HTML","Learning Resources","Linux生态圈Dev\u0026Ops工具与服务"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivialima%2Flinuxupskillchallenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivialima%2Flinuxupskillchallenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivialima%2Flinuxupskillchallenge/lists"}