├── .github └── pull_request_template.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── cohort-1 └── CURRICULUM.md └── cohort-2 └── L4Sec Labs Penetration testing syllabus for Linux Lagos.pdf /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | Kindly fill the areas that apply to your pull request. Simple answers will suffice. 2 | 3 | ## Taking a Session 4 | 5 | - Interest in teaching the topic: 6 | 7 | - Confirmed availability to take session: 8 | 9 | - If a date is not yet confirmed for session, what date's will you be available: 10 | 11 | ## Suggesting a New Topic 12 | 13 | - Experience level of target audience: 14 | 15 | - Interest in teaching the topic: 16 | 17 | ## Replacing an Exiting Topic 18 | 19 | - Reasons for dismissing the previous topic: 20 | 21 | - Relation of the new topic to the previous one: 22 | 23 | ## Improving an Exiting Topic 24 | 25 | - Reasons for suggested changes: 26 | 27 | ## Others 28 | 29 | - Purpose of proposed change: -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributing 3 | 4 | The Linux Lagos meetup is open to contributions from everyone and anyone. The goal is to make the community a better place, so some contributions may be accepted while some rejected. Regardless of the outcome, it is the goodwill towards improving the Linux Lagos meetup that matters. 5 | 6 | ## Curriculum Format 7 | 8 | You can contribute either by mentoring a class, suggesting a new topic, replacing, improving an existing topic. 9 | 10 | Kindly ensure that the appropriate parts of the `curriculum.md` file for the cohort of interest are modified. 11 | 12 | Curriculum files: 13 | 14 | - [Cohort One](https://github.com/linuxlagos/linux-curriculum/blob/master/cohort-1/CURRICULUM.md) 15 | 16 | Every class in the curriculum takes the format specified below: 17 | 18 | > Meetup X: Course Information 19 | > 20 | > Meetup Information 21 | > 22 | > - **Date:** To be announced 23 | > - **Time:** To be announced 24 | > - **Location:** To be announced 25 | > 26 | > Instructor Information 27 | > 28 | > - **Instructor:** To be announced 29 | > - **Twitter Handle:** To be announced 30 | > - **E-mail:** To be announced 31 | > 32 | > Course Description 33 | > 34 | > - Lorem ipsum dolor sit amet 35 | > 36 | > Prerequisites 37 | > 38 | > - Lorem ipsum dolor sit amet 39 | > 40 | > Course Objectives 41 | > 42 | > - Lorem ipsum dolor sit amet 43 | > 44 | > Resources 45 | > 46 | > - **●●**** Texts:** 47 | > - Lorem ipsum dolor sit amet 48 | > 49 | > - **●●**** Videos**: 50 | > - Lorem ipsum dolor sit amet 51 | 52 | ## Taking a Session 53 | 54 | If you intend to take a session, kindly update the **Instructor Information** section of the curriculum, that includes **Instructor**, **Twitter Handle** and **Email**. 55 | 56 | ## Suggesting a New Topic 57 | 58 | If you intend to suggest a new topic, kindly copy paste the format to the bottom of the curriculum. At minimum, fill the **Course Description**, **Prerequisites** and **Course Objectives** sections. Everyone will appreciate it if the **Resources** section can be filled too. 59 | 60 | ## Replacing an Existing Topic 61 | 62 | If you intend to replace an existing topic, kindly update the **Course Description**, **Prerequisites** and **Course Objectives** sections with the new topic details. 63 | 64 | Kindly update the **Resources** section with `Lorem ipsum dolor sit amet` placeholders as seen in the format. However, everyone will appreciate it if you can provide actual resources for the updated topic. 65 | 66 | 67 | ## Improving an Existing Topic 68 | 69 | If you intend to improve an existing topic, kindly update one or more of the **Course Description**, **Prerequisites**, **Course Objectives** and **Resources** sections with the desired improvements. 70 | 71 | ## Code of Conduct 72 | 73 | ### The Standards 74 | 75 | Examples of behavior that contributes to creating a positive environment 76 | include: 77 | 78 | * Using welcoming and inclusive language 79 | * Being respectful of differing viewpoints and experiences 80 | * Gracefully accepting constructive criticism 81 | * Focusing on what is best for the community 82 | * Showing empathy towards other community members 83 | 84 | Examples of unacceptable behavior by participants include: 85 | 86 | * The use of sexualized language or imagery and unwelcome sexual attention or 87 | advances 88 | * Trolling, insulting/derogatory comments, and personal or political attacks 89 | * Public or private harassment 90 | * Publishing others' private information, such as a physical or electronic 91 | address, without explicit permission 92 | * Other conduct which could reasonably be considered inappropriate in a 93 | professional setting 94 | 95 | ### Attribution 96 | 97 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 98 | available at [http://contributor-covenant.org/version/1/4][version] 99 | 100 | [homepage]: http://contributor-covenant.org 101 | [version]: http://contributor-covenant.org/version/1/4/ 102 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Linux Lagos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # linux-curriculum 2 | Breakdown of topics to cover when going from Beginner to Advanced in Linux 3 | 4 | 5 | 6 | # Curriculum 7 | The curriculum contains resources for different chapters as the meetup progresses. You can contribute to the curriculum by taking a session, suggesting a new topic, replacing or improving an existing topic. Follow [this guide](https://github.com/linuxlagos/linux-curriculum/blob/master/CONTRIBUTING.md) to make contributions. 8 | 9 | | Name | Function | Link | 10 | | --- | --- | --- | 11 | | Cohort 1 | Basics | [cohort-1](cohort-1/CURRICULUM.md) | 12 | -------------------------------------------------------------------------------- /cohort-1/CURRICULUM.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Linux Meetup Organization** 4 | 5 | Cohort One Course Syllabus 6 | 7 | --- 8 | Meetup 1: Course Information 9 | 10 | Meetup Information 11 | 12 | - **Date:** February 1st, 2019 13 | - **Time:** 10am 14 | - **Location:** NGHUB 15 | 16 | Instructor Information 17 | 18 | - **Instructor:** James John 19 | - **Twitter Handle:** @donjajo 20 | - **Recap:** https://medium.com/linux-lagos/starting-off-a-new-linux-paradigm-890019ab1ef6?source=friends_link&sk=c4615a5f19995658dbf1ccfed55072af 21 | 22 | 23 | Course Description 24 | 25 | - Shell Scripting Part One 26 | 27 | Prerequisites 28 | 29 | - A Linux environment 30 | 31 | Course Objectives 32 | 33 | - To get members comfortable with basic terminal tools 34 | - To get members introduced to bash syntax 35 | 36 | Resources 37 | 38 | - **●●**** Texts:** 39 | - Chapter 2: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 40 | - Chapter 2: Linux 101 Hacks 41 | - [Basics of the command line](https://yakking.branchable.com/posts/command-line-basics/) 42 | - [Basic Shell Tools](https://yakking.branchable.com/posts/basic-shell-tools/) 43 | - [Shell Scripting Tutorial](https://www.shellscript.sh/) 44 | - [Bash Scripting Tutorial for Beginners](https://linuxconfig.org/bash-scripting-tutorial-for-beginners) 45 | - **●●**** Videos**: 46 | - [Beginner's Guide to the Bash Terminal](https://www.youtube.com/watch?v=oxuRxtrO2Ag) 47 | - [Shell Scripting Tutorial for Beginners](https://www.youtube.com/playlist?list=PLS1QulWo1RIYmaxcEqw5JhK3b-6rgdWO_) 48 | - [Shell Scripting Crash Course -- Beginner Level](https://www.youtube.com/watch?v=v-F3YLd6oMw) 49 | - [A Beginner's Introduction to BASH Shell Scripting](https://www.youtube.com/watch?v=_n5ZegzieSQ) 50 | 51 | --- 52 | Meetup 2: Course Information 53 | 54 | Meetup Information 55 | 56 | - **Date:** February 15th, 2019 57 | - **Time:** 10am 58 | - **Location:** Semicolon Africa 59 | 60 | Instructor Information 61 | 62 | - **Instructor:** Diret Domnan and Bakare Emmanuel 63 | - **Twitter Handle:** [@_deven96](https://twitter.com/_deven96) and [@TiemmaBakare](https://twitter.com/TiemmaBakare) 64 | 65 | Course Description 66 | 67 | - Introduction to Linux Package Management 68 | 69 | Prerequisites 70 | 71 | - A Linux environment 72 | 73 | Course Objectives 74 | 75 | - To get members comfortable with installing, upgrading, configuring and removing packages. 76 | - To get members to become comfortable with troubleshooting package management errors. 77 | 78 | Resources 79 | 80 | - **●●**** Texts:** 81 | - Chapter 13: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 82 | - [Using apt Commands in Linux [Complete Guide]](https://itsfoss.com/apt-command-guide/) 83 | - [Apt Package Management Tool](https://linuxhint.com/primer_apt_package_management_tool/) 84 | - [Using Yum and RPM.](https://developer.ibm.com/technologies/linux/tutorials/l-lpic1-102-5/) 85 | - **●●**** Videos**: 86 | - [The APT Package Manager in Debian and Ubuntu](https://www.youtube.com/watch?v=X20QCZlOhzM) 87 | - [7 Apt Commands Every Ubuntu Linux User Should Know](https://www.youtube.com/watch?v=ECWKViCaI_A) 88 | - [Linux Terminal 201: Apt vs Apt-Get - HakTip 151](https://www.youtube.com/watch?v=9jNcjdQxEV8) 89 | - [Using YUM Package Manager.](https://www.youtube.com/watch?v=dA_P2Qy_FyA) 90 | 91 | --- 92 | Meetup 3: Course Information 93 | 94 | Meetup Information 95 | 96 | - **Date:** To be announced 97 | - **Time:** To be announced 98 | - **Location:** To be announced 99 | 100 | Instructor Information 101 | 102 | - **Instructor:** To be announced 103 | - **Twitter Handle:** To be announced 104 | - **E-mail:** To be announced 105 | 106 | Course Description 107 | 108 | - Shell Scripting Part Two 109 | 110 | Prerequisites 111 | 112 | - A Linux environment 113 | 114 | Course Objectives 115 | 116 | - To get members comfortable with basic terminal tools 117 | - To get members introduced to bash syntax 118 | 119 | Resources 120 | 121 | - **●●**** Texts:** 122 | - Chapter 2: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 123 | - [Basics of the command line](https://yakking.branchable.com/posts/command-line-basics/) 124 | - [Basic Shell Tools](https://yakking.branchable.com/posts/basic-shell-tools/) 125 | - [Shell Scripting Tutorial](https://www.shellscript.sh/) 126 | - [Bash Scripting Tutorial for Beginners](https://linuxconfig.org/bash-scripting-tutorial-for-beginners) 127 | - **●●**** Videos**: 128 | - [Beginner's Guide to the Bash Terminal](https://www.youtube.com/watch?v=oxuRxtrO2Ag) 129 | - [Shell Scripting Tutorial for Beginners](https://www.youtube.com/playlist?list=PLS1QulWo1RIYmaxcEqw5JhK3b-6rgdWO_) 130 | - [Shell Scripting Crash Course -- Beginner Level](https://www.youtube.com/watch?v=v-F3YLd6oMw) 131 | - [A Beginner's Introduction to BASH Shell Scripting](https://www.youtube.com/watch?v=_n5ZegzieSQ) 132 | --- 133 | Meetup 4: Course Information 134 | 135 | Meetup Information 136 | 137 | - **Date:** To be announced 138 | - **Time:** To be announced 139 | - **Location:** To be announced 140 | 141 | Instructor Information 142 | 143 | - **Instructor:** To be announced 144 | - **Twitter Handle:** To be announced 145 | - **E-mail:** To be announced 146 | 147 | Course Description 148 | 149 | - An Introduction to The Linux Filesystem 150 | 151 | Prerequisites 152 | 153 | - A Linux environment 154 | 155 | Course Objectives 156 | 157 | - To get members comfortable with creating and manipulating files 158 | - To provide base knowledge for members who intend going deeper into Linux Systems Administration 159 | 160 | Resources 161 | 162 | - **●●**** Texts:** 163 | - Chapter 6: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 164 | - [The Linux Filesystem Explained](https://www.linux.com/tutorials/linux-filesystem-explained/) 165 | - [An introduction to Linux filesystems](https://opensource.com/life/16/10/introduction-linux-filesystems) 166 | - [Everything is a File](https://opensource.com/life/15/9/everything-is-a-file) 167 | - **●●**** Videos**: 168 | - [Learning the Linux File System](https://www.youtube.com/watch?v=HIXzJ3Rz9po&t=1s) 169 | - [Linux File System/Structure Explained!](https://www.youtube.com/watch?v=HbgzrKJvDRw) 170 | - [The Linux File System...for humans](https://www.youtube.com/watch?v=UFIoRLqhFpo) 171 | --- 172 | Meetup 5: Course Information 173 | 174 | Meetup Information 175 | 176 | - **Date:** To be announced 177 | - **Time:** To be announced 178 | - **Location:** To be announced 179 | 180 | Instructor Information 181 | 182 | - **Instructor:** To be announced 183 | - **Twitter Handle:** To be announced 184 | - **E-mail:** To be announced 185 | 186 | Course Description 187 | 188 | - User Management on Linux -- Part One 189 | 190 | Prerequisites 191 | 192 | - A Linux environment 193 | - Ability to use shell commands 194 | 195 | Course Objectives 196 | 197 | - To get members comfortable with user and group management 198 | 199 | Resources 200 | 201 | - **●●**** Texts:** 202 | - Chapter 4 and 7: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 203 | - [Basic Linux Navigation and File Management](https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management) 204 | - [An Introduction to Linux Permissions](https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions) 205 | - [Managing Users & Groups, File Permissions & Attributes and Enabling sudo Access on Accounts](https://www.tecmint.com/manage-users-and-groups-in-linux/) 206 | - **●●**** Videos**: 207 | - [Linux Sysadmin Basics -- User Account Management](https://www.youtube.com/watch?v=UN1QB5BIvps) 208 | - [Linux Sysadmin Basics -- Linux File Permissions](https://www.youtube.com/watch?v=8SkN7UofOww) 209 | - [Users, Groups and Permissions in Linux](https://www.youtube.com/watch?v=zRw0SKaXSfI) 210 | - [Managing Users, Groups & Permissions in Linux](https://www.youtube.com/watch?v=Nm5iT-sAr3A) 211 | --- 212 | Meetup 6: Course Information 213 | 214 | Meetup Information 215 | 216 | - **Date:** To be announced 217 | - **Time:** To be announced 218 | - **Location:** To be announced 219 | 220 | Instructor Information 221 | 222 | - **Instructor:** To be announced 223 | - **Twitter Handle:** To be announced 224 | - **E-mail:** To be announced 225 | 226 | Course Description 227 | 228 | - User Management on Linux -- Part Two 229 | 230 | Prerequisites 231 | 232 | - A Linux environment 233 | - Ability to use shell commands 234 | 235 | Course Objectives 236 | 237 | - To get members comfortable Linux file permissions 238 | 239 | Resources 240 | 241 | - **●●**** Texts:** 242 | - Chapter 4 and 7: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 243 | - [Basic Linux Navigation and File Management](https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management) 244 | - [An Introduction to Linux Permissions](https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions) 245 | - [Managing Users & Groups, File Permissions & Attributes and Enabling sudo Access on Accounts](https://www.tecmint.com/manage-users-and-groups-in-linux/) 246 | - **●●**** Videos**: 247 | - [Linux Sysadmin Basics -- User Account Management](https://www.youtube.com/watch?v=UN1QB5BIvps) 248 | - [Linux Sysadmin Basics -- Linux File Permissions](https://www.youtube.com/watch?v=8SkN7UofOww) 249 | - [Users, Groups and Permissions in Linux](https://www.youtube.com/watch?v=zRw0SKaXSfI) 250 | - [Managing Users, Groups & Permissions in Linux](https://www.youtube.com/watch?v=Nm5iT-sAr3A) 251 | --- 252 | Meetup 7: Course Information 253 | 254 | Meetup Information 255 | 256 | - **Date:** To be announced 257 | - **Time:** To be announced 258 | - **Location:** To be announced 259 | 260 | Instructor Information 261 | 262 | - **Instructor:** To be announced 263 | - **Twitter Handle:** To be announced 264 | - **E-mail:** To be announced 265 | 266 | Course Description 267 | 268 | - Introduction to Linux Processes -- Part One 269 | 270 | Prerequisites 271 | 272 | - A Linux environment 273 | - Ability to use shell commands 274 | 275 | Course Objectives 276 | 277 | - To help members understand linux processes and how to manage them 278 | 279 | Resources 280 | 281 | - **●●**** Texts:** 282 | - Chapter 5: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 283 | - [All You Need To Know About Processes in Linux](https://www.tecmint.com/linux-process-management/) 284 | - [Linux Process Management: Commands You Should Know](https://www.hostingadvice.com/blog/linux-process-management-commands-know/) 285 | - [Introduction to Linux Process Management](https://www.2000trainers.com/linux/linux-process-manage/) 286 | - **●●**** Videos**: 287 | - [Linux processes, init, fork/exec, ps, kill, fg, bg, jobs](https://www.youtube.com/watch?v=TJzltwv7jJs) 288 | - [Linux Process Management](https://www.youtube.com/playlist?list=PL6IQ3nFZzWfp7tS-zcSw8mt04ROk0qLFN) 289 | - [Process Management in LINUX | Monitoring and Controlling Processes | Explained with Examples](https://www.youtube.com/watch?v=eqv4xk6ihRE) 290 | --- 291 | Meetup 8: Course Information 292 | 293 | Meetup Information 294 | 295 | - **Date:** To be announced 296 | - **Time:** To be announced 297 | - **Location:** To be announced 298 | 299 | Instructor Information 300 | 301 | - **Instructor:** To be announced 302 | - **Twitter Handle:** To be announced 303 | - **E-mail:** To be announced 304 | 305 | Course Description 306 | 307 | - Introduction to Linux Processes -- Part Two 308 | 309 | Prerequisites 310 | 311 | - A Linux environment 312 | - Ability to use shell commands 313 | 314 | Course Objectives 315 | 316 | - To help members understand linux processes and how to manage them 317 | 318 | Resources 319 | 320 | - **●●**** Texts:** 321 | - Chapter 5: UNIX® AND LINUX® SYSTEM ADMINISTRATION HANDBOOK 322 | - [All You Need To Know About Processes in Linux](https://www.tecmint.com/linux-process-management/) 323 | - [Linux Process Management: Commands You Should Know](https://www.hostingadvice.com/blog/linux-process-management-commands-know/) 324 | - [Introduction to Linux Process Management](https://www.2000trainers.com/linux/linux-process-manage/) 325 | - **●●**** Videos**: 326 | - [Linux processes, init, fork/exec, ps, kill, fg, bg, jobs](https://www.youtube.com/watch?v=TJzltwv7jJs) 327 | - [Linux Process Management](https://www.youtube.com/playlist?list=PL6IQ3nFZzWfp7tS-zcSw8mt04ROk0qLFN) 328 | - [Process Management in LINUX | Monitoring and Controlling Processes | Explained with Examples](https://www.youtube.com/watch?v=eqv4xk6ihRE) 329 | --- 330 | Meetup 9: Course Information 331 | 332 | Meetup Information 333 | 334 | - **Date:** To be announced 335 | - **Time:** To be announced 336 | - **Location:** To be announced 337 | 338 | Instructor Information 339 | 340 | - **Instructor:** Samuel Anyaele 341 | - **Twitter Handle:** @_TheMobileProf 342 | - **E-mail:** themobileprof.com@gmail.com 343 | 344 | Course Description 345 | 346 | - Learning VIM Basics 347 | 348 | Prerequisites 349 | 350 | - A Linux environment 351 | 352 | Course Objectives 353 | 354 | - To help members get comfortable with using code editors in GUI-less environments 355 | - Learn how to personalize your Neovim setup with vim-plug 356 | 357 | Resources 358 | 359 | - **●●**** Texts:** 360 | - [Vim 101: A Beginner's Guide to Vim](https://www.linux.com/tutorials/vim-101-beginners-guide-vim/) 361 | - [Basic Vim Commands Every Linux User Must Know](https://linuxhandbook.com/basic-vim-commands/) 362 | - [Getting started with Vim: The basics](https://opensource.com/article/19/3/getting-started-vim) 363 | - **●●**** Videos**: 364 | - [Vim for Editing Files in Linux](https://www.youtube.com/watch?v=ImK_dHPOTIE) 365 | - [Vim Editor Fundamentals](https://www.youtube.com/watch?v=XguBRi4TDNc) 366 | - [Intro to VIM / VI Editor with Basic Commands](https://www.youtube.com/watch?v=Shf_LRTNGh4) 367 | -------------------------------------------------------------------------------- /cohort-2/L4Sec Labs Penetration testing syllabus for Linux Lagos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxlagos/linux-curriculum/00f98d40ee79f7d9eb37c56f3a35157bd61e71fe/cohort-2/L4Sec Labs Penetration testing syllabus for Linux Lagos.pdf --------------------------------------------------------------------------------