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