From 60558a1638bbb3dbc37ebeea0861661c03ed4db5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu>
Date: Thu, 26 Mar 2020 10:02:00 +0100
Subject: [PATCH] Minimal, but complete presentation

---
 .../2020-02-15_gnuLinuxCourse/slides/index.md |  2 +-
 .../slides/intro_aim.md                       |  3 --
 .../slides/intro_beforewebegin.md             |  2 +-
 .../slides/list.json                          |  4 ++
 .../slides/shell/cp-mv-rm-concepts.md         | 20 ++++++++
 .../shell/effective-cmd-editing-concepts.md   | 15 ++++++
 .../slides/shell/effective-cmd-editing.md     |  9 +---
 .../shell/file-explorer-basic-concepts.md     | 14 ++++++
 .../slides/shell/file-explorer-basic.md       | 21 +++++++++
 .../slides/shell/start.md                     | 46 ++++++-------------
 10 files changed, 90 insertions(+), 46 deletions(-)
 create mode 100644 2020/2020-02-15_gnuLinuxCourse/slides/shell/cp-mv-rm-concepts.md
 create mode 100644 2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing-concepts.md
 create mode 100644 2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic-concepts.md
 create mode 100644 2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic.md

diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/index.md b/2020/2020-02-15_gnuLinuxCourse/slides/index.md
index e2c016f1..af6c0b2a 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/index.md
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/index.md
@@ -1,6 +1,6 @@
 # Presentation Title
 
-## Month XYth, 2019
+## 26 March 2020
 
 <div style="top: 6em; left: 0%; position: absolute;">
     <img src="theme/img/lcsb_bg.png">
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/intro_aim.md b/2020/2020-02-15_gnuLinuxCourse/slides/intro_aim.md
index 82ac4192..7a24347f 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/intro_aim.md
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/intro_aim.md
@@ -10,7 +10,4 @@
   + Using SSH, a de-facto standard for secure communication
 	
 <!-- .element: class="fragment" -->
-
-
-
 <!-- <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/A-HIlNGczgU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> -->
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/intro_beforewebegin.md b/2020/2020-02-15_gnuLinuxCourse/slides/intro_beforewebegin.md
index e8c3dc09..842595fb 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/intro_beforewebegin.md
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/intro_beforewebegin.md
@@ -18,7 +18,7 @@
 <!-- .element: class="fragment" -->
   
   
-[1]: https://git-r3lab.uni.lu/R3/school/courses/blob/gnu-linux/2020/2020-02-15_gnuLinuxCourse/resources.md
+[1]: https://git-r3lab.uni.lu/R3/school/courses/blob/develop/2020/2020-02-15_gnuLinuxCourse/resources.md
 [2]: https://duckduckgo.com
 [3]: https://unix.stackexchange.com/
 [4]: https://www.reddit.com/r/linux/
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/list.json b/2020/2020-02-15_gnuLinuxCourse/slides/list.json
index 4b966d75..1f6a715f 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/list.json
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/list.json
@@ -5,9 +5,13 @@
     { "filename" : "intro_aim.md"},
     { "filename" : "shell.md"},
     { "filename" : "shell/start.md"},
+    { "filename" : "shell/file-explorer-basic.md"},
+    { "filename" : "shell/file-explorer-basic-concepts.md"},
     { "filename" : "shell/effective-cmd-editing.md"},
+    { "filename" : "shell/effective-cmd-editing-concepts.md"},
     { "filename" : "shell/cp-mv.md"},
     { "filename" : "shell/rm.md"},
+    { "filename" : "shell/cp-mv-rm-concepts.md"},
     { "filename" : "ssh_intro.md"},
     { "filename" : "ssh_intro_2.md"},
     { "filename" : "ssh_intro_3.md"},
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/cp-mv-rm-concepts.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/cp-mv-rm-concepts.md
new file mode 100644
index 00000000..198dbdf6
--- /dev/null
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/cp-mv-rm-concepts.md
@@ -0,0 +1,20 @@
+# File Explorer: Copy(cp), Move(mv) and Remove(rm) (Concepts)
+
+* cp, mv and rm can act on either files, or directories
+  ```shell
+	  cp file1 file2
+	  mv file1 file2
+	  
+	  cp -R dir1 new/location
+	  mv dir1 new/location
+	  
+	  cp file1 file2 ... some/existing/dir
+	  mv file1 file2 ... some/existing/dir
+	  
+	  rm file1 ...
+	  rm -R dir
+	  rm -Rf dir # Danger!
+  ```
+  
+* Effectiveness of these commands greatly improved by file patterns
+  - *, ., [0-9],[ABC], {}, etc
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing-concepts.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing-concepts.md
new file mode 100644
index 00000000..7cf129fa
--- /dev/null
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing-concepts.md
@@ -0,0 +1,15 @@
+# File Explorer: Effective Command Line Editing (Concepts)
+
+* Moving using arrow keys is tedious
+
+* Retyping commands that contain a typo is even more tedious
+
+* *Readline* facility of the bash shell offers quicker navigation
+  - Move by a word left and right using `Ctrl`+`Left`, or `Right`
+  - Move to a beginning, or the end of the line using `Ctrl`+`A` and `Ctrl`+`E`
+  - Delete an entire word using `Alt`+`D`
+  - Paste a deleted word with `Ctrl`+`Y`
+
+* Reuse previous commands!
+  - The shell remembers what you type
+  - Move to a previous line in history using `Up` and `Down` arrows
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing.md
index 2590bdd9..b4734d3a 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing.md
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/effective-cmd-editing.md
@@ -1,4 +1,4 @@
-# Practical: Effective Command Line Editing
+# File Explorer: Effective Command Line Editing
 
 ```console
 $ # Move up the history list until 'mkdir linux-practical-01'.
@@ -17,16 +17,9 @@ $ touch subdir-02/a subdir-02/b subdir-02/c
 $ history 10 # Lists last ten commands.
 $ cd
 ```
