# Hello world Welcome! Essential: introduction to linux ================= * [Introduction to Linux](./essential/introduction_to_linux.md#introduction-to-linux) * [Where does Linux originate from?](./essential/introduction_to_linux.md#where-does-linux-originate-from) * [Who is behind this project?](./essential/introduction_to_linux.md#who-is-behind-this-project) * [What is the deal with 'GNU-slash-Linux'?](./essential/introduction_to_linux.md#what-is-the-deal-with-gnu-slash-linux) * [Where can you get some Linux?](./essential/introduction_to_linux.md#where-can-you-get-some-linux) * [Debian](./essential/introduction_to_linux.md#debian) * [How to create a virtual machine](./essential/introduction_to_linux.md#how-to-create-a-virtual-machine) * [Breakdown of the Debian installation](./essential/introduction_to_linux.md#breakdown-of-the-debian-installation) * [Exercise](./essential/introduction_to_linux.md#exercise) * [Quick look at an idle system](./essential/introduction_to_linux.md#quick-look-at-an-idle-system) * [Package managers](./essential/introduction_to_linux.md#package-managers) * [Graphical installation](./essential/introduction_to_linux.md#graphical-installation) * [Command line installation](./essential/introduction_to_linux.md#command-line-installation) * [Adding a secondary desktop environment](./essential/introduction_to_linux.md#adding-a-secondary-desktop-environment) * [Changing the runlevel](./essential/introduction_to_linux.md#changing-the-runlevel) * [Exercise](./essential/introduction_to_linux.md#exercise-1) * [Guest additions](./essential/introduction_to_linux.md#guest-additions) Essential: introduction to the commandline ================= * [Introduction to the command line](./essential/introduction_to_the_commandline.md#introduction-to-the-command-line) * [Compiled vs interpreted](./essential/introduction_to_the_commandline.md#compiled-vs-interpreted) * [Note on file extensions](./essential/introduction_to_the_commandline.md#note-on-file-extensions) * [More about paths](./essential/introduction_to_the_commandline.md#more-about-paths) * [Absolute and relative paths](./essential/introduction_to_the_commandline.md#absolute-and-relative-paths) * [root and / and /root are not the same thing](./essential/introduction_to_the_commandline.md#root-and---and-root-are-not-the-same-thing) * [Exercise](./essential/introduction_to_the_commandline.md#exercise) * [A pit stop to review what we've learned so far](./essential/introduction_to_the_commandline.md#a-pit-stop-to-review-what-weve-learned-so-far) * [Arguments and flags](./essential/introduction_to_the_commandline.md#arguments-and-flags) * [Getting help](./essential/introduction_to_the_commandline.md#getting-help) * [Options](./essential/introduction_to_the_commandline.md#options) * [Manuals](./essential/introduction_to_the_commandline.md#manuals) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-1) * [Creating, modifying and deleting](./essential/introduction_to_the_commandline.md#creating-modifying-and-deleting) * [Directories](./essential/introduction_to_the_commandline.md#directories) * [Files](./essential/introduction_to_the_commandline.md#files) * [Links](./essential/introduction_to_the_commandline.md#links) * [Editors](./essential/introduction_to_the_commandline.md#editors) * [nano](./essential/introduction_to_the_commandline.md#nano) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-2) * [vi and vim](./essential/introduction_to_the_commandline.md#vi-and-vim) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-3) * [Opening or peaking into files](./essential/introduction_to_the_commandline.md#opening-or-peaking-into-files) * [Exercise](./essential/introduction_to_the_commandline.md#exercise-4) * [Finding stuff](./essential/introduction_to_the_commandline.md#finding-stuff) * [Finding files](./essential/introduction_to_the_commandline.md#finding-files) * [The easy way](./essential/introduction_to_the_commandline.md#the-easy-way) * [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) * [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) * [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) Essential: introduction to administration ================= * [Users](./essential/introduction_to_administration.md#users) * [Adding and removing users](./essential/introduction_to_administration.md#adding-and-removing-users) * [GNOME](./essential/introduction_to_administration.md#gnome) * [command line](./essential/introduction_to_administration.md#command-line) * [Switching user](./essential/introduction_to_administration.md#switching-user) * [Groups](./essential/introduction_to_administration.md#groups) * [Permissions](./essential/introduction_to_administration.md#permissions) * [Octal number system](./essential/introduction_to_administration.md#octal-number-system) * [Changing ownership](./essential/introduction_to_administration.md#changing-ownership) * [umask](./essential/introduction_to_administration.md#umask) * [Essential programs](./essential/introduction_to_administration.md#essential-programs) * [Remote control of a server](./essential/introduction_to_administration.md#remote-control-of-a-server) * [History](./essential/introduction_to_administration.md#history) * [SSH and SFTP](./essential/introduction_to_administration.md#ssh-and-sftp) * [Bandit](./essential/introduction_to_administration.md#bandit) Advanced: learning bash scripting ================= * [bash](./advanced/learning_bash_scripting.md#bash) * [Using variables to store the output of command](./advanced/learning_bash_scripting.md#using-variables-to-store-the-output-of-command) * [Coding challenge - Output system stats](./advanced/learning_bash_scripting.md#coding-challenge---output-system-stats) * [Getting input into the script](./advanced/learning_bash_scripting.md#getting-input-into-the-script) * [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) * [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) * [The expr keyword](./advanced/learning_bash_scripting.md#the-expr-keyword) * [Double parenthesis](./advanced/learning_bash_scripting.md#double-parenthesis) * [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) * [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--) * [Loops - A variety of ways to perform repetitive tasks.](./advanced/learning_bash_scripting.md#loops---a-variety-of-ways-to-perform-repetitive-tasks) * [Functions - Reuse code to make life easier.](./advanced/learning_bash_scripting.md#functions---reuse-code-to-make-life-easier) * [User Interface - Make your scripts user friendly.](./advanced/learning_bash_scripting.md#user-interface---make-your-scripts-user-friendly) * [Python](./advanced/learning_bash_scripting.md#python) * [Vim as an IDE](./advanced/learning_bash_scripting.md#vim-as-an-ide)