% CST8207 Week 04 Notes -- GLOB patterns, I/O redirection, pipes, stdout, stderr, `2>&1` % Ian! D. Allen -- -- [www.idallen.com] % Winter 2018 - January to April 2018 - Updated 2018-04-04 12:11 EDT - [Course Home Page] - [Course Outline] - [All Weeks] - [Plain Text] Readings, Assignments, Labs, Tests, and ToDo ============================================ Read (at least) these things (All The Words) -------------------------------------------- 1. [Week 04 Notes HTML] -- this file -- **Read All The Words** 2. [Shell GLOB patterns] -- wildcard pattern matching of pathnames 3. [Shell I/O Redirection] -- stdin, stdout, stderr, and Pipes 4. [Practice Tests and Answers] -- practice questions for your midterm test. 5. [List of Commands] -- Command names you should know, listed by week 6. [Video Tutorials on Lynda.com] -- tagged by week number 7. [Linux and Sysadmin News in the World] - Create your [lynda.com] account and watch these sections of [Unix for Mac OS X Users] - these videos are for *all* Unix/Linux students, not just Mac OSX users - **3. Working with Files and Directories** - Searching for files and directories 6m 32s - `find` using "wildcard" (GLOB) patterns - same as shell GLOB - Unix text editors 6m 39s - `vi/vim, nano` - `head, tail` - Naming files 5m 41s - use quotes to surround names with blanks or special characters - **6. Directing Input and Output 20m 39s** - Standard input and standard output 1m 24s - Directing output to a file 4m 13s - Appending to a file 2m 44s - Directing input from a file 5m 28s - Piping output to input 4m 40s - Suppressing output 2m 10s Assignments this week --------------------- > Note that your upcoming Midterm Test #1 is worth more than three > assignments put together. Don't spend all your time doing an assignment at > the expense of studying the [Practice Tests and Answers] for the Midterm > Test. Check the due date for each assignment and put a reminder in your agenda, calendar, and digital assistant. Just like in the Real World, not all due dates are on the same days or at the same times. - Review last week. Did you do everything assigned last week? - Read All The Words, Do, and then Submit via Blackboard: - [Assignment #03 HTML] -- working with files and pathnames: `PS1 find mkdir mv cp rm touch file` - Remember to set your `PS1` prompt every time you log in to the CLS. - [Assignment #05 HTML] -- using GLOB wildcard patterns, selecting files using GLOB, redirection and pipes. This assignment requires reading [Shell GLOB patterns] and [Shell I/O Redirection] and then doing [Worksheet #04 HTML] and [Worksheet #05 HTML]. - OPTIONAL: Read [The VI (VIM) Text Editor] and optionally do the bonus [Assignment #04 HTML] for extra credit. - Really do **Read All The Words**. You don't get a second chance to get it right. Lab work this week ------------------ > Note that your upcoming Midterm Test #1 is worth more than three > assignments put together. Don't spend all your time doing an assignment at > the expense of studying the [Practice Tests and Answers] for the Midterm > Test. - Finish the readings, worksheets, and [Assignment #03 HTML] from last week. - Study the first [Practice Tests and Answers] for your upcoming Midterm Test #1 at 3pm in C346 on Wednesday, February 14. - Complete and save the ODT or PDF versions of [Worksheet #04 HTML] and [Worksheet #05 HTML] in preparation for [Assignment #05 HTML] - These worksheets require you to understand [Finding Files], [Shell GLOB patterns] (wildcard pathname matching) and [Shell I/O Redirection] (including Pipes). - [Assignment #05 HTML] -- GLOB wildcard patterns, selecting files using GLOB, redirection and pipes - This assignment requires you to understand the material in the web pages and Worksheets 4 and 5. - Study the questions in first [Practice Tests and Answers] for your upcoming Midterm Test #1 in Week 5. - OPTIONAL: Read [The VI (VIM) Text Editor] and optionally do the bonus [Assignment #04 HTML]. ### Worksheets Worksheets are preparation for your assignments. You can't do the assignments without having done the worksheets first, and you can't do the worksheets without having first read the Course Notes: 1. Read. 2. Worksheets. 3. Assignment. Make notes from the worksheets on *how each command works*. What do the options used in the worksheets mean, for each command? (See the weekly [List of Commands].) Form a small study group to do the worksheets. Each person tries the example given, and you make sure you all get the same answers. Worksheets are not for hand-in; they are not worth marks; the assignments test your knowledge of the lectures and worksheets. > The worksheets are available in four formats: Open Office (ODT), PDF, HTML, > and Text. Only the Open Office format allows you "fill in the blanks" in > the worksheet. The PDF format looks good but doesn't allow you to type into > the blanks in the worksheet. The HTML format is crude but useful for quick > for viewing online. Do **NOT** open the Worksheet ODT files using any Microsoft products; they will mangle the format and mis-number the questions. Use the free Libre Office or Open Office programs to open these ODT documents. On campus, you can get a copy here: [Course Introduction: Install Libre Office]. Worksheets #02 and #03 require you to have read [File System and Pathnames]: - [Worksheet #02 ODT] -- Using standard Linux commands I - [Worksheet #02 PDF] - [Worksheet #02 HTML] - `PS1, cd, find, less, ls, man, mkdir, passwd, pwd, rmdir` - Remember to set your `PS1` prompt every time you log in to the CLS. - [Worksheet #03 ODT] -- Using standard Linux commands II - [Worksheet #03 PDF] - [Worksheet #03 HTML] - `cat, clear, cp, find, fgrep, history, less, man, mv, rm, sleep, touch` Worksheets #04 and #05 require you to have read [Shell GLOB patterns] and [Shell I/O Redirection]: - [Worksheet #04 ODT] -- shell GLOB patterns and Aliases - [Worksheet #04 PDF] - [Worksheet #04 HTML] - shell GLOB patterns (wildcards), Aliases: `alias, sum, unalias` - [Worksheet #05 ODT] -- shell I/O redirection (including pipes) - [Worksheet #05 PDF] - [Worksheet #05 HTML] - shell I/O redirection, `date, head, nl, tail, tr, wc` Worksheet #06 is for the optional VIM Bonus Assignment (extra credit): - [Worksheet #06 HTML] -- *Optional* Bonus VIM Text Editor Practice - This is an *optional* worksheet for a BONUS assignment using `vim` - Optional command-line VIM tutorial: the `vimtutor` program on the CLS. - Bonus (optional) [Assignment #04 HTML] -- the VIM text editor - Read [The VI (VIM) Text Editor] Worksheets prepare you for the upcoming assignments. Upcoming tests -------------- See the [Week 03 Notes HTML] for details on the upcoming tests. ### Midterm Test #1 -- Wednesday February 14 at 3pm in C346 **Midterm Test #1 updated February 7 to exclude GLOB and I/O redirection** See the [Week 03 Notes HTML] for details. ### Practice Test #1 and Blackboard Quiz #1 **Practice Test #1 and Blackboard Quiz #1 updated February 7 to exclude GLOB and I/O redirection** See the [Week 03 Notes HTML] for details. Notes from the Classroom ======================== - **Take notes in class!** Keep a pad open on your desk. - This week, we learn how to match file names using GLOB patterns and then about I/O redirection and pipes. - Note that your upcoming Midterm Test #1 is worth more than three assignments put together. Don't spend all your time doing an assignment at the expense of studying the [Practice Tests and Answers] for the Midterm Test. Simplifying pathnames --------------------- Rewrite each pathname as a simplified absolute pathname: 1. `/home/me/../you/../../etc/../home/me/../you/../me/../foo` 2. `/home/me/../you/../../etc/../home/me/../you/../me/../..` 3. `/usr/./bin/../lib/../../etc/../usr/./lib/../bin/./bar` 4. `/usr/./bin/../lib/../../etc/../usr/./lib/../bin/..` 5. `/../../var/./a/../../var/b/../../etc/./bar/../foo` 6. `/../../var/./a/../../var/b/../../etc/./bar/..` These questions and the answers are part of Practice Test #1 in [Practice Tests and Answers]. Look for questions starting with "Simplify this pathname". Draw file system diagrams ------------------------- See last week's note about drawing file system diagrams: [Week 03 Notes HTML] Commands Used ------------- > Keep a notebook with a [List of Commands] in it. > > - You need to write down yourself what each command *does*. > - Check the updated list of commands each week. > - I will check for this list in your lab periods. > - Bring your notes to class! Stop wasting time looking up commands. - Are you making notes from the worksheets on how each command works? - What do the options used in the worksheets mean, for each command? - Don't copy and use options that you don't understand! - Using GLOB patterns as `-name` arguments to `find` - Remember to quote the `find` GLOB patterns to hide them from the shell! - GLOB patterns are *NOT* needed in Assignment 3. See Assignment 5. - About `ls -d`: The man page says "list directories themselves, not their contents". It doesn't say "list only directories;, do not list files". If you give a file and a directory to `ls -l -d`, you will get the file name and the directory name in the output. If you give a file and a directory to `ls` without `-d`, you will get the file name and the *contents of the directory* (not the directory name itself) in the output. See the difference? The `-d` shows the directory itself, not what is in the directory. Tutoring ======== Many students find that hiring a personal tutor helps them get through the first term. Financial assistance is available. See the **Tutoring** heading in the [Course Introduction]. Network and Linux Tutor Available on Saturday mornings ------------------------------------------------------ From: Charles Nixon Subject: Saturday Open Labs Date: Monday, January 29, 2018 2:36 PM Starting this Sat Feb 03 from 9am-12pm rooms T113, T114 and T111 will be opened for students to use. A tutor (Julie Labadie 4^th semester CST) will be supervising and available for drop in tutoring. The Linksys SOHO routers from T111 will be signed out from Julie in T113. Please share this with your students, the hallway schedules have been updated with the open lab times. SSH Attacks on the CLS ====================== You are not paranoid if they really are out to get you! See the [Week 03 Notes HTML] for command pipelines to count the attacks on the CLS. HTTP attacks on Course Linux Server ----------------------------------- In addition to the SSH attacks, machines on the Internet receive attacks using bogus HTTP requests. See last week's notes for details. Locked out of the CLS ===================== When you are locked out, [follow the directions] in the notes to get your IP address re-enabled. ![Take Notes in Class] -- | Ian! D. Allen, BA, MMath - idallen@idallen.ca - Ottawa, Ontario, Canada | Home Page: http://idallen.com/ Contact Improv: http://contactimprov.ca/ | College professor (Free/Libre GNU+Linux) at: http://teaching.idallen.com/ | Defend digital freedom: http://eff.org/ and have fun: http://fools.ca/ [Plain Text] - plain text version of this page in [Pandoc Markdown] format [www.idallen.com]: http://www.idallen.com/ [Course Home Page]: .. [Course Outline]: course_outline.pdf [All Weeks]: indexcgi.cgi [Plain Text]: week04notes.txt [Week 04 Notes HTML]: week04notes.html [Shell GLOB patterns]: 190_glob_patterns.html [Shell I/O Redirection]: 200_redirection.html [Practice Tests and Answers]: PRACTICE_TEST_README.html [List of Commands]: 900_unix_command_list.html [Video Tutorials on Lynda.com]: 910_lynda_index.html [Linux and Sysadmin News in the World]: 950_linux_world.html [lynda.com]: http://algonquincollege.com/onlineresources/mobileStudent/lynda.htm [Unix for Mac OS X Users]: http://www.lynda.com/Mac-OS-X-10-6-tutorials/Unix-for-Mac-OS-X-Users/78546-2.html [Assignment #03 HTML]: assignment03.html [Assignment #05 HTML]: assignment05.html [Worksheet #04 HTML]: worksheet04.html [Worksheet #05 HTML]: worksheet05.html [The VI (VIM) Text Editor]: 300_vi_text_editor.html [Assignment #04 HTML]: assignment04.html [Finding Files]: 180_finding_files.html [Course Introduction: Install Libre Office]: 050_course_introduction.html#install-libreoffice-or-openoffice-into-windows [File System and Pathnames]: 160_pathnames.html [Worksheet #02 ODT]: worksheet02.odt [Worksheet #02 PDF]: worksheet02.pdf [Worksheet #02 HTML]: worksheet02.html [Worksheet #03 ODT]: worksheet03.odt [Worksheet #03 PDF]: worksheet03.pdf [Worksheet #03 HTML]: worksheet03.html [Worksheet #04 ODT]: worksheet04.odt [Worksheet #04 PDF]: worksheet04.pdf [Worksheet #05 ODT]: worksheet05.odt [Worksheet #05 PDF]: worksheet05.pdf [Worksheet #06 HTML]: worksheet06.html [Week 03 Notes HTML]: week03notes.html [Course Introduction]: 050_course_introduction.html [follow the directions]: 070_course_linux_server.html#getting-locked-out-of-the-server [Take Notes in Class]: data/remember.jpg "Take Notes in Class" [Pandoc Markdown]: http://johnmacfarlane.net/pandoc/