diff --git a/2020/2020-02-15_gnuLinuxCourse/slides/index.md b/2020/2020-02-15_gnuLinuxCourse/slides/index.md index e2c016f1754aec5462a6afeec3a09b8a1774ce51..af6c0b2a7d49a536019f2efe53d7eb9580b15577 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 82ac41923f28367c988b52b1560b7e756821336d..7a24347ffa13ebff6e98456051528a8dab2d5bc2 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 e8c3dc090c39e55efb1bf20e53cd4ce6412a34e7..842595fb38c6dff14a8ade1d8a742fa844396dc3 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 4b966d753c72d5b5d4135b7c9af3e190181529b8..1f6a715f628dc70e76ebe258aad540a36bb5008c 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 0000000000000000000000000000000000000000..198dbdf6b41a775204bcfaa004aabe75e02a3bb2 --- /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 0000000000000000000000000000000000000000..7cf129fa239fe45f00269da04539f0df6fa5b223 --- /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 2590bdd914ff33bd99d48e198b24dc3682324303..b4734d3ac9d236f5b94bafa757b6de1db2302ee0 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 0000000000000000000000000000000000000000..7723a20d4d2d9ddd28218e1630e817fa3b09894f --- /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 0000000000000000000000000000000000000000..24154e32e2fa7d0fbb2603774401c6f148d96010 --- /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 1321b4f48f2d88ade8059685ccfee626cecdfb49..e36cb9d2453e0a418a663e152d4b499a6c678ad0 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 + ```