diff --git a/generate_md.py b/generate_md.py new file mode 100755 index 0000000..a4b131b --- /dev/null +++ b/generate_md.py @@ -0,0 +1,33 @@ +#!/usr/bin/python3 + +import re + + +INPUT = "readme.md" +OUTPUT = "todo_over_the_break.md" +URL = "https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/" + + +if __name__ == "__main__": + with open(INPUT, "r") as fp: + data = [] + for line in fp.readlines(): + stripped = line.strip() + stripped = stripped.replace("*", "") + stripped = stripped.strip() + if "(./" in stripped: + topic = stripped[stripped.find("[")+1:stripped.find("]")] + url = stripped.replace("(./", "({}".format(URL)) + url = re.sub("\[.*\]", "[Link]", url) + url = " * {} to course documentation".format(url) + header = "# {}".format(topic) + notes = "## Student notes:" + + data.append(header) + data.append(url) + data.append(notes) + data.append("TODO") + + with open(OUTPUT, "w") as fp: + for line in data: + fp.write("{}\n\n".format(line)) diff --git a/generate_toc.py b/generate_toc.py old mode 100644 new mode 100755 index dd5ccef..369d6b0 --- a/generate_toc.py +++ b/generate_toc.py @@ -1,3 +1,5 @@ +#!/usr/bin/python3 + import subprocess @@ -8,7 +10,8 @@ INPUT = [ "essential/introduction_to_linux.md", "essential/introduction_to_the_commandline.md", "essential/introduction_to_administration.md", - "advanced/learning_bash_scripting.md" + "advanced/learning_bash_scripting.md", + "advanced/learning_shells.md", ] CMD = "gh-md-toc" FILTER = "(#" @@ -17,14 +20,16 @@ TITLE = "Table of Contents" if __name__ == "__main__": try: - p = subprocess.Popen([CMD], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(CMD.split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = p.communicate() except Exception as e: print("please install {}".format(LINK)) exit() CONTENT = [] for f in INPUT: - p = subprocess.Popen([CMD, f], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + cmd = CMD.split() + cmd.append(f) + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = p.communicate() output = output.decode().split("\n") for line in output: diff --git a/readme.md b/readme.md index 3f129f5..6c576be 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,7 @@ Welcome! + Essential: introduction to linux ================= @@ -23,7 +24,7 @@ Essential: introduction to linux * [Exercise](./essential/introduction_to_linux.md#exercise-1) * [Guest additions](./essential/introduction_to_linux.md#guest-additions) - +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) Essential: introduction to the commandline @@ -59,18 +60,27 @@ Essential: introduction to the commandline * [The hard way](./essential/introduction_to_the_commandline.md#the-hard-way) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-5) * [Searching inside files](./essential/introduction_to_the_commandline.md#searching-inside-files) - * [Wildcards and regular expressions](./essential/introduction_to_the_commandline.md#wildcards-and-regular-expressions) - * [Wildcards](./essential/introduction_to_the_commandline.md#wildcards) + * [Wild cards and regular expressions](./essential/introduction_to_the_commandline.md#wild-cards-and-regular-expressions) + * [Wild cards](./essential/introduction_to_the_commandline.md#wild-cards) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-6) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-7) * [Regular expressions](./essential/introduction_to_the_commandline.md#regular-expressions) * [Pipes and redirects](./essential/introduction_to_the_commandline.md#pipes-and-redirects) * [Redirecting](./essential/introduction_to_the_commandline.md#redirecting) + * [Input redirection](./essential/introduction_to_the_commandline.md#input-redirection) * [Piping](./essential/introduction_to_the_commandline.md#piping) * [Text manipulation](./essential/introduction_to_the_commandline.md#text-manipulation) * [Ideas](./essential/introduction_to_the_commandline.md#ideas) +* [Exercises](./essential/introduction_to_the_commandline.md#exercises) + * [Mini exercise 1](./essential/introduction_to_the_commandline.md#mini-exercise-1) + * [Mini exercise 2](./essential/introduction_to_the_commandline.md#mini-exercise-2) + * [Mini exercise 3](./essential/introduction_to_the_commandline.md#mini-exercise-3) + * [Mini exercise 4](./essential/introduction_to_the_commandline.md#mini-exercise-4) + * [Mini exercise 5](./essential/introduction_to_the_commandline.md#mini-exercise-5) + * [Mini exercise 6](./essential/introduction_to_the_commandline.md#mini-exercise-6) +* [Ideas](./essential/introduction_to_the_commandline.md#ideas-1) - +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) Essential: introduction to administration @@ -92,7 +102,7 @@ Essential: introduction to administration * [SSH and SFTP](./essential/introduction_to_administration.md#ssh-and-sftp) * [Bandit](./essential/introduction_to_administration.md#bandit) - +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) Advanced: learning bash scripting @@ -105,9 +115,8 @@ Advanced: learning bash scripting * [With read](./advanced/learning_bash_scripting.md#with-read) * [Coding challenge - Secret input](./advanced/learning_bash_scripting.md#coding-challenge---secret-input) * [read multiple variables](./advanced/learning_bash_scripting.md#read-multiple-variables) + * [Exercise - unpack values](./advanced/learning_bash_scripting.md#exercise---unpack-values) * [With command line arguments](./advanced/learning_bash_scripting.md#with-command-line-arguments) - * [From a file](./advanced/learning_bash_scripting.md#from-a-file) - * [From a pipe](./advanced/learning_bash_scripting.md#from-a-pipe) * [Coding Challenge - output the exact output below](./advanced/learning_bash_scripting.md#coding-challenge---output-the-exact-output-below) * [More math!](./advanced/learning_bash_scripting.md#more-math) * [The let keyword](./advanced/learning_bash_scripting.md#the-let-keyword) @@ -116,17 +125,64 @@ Advanced: learning bash scripting * [Variable length](./advanced/learning_bash_scripting.md#variable-length) * [If Statements - How to make decisions within your Bash script.](./advanced/learning_bash_scripting.md#if-statements---how-to-make-decisions-within-your-bash-script) * [How does it work behind the scenes?](./advanced/learning_bash_scripting.md#how-does-it-work-behind-the-scenes) + * [exit status](./advanced/learning_bash_scripting.md#exit-status) + * [test](./advanced/learning_bash_scripting.md#test) * [Nested if statements](./advanced/learning_bash_scripting.md#nested-if-statements) -* [Coding challenge - File information](./advanced/learning_bash_scripting.md#coding-challenge---file-information) * [A modern version of test](./advanced/learning_bash_scripting.md#a-modern-version-of-test) * [[[ ]]](./advanced/learning_bash_scripting.md#--) * [(( ))](./advanced/learning_bash_scripting.md#---1) * [&& and ||](./advanced/learning_bash_scripting.md#-and--) +* [Coding challenge - File information](./advanced/learning_bash_scripting.md#coding-challenge---file-information) +* [Coding challenge - pipe or argument?](./advanced/learning_bash_scripting.md#coding-challenge---pipe-or-argument) * [Loops - A variety of ways to perform repetitive tasks.](./advanced/learning_bash_scripting.md#loops---a-variety-of-ways-to-perform-repetitive-tasks) + * [while loop](./advanced/learning_bash_scripting.md#while-loop) + * [Read from a file with a while loop](./advanced/learning_bash_scripting.md#read-from-a-file-with-a-while-loop) + * [Read from a pipe with a while loop](./advanced/learning_bash_scripting.md#read-from-a-pipe-with-a-while-loop) + * [for loop](./advanced/learning_bash_scripting.md#for-loop) + * [Counter loops with for](./advanced/learning_bash_scripting.md#counter-loops-with-for) + * [Finicky behaviour](./advanced/learning_bash_scripting.md#finicky-behaviour) + * [break and continue](./advanced/learning_bash_scripting.md#break-and-continue) +* [Coding challenge - pipe or argument plus action!](./advanced/learning_bash_scripting.md#coding-challenge---pipe-or-argument-plus-action) +* [Coding challenge - Rename files](./advanced/learning_bash_scripting.md#coding-challenge---rename-files) +* [Coding challenge - Rename jpeg files](./advanced/learning_bash_scripting.md#coding-challenge---rename-jpeg-files) +* [Coding challenge - Remove duplicate files](./advanced/learning_bash_scripting.md#coding-challenge---remove-duplicate-files) +* [Coding challenge - File tree](./advanced/learning_bash_scripting.md#coding-challenge---file-tree) +* [Coding challenge - Compare and move](./advanced/learning_bash_scripting.md#coding-challenge---compare-and-move) +* [Coding challenge - Guess the number](./advanced/learning_bash_scripting.md#coding-challenge---guess-the-number) * [Functions - Reuse code to make life easier.](./advanced/learning_bash_scripting.md#functions---reuse-code-to-make-life-easier) + * [defining a function](./advanced/learning_bash_scripting.md#defining-a-function) + * [function arguments](./advanced/learning_bash_scripting.md#function-arguments) + * [global vs local variable](./advanced/learning_bash_scripting.md#global-vs-local-variable) + * [return values](./advanced/learning_bash_scripting.md#return-values) + * [the command builtin](./advanced/learning_bash_scripting.md#the-command-builtin) +* [Coding challenge - Student reports](./advanced/learning_bash_scripting.md#coding-challenge---student-reports) * [User Interface - Make your scripts user friendly.](./advanced/learning_bash_scripting.md#user-interface---make-your-scripts-user-friendly) +* [Coding challenge - Address book](./advanced/learning_bash_scripting.md#coding-challenge---address-book) +* [Arrays in bash](./advanced/learning_bash_scripting.md#arrays-in-bash) * [Python](./advanced/learning_bash_scripting.md#python) * [Vim as an IDE](./advanced/learning_bash_scripting.md#vim-as-an-ide) - +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) + + +Advanced: learning shells +================= + +* [bash login](./advanced/learning_shells.md#bash-login) + * [which files are sources when](./advanced/learning_shells.md#which-files-are-sources-when) +* [A clean slate](./advanced/learning_shells.md#a-clean-slate) +* [Prompt customization](./advanced/learning_shells.md#prompt-customization) + * [Saving our changes](./advanced/learning_shells.md#saving-our-changes) + * [Decoding the base prompt](./advanced/learning_shells.md#decoding-the-base-prompt) +* [Alternative shells](./advanced/learning_shells.md#alternative-shells) + * [zsh](./advanced/learning_shells.md#zsh) + * [fish](./advanced/learning_shells.md#fish) + * [xonsh](./advanced/learning_shells.md#xonsh) +* [Shell completion](./advanced/learning_shells.md#shell-completion) +* [Frameworks](./advanced/learning_shells.md#frameworks) + * [oh my zsh](./advanced/learning_shells.md#oh-my-zsh) + * [oh my bash](./advanced/learning_shells.md#oh-my-bash) +* [xxh](./advanced/learning_shells.md#xxh) + +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) diff --git a/todo_over_the_break.md b/todo_over_the_break.md new file mode 100644 index 0000000..501658d --- /dev/null +++ b/todo_over_the_break.md @@ -0,0 +1,1192 @@ +# Introduction to Linux + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#introduction-to-linux) to course documentation + +## Student notes: + +TODO + +# Where does Linux originate from? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#where-does-linux-originate-from) to course documentation + +## Student notes: + +TODO + +# Who is behind this project? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#who-is-behind-this-project) to course documentation + +## Student notes: + +TODO + +# What is the deal with 'GNU-slash-Linux'? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#what-is-the-deal-with-gnu-slash-linux) to course documentation + +## Student notes: + +TODO + +# Where can you get some Linux? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#where-can-you-get-some-linux) to course documentation + +## Student notes: + +TODO + +# Debian + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#debian) to course documentation + +## Student notes: + +TODO + +# How to create a virtual machine + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#how-to-create-a-virtual-machine) to course documentation + +## Student notes: + +TODO + +# Breakdown of the Debian installation + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#breakdown-of-the-debian-installation) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#exercise) to course documentation + +## Student notes: + +TODO + +# Quick look at an idle system + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#quick-look-at-an-idle-system) to course documentation + +## Student notes: + +TODO + +# Package managers + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#package-managers) to course documentation + +## Student notes: + +TODO + +# Graphical installation + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#graphical-installation) to course documentation + +## Student notes: + +TODO + +# Command line installation + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#command-line-installation) to course documentation + +## Student notes: + +TODO + +# Adding a secondary desktop environment + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#adding-a-secondary-desktop-environment) to course documentation + +## Student notes: + +TODO + +# Changing the runlevel + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#changing-the-runlevel) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#exercise-1) to course documentation + +## Student notes: + +TODO + +# Guest additions + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_linux.md#guest-additions) to course documentation + +## Student notes: + +TODO + +# Introduction to the command line + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#introduction-to-the-command-line) to course documentation + +## Student notes: + +TODO + +# Compiled vs interpreted + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#compiled-vs-interpreted) to course documentation + +## Student notes: + +TODO + +# Note on file extensions + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#note-on-file-extensions) to course documentation + +## Student notes: + +TODO + +# More about paths + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#more-about-paths) to course documentation + +## Student notes: + +TODO + +# Absolute and relative paths + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#absolute-and-relative-paths) to course documentation + +## Student notes: + +TODO + +# root and / and /root are not the same thing + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#root-and---and-root-are-not-the-same-thing) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise) to course documentation + +## Student notes: + +TODO + +# A pit stop to review what we've learned so far + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#a-pit-stop-to-review-what-weve-learned-so-far) to course documentation + +## Student notes: + +TODO + +# Arguments and flags + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#arguments-and-flags) to course documentation + +## Student notes: + +TODO + +# Getting help + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#getting-help) to course documentation + +## Student notes: + +TODO + +# Options + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#options) to course documentation + +## Student notes: + +TODO + +# Manuals + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#manuals) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-1) to course documentation + +## Student notes: + +TODO + +# Creating, modifying and deleting + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#creating-modifying-and-deleting) to course documentation + +## Student notes: + +TODO + +# Directories + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#directories) to course documentation + +## Student notes: + +TODO + +# Files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#files) to course documentation + +## Student notes: + +TODO + +# Links + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#links) to course documentation + +## Student notes: + +TODO + +# Editors + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#editors) to course documentation + +## Student notes: + +TODO + +# nano + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#nano) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-2) to course documentation + +## Student notes: + +TODO + +# vi and vim + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#vi-and-vim) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-3) to course documentation + +## Student notes: + +TODO + +# Opening or peaking into files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#opening-or-peaking-into-files) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-4) to course documentation + +## Student notes: + +TODO + +# Finding stuff + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#finding-stuff) to course documentation + +## Student notes: + +TODO + +# Finding files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#finding-files) to course documentation + +## Student notes: + +TODO + +# The easy way + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#the-easy-way) to course documentation + +## Student notes: + +TODO + +# The hard way + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#the-hard-way) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-5) to course documentation + +## Student notes: + +TODO + +# Searching inside files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#searching-inside-files) to course documentation + +## Student notes: + +TODO + +# Wild cards and regular expressions + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#wild-cards-and-regular-expressions) to course documentation + +## Student notes: + +TODO + +# Wild cards + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#wild-cards) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-6) to course documentation + +## Student notes: + +TODO + +# Exercise + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercise-7) to course documentation + +## Student notes: + +TODO + +# Regular expressions + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#regular-expressions) to course documentation + +## Student notes: + +TODO + +# Pipes and redirects + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#pipes-and-redirects) to course documentation + +## Student notes: + +TODO + +# Redirecting + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#redirecting) to course documentation + +## Student notes: + +TODO + +# Input redirection + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#input-redirection) to course documentation + +## Student notes: + +TODO + +# Piping + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#piping) to course documentation + +## Student notes: + +TODO + +# Text manipulation + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#text-manipulation) to course documentation + +## Student notes: + +TODO + +# Ideas + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#ideas) to course documentation + +## Student notes: + +TODO + +# Exercises + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#exercises) to course documentation + +## Student notes: + +TODO + +# Mini exercise 1 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-1) to course documentation + +## Student notes: + +TODO + +# Mini exercise 2 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-2) to course documentation + +## Student notes: + +TODO + +# Mini exercise 3 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-3) to course documentation + +## Student notes: + +TODO + +# Mini exercise 4 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-4) to course documentation + +## Student notes: + +TODO + +# Mini exercise 5 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-5) to course documentation + +## Student notes: + +TODO + +# Mini exercise 6 + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#mini-exercise-6) to course documentation + +## Student notes: + +TODO + +# Ideas + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_the_commandline.md#ideas-1) to course documentation + +## Student notes: + +TODO + +# Users + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#users) to course documentation + +## Student notes: + +TODO + +# Adding and removing users + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#adding-and-removing-users) to course documentation + +## Student notes: + +TODO + +# GNOME + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#gnome) to course documentation + +## Student notes: + +TODO + +# command line + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#command-line) to course documentation + +## Student notes: + +TODO + +# Switching user + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#switching-user) to course documentation + +## Student notes: + +TODO + +# Groups + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#groups) to course documentation + +## Student notes: + +TODO + +# Permissions + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#permissions) to course documentation + +## Student notes: + +TODO + +# Octal number system + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#octal-number-system) to course documentation + +## Student notes: + +TODO + +# Changing ownership + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#changing-ownership) to course documentation + +## Student notes: + +TODO + +# umask + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#umask) to course documentation + +## Student notes: + +TODO + +# Essential programs + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#essential-programs) to course documentation + +## Student notes: + +TODO + +# Remote control of a server + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#remote-control-of-a-server) to course documentation + +## Student notes: + +TODO + +# History + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#history) to course documentation + +## Student notes: + +TODO + +# SSH and SFTP + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#ssh-and-sftp) to course documentation + +## Student notes: + +TODO + +# Bandit + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/essential/introduction_to_administration.md#bandit) to course documentation + +## Student notes: + +TODO + +# bash + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#bash) to course documentation + +## Student notes: + +TODO + +# Using variables to store the output of command + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#using-variables-to-store-the-output-of-command) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Output system stats + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---output-system-stats) to course documentation + +## Student notes: + +TODO + +# Getting input into the script + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#getting-input-into-the-script) to course documentation + +## Student notes: + +TODO + +# With read + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#with-read) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Secret input + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---secret-input) to course documentation + +## Student notes: + +TODO + +# read multiple variables + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#read-multiple-variables) to course documentation + +## Student notes: + +TODO + +# Exercise - unpack values + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#exercise---unpack-values) to course documentation + +## Student notes: + +TODO + +# With command line arguments + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#with-command-line-arguments) to course documentation + +## Student notes: + +TODO + +# Coding Challenge - output the exact output below + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---output-the-exact-output-below) to course documentation + +## Student notes: + +TODO + +# More math! + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#more-math) to course documentation + +## Student notes: + +TODO + +# The let keyword + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#the-let-keyword) to course documentation + +## Student notes: + +TODO + +# The expr keyword + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#the-expr-keyword) to course documentation + +## Student notes: + +TODO + +# Double parenthesis + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#double-parenthesis) to course documentation + +## Student notes: + +TODO + +# Variable length + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#variable-length) to course documentation + +## Student notes: + +TODO + +# If Statements - How to make decisions within your Bash script. + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#if-statements---how-to-make-decisions-within-your-bash-script) to course documentation + +## Student notes: + +TODO + +# How does it work behind the scenes? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#how-does-it-work-behind-the-scenes) to course documentation + +## Student notes: + +TODO + +# exit status + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#exit-status) to course documentation + +## Student notes: + +TODO + +# test + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#test) to course documentation + +## Student notes: + +TODO + +# Nested if statements + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#nested-if-statements) to course documentation + +## Student notes: + +TODO + +# A modern version of test + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#a-modern-version-of-test) to course documentation + +## Student notes: + +TODO + +# [[ + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#--) to course documentation + +## Student notes: + +TODO + +# (( )) + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#---1) to course documentation + +## Student notes: + +TODO + +# && and || + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#-and--) to course documentation + +## Student notes: + +TODO + +# Coding challenge - File information + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---file-information) to course documentation + +## Student notes: + +TODO + +# Coding challenge - pipe or argument? + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---pipe-or-argument) to course documentation + +## Student notes: + +TODO + +# Loops - A variety of ways to perform repetitive tasks. + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#loops---a-variety-of-ways-to-perform-repetitive-tasks) to course documentation + +## Student notes: + +TODO + +# while loop + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#while-loop) to course documentation + +## Student notes: + +TODO + +# Read from a file with a while loop + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#read-from-a-file-with-a-while-loop) to course documentation + +## Student notes: + +TODO + +# Read from a pipe with a while loop + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#read-from-a-pipe-with-a-while-loop) to course documentation + +## Student notes: + +TODO + +# for loop + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#for-loop) to course documentation + +## Student notes: + +TODO + +# Counter loops with for + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#counter-loops-with-for) to course documentation + +## Student notes: + +TODO + +# Finicky behaviour + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#finicky-behaviour) to course documentation + +## Student notes: + +TODO + +# break and continue + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#break-and-continue) to course documentation + +## Student notes: + +TODO + +# Coding challenge - pipe or argument plus action! + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---pipe-or-argument-plus-action) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Rename files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---rename-files) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Rename jpeg files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---rename-jpeg-files) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Remove duplicate files + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---remove-duplicate-files) to course documentation + +## Student notes: + +TODO + +# Coding challenge - File tree + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---file-tree) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Compare and move + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---compare-and-move) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Guess the number + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---guess-the-number) to course documentation + +## Student notes: + +TODO + +# Functions - Reuse code to make life easier. + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#functions---reuse-code-to-make-life-easier) to course documentation + +## Student notes: + +TODO + +# defining a function + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#defining-a-function) to course documentation + +## Student notes: + +TODO + +# function arguments + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#function-arguments) to course documentation + +## Student notes: + +TODO + +# global vs local variable + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#global-vs-local-variable) to course documentation + +## Student notes: + +TODO + +# return values + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#return-values) to course documentation + +## Student notes: + +TODO + +# the command builtin + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#the-command-builtin) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Student reports + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---student-reports) to course documentation + +## Student notes: + +TODO + +# User Interface - Make your scripts user friendly. + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#user-interface---make-your-scripts-user-friendly) to course documentation + +## Student notes: + +TODO + +# Coding challenge - Address book + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#coding-challenge---address-book) to course documentation + +## Student notes: + +TODO + +# Arrays in bash + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#arrays-in-bash) to course documentation + +## Student notes: + +TODO + +# Python + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#python) to course documentation + +## Student notes: + +TODO + +# Vim as an IDE + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_bash_scripting.md#vim-as-an-ide) to course documentation + +## Student notes: + +TODO + +# bash login + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#bash-login) to course documentation + +## Student notes: + +TODO + +# which files are sources when + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#which-files-are-sources-when) to course documentation + +## Student notes: + +TODO + +# A clean slate + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#a-clean-slate) to course documentation + +## Student notes: + +TODO + +# Prompt customization + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#prompt-customization) to course documentation + +## Student notes: + +TODO + +# Saving our changes + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#saving-our-changes) to course documentation + +## Student notes: + +TODO + +# Decoding the base prompt + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#decoding-the-base-prompt) to course documentation + +## Student notes: + +TODO + +# Alternative shells + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#alternative-shells) to course documentation + +## Student notes: + +TODO + +# zsh + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#zsh) to course documentation + +## Student notes: + +TODO + +# fish + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#fish) to course documentation + +## Student notes: + +TODO + +# xonsh + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#xonsh) to course documentation + +## Student notes: + +TODO + +# Shell completion + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#shell-completion) to course documentation + +## Student notes: + +TODO + +# Frameworks + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#frameworks) to course documentation + +## Student notes: + +TODO + +# oh my zsh + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#oh-my-zsh) to course documentation + +## Student notes: + +TODO + +# oh my bash + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#oh-my-bash) to course documentation + +## Student notes: + +TODO + +# xxh + + * [Link](https://gitea.86thumbs.net/waldek/linux_introduction/src/branch/master/advanced/learning_shells.md#xxh) to course documentation + +## Student notes: + +TODO +