-
 <!-- * Motions -->
 <!--   - `Left` and `Right` arrow move one character left, or right -->
 <!--   - `Ctrl` + `Left`, or `Right` move left, or right for one word -->
 <!--   - `Ctrl` + `A`, or `E` move to the beginning, or the end of the line -->
 <!--   - `Up` and `Down` move through history entries -->
 <!--   - `TAB` completes -->
-
-
-
-
-  
-  
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic-concepts.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic-concepts.md
new file mode 100644
index 00000000..7723a20d
--- /dev/null
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic-concepts.md
@@ -0,0 +1,14 @@
+# File Explorer: Basics (Concepts)
+
+* While interacting with a shell, we are always in a given *working directory*
+* Data is organised into directories and files, like on other systems.
+* Location of a file in respect to the current directory is given by a (*relative*) file path
+  - some/dir/with/a/file
+
+* New commands:
+  - `pwd` : outputs the current working directory
+  - `ls [-lhd ... file1 file2 file3 ...]` : lists files 
+  - `cd path/to/existing/dir` : change current directory to a new directory
+  - `mkdir [-p] path/to/new/dir` : creates a new directory
+  - `touch file1 [file2 file3  ...]` : creates an empty file.
+  - `history` : view the list of commands executed so far 
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic.md
new file mode 100644
index 00000000..24154e32
--- /dev/null
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/file-explorer-basic.md
@@ -0,0 +1,21 @@
+# File Explorer: Basics
+```console
+$ pwd    # Displays the absolute path to the current dirrectory.
+$ ls     # List contents of the current directory.
+$ mkdir linux-practical-01    # Create a new directory.
+$ cd linux-practical-01    # Switch to a different directory.
+$ touch pr1-hello-world.txt     # Create a new and empty file.
+$ mkdir subdir-01 # Create another directory.
+$ touch subdir-01/a subdir-01/b subdir-01/c    # Create multiple empty files.
+$ ls subdir-01    # List contents of directory.
+$ mkdir -p subdir-02/dir-X/dir-Y/dir-Z    # Create a nested directory under the path.
+$ ls subdir-02/dir-X # Confirm the directory dir-Y has been created.
+$ history    # Lists the commands executed so far.
+$ cd
+```
+
+<!-- * Concepts -->
+<!--   - Files and directories -->
+<!--   - Paths -->
+<!--   - Importance of quoting -->
+<!--   - History -->
diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/shell/start.md b/2020/2020-02-15_gnuLinuxCourse/slides/shell/start.md
index 1321b4f4..e36cb9d2 100644
--- a/2020/2020-02-15_gnuLinuxCourse/slides/shell/start.md
+++ b/2020/2020-02-15_gnuLinuxCourse/slides/shell/start.md
@@ -1,36 +1,16 @@
-# File Explorer: The Immediate Surroundings
+# Command Line
 
-* Command line
-  - **Command prompt:** Non-editable; May provide contextual information
-  - **Command area:** Typed commands are shown here
-  - **RETURN or ENTER:** Pressing this key will execute the command
-  ```shell
-  prompt$ command arg1 arg2 ...
-  ```
-
-<!-- .element: class="fragment" -->
-  ```console
-     $ pwd    # Displays the absolute path to the current dirrectory.
-     $ ls     # List contents of the current directory.
-	 $ mkdir linux-practical-01    # Create a new directory.
-	 $ cd linux-practical-01    # Switch to a different directory.
-     $ touch pr1-hello-world.txt     # Create a new and empty file.
-	 $ mkdir subdir-01 # Create another directory.
-     $ touch subdir-01/a subdir-01/b subdir-01/c    # Create multiple empty files.
-	 $ ls subdir-01    # List contents of directory.
-	 $ mkdir -p subdir-02/dir-X/dir-Y/dir-Z    # Create a nested directory under the path.
-	 $ ls subdir-02/dir-X # Confirm the directory dir-Y has been created.
-	 $ history    # Lists the commands executed so far.
-	 $ cd
-  ```
-<!-- .element: class="fragment" -->
 
-<!-- * Concepts -->
-<!--   - Files and directories -->
-<!--   - Paths -->
-<!--   - Importance of quoting -->
-<!--   - History -->
-	  
+*  **Command prompt:** Non-editable; May provide contextual information
+*  **Command area:** Typed commands are shown here
+*  **RETURN or ENTER:** Pressing this key will execute the command
 
-
-	
+* General form of the commands
+  ```shell
+  prompt$ ls
+  prompt$ ls -a
+  prompt$ ls --help
+  prompt$ rsync -avz /path/to/file/a /path/to/file/b
+  prompt$ make -j8
+  prompt$ gfortran -c -mtune=native
+  ```
-- 
GitLab