% CST8207 Week 10 Notes -- Shell Scripts: command substitution, integer arithmetic, exit status, debugging, if/then/else; Midterm Test #2 % Ian! D. Allen -- -- [www.idallen.com] % Fall 2018 - September to December 2018 - Updated 2018-11-07 20:13 EST - [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 10 Notes HTML] -- this file -- **Read All The Words** 2. [Command Substitution] -- interpolate stdout into a command line using `$(...)` or \`...\` 3. [Integer Arithmetic] -- shell script integer math: `expr`, `let`, `$((...))` 4. [Command Exit Status] -- variable `$?` 5. [Shell Script Debugging] -- using options `-v` and `-x` 6. [Shell Control Structures] -- if, then, else, test, `[...]`, for, case 7. [List of Commands] -- Command names you should know, listed by week 8. [Video Tutorials on Lynda.com] -- tagged by week number 9. [Linux and Sysadmin News in the World] Assignments, Quizzes, and Lab work this week -------------------------------------------- > **Reminder:** There are now two quizzes that you need to complete on > Brightspace as part of your term Quiz mark. A third quiz will be posted > before the Final Exam. The Quizzes are *not* optional; see [Quizzes and > Tests]. 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? - [Assignment #09 HTML] -- setting permissions, mode, `umask`, personal web site - [Assignment #11 HTML] -- tar, processes, syslog, crontab, at, mail, shell script ### 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 the web notes. (Please: **Read All The Words**) 2. Do the relevant Worksheet(s). 3. Do the relevant Assignment(s). 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]. Worksheet #08 is for [Assignment #09 HTML]. - [Worksheet #08 ODT] -- Linux file system permissions (modes) - This Worksheet is a prerequisite for [Assignment #09 HTML] - [Worksheet #08 PDF] -- PDF version - [Worksheet #08 HTML] -- HTML version - `chmod, ls -lid, umask` Worksheets prepare you for the upcoming assignments. Upcoming tests and exams ------------------------ This course has two midterm tests (10%, 15%) and one final exam (40%). > Note that your upcoming Midterm Test #2 is worth more than five 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. ![Bring your favourite marker to your test] Follow this link to see all your upcoming [Quizzes and Tests]. The dates are also posted on the [Course Home Page] and on [Brightspace CST8207]. For full marks, read the [Test Instructions] (all the words) **before** your midterm tests. 1. First Midterm test: Done. 2. Second Midterm test: 45 minutes; in your one-hour lecture class this week. 3. Final Exam: The date is now posted on ACSIS: Thursday December 13 8am to 11am in the Gym. Midterm tests take place in your one-hour lecture class on Thursday or Friday this week, not in your lab period. You must write the midterm test in the one-hour lecture class in which you are registered. Notes from the Classroom ======================== - **Take notes in class!** Keep a pad open on your desk. : *Research Matters / The Magic of Writing Stuff Down* -- Note taking is an effective memory and learning aid because it prompts students to think about their learning; it's more effective when done by hand; and young writers, even those with learning disabilities, aren't well served by moving too quickly to keyboarding. - Try the `pstree` and `top` commands. - Don't forget to finish your five Brightspace quiz attempts for each of the Midterm 1 and Midterm 2 quizzes. There will be a third quiz available to prepare for the Final Exam. Do at least five attempts in all three quizzes. - Regarding world-writable files in your account: - Outside of the one directory in [Assignment #09][Assignment #09 HTML], you must not have any world-writable (writable by "other") files or directories in your account. - The checking program will deduct marks if it finds world-writable files. - See below. - Regarding [Assignment #09 HTML] and [Assignment #11 HTML]: - Material in these assignments is **NOT** on the upcoming second midterm test. - Do not spend time doing assignments (3%) at the expense of studying for your upcoming second midterm test (15%)! 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! Finding world-writable files in your account -------------------------------------------- The assignment **Checking Programs** may issue this message: Number of world-writable pathnames in abcd0001 account: 1 ERROR: Sysadmin do not create files that anyone can overwrite. ERROR: See "Examples of uses of find" to find these files. ERROR(-1): Fix the permissions on these files Don't create files or directories that anyone ("other") can write, except the few required ones in the one [Assignment #09 HTML] `head` directory! You must look at all the files in your account to try to find these files or directories that you have created with "other" write permissions. You can find the files the hard way, using `cd` and `ls`, or you can do it the easy way using a recursive command to look for them: - To search the course notes for a text string, re-read section 4.5.1 of [Assignment #05 HTML], especially item #11 about searching for the text string `world-writable` in all the course notes. - You will be able to identify which course notes web page you should read to find the example showing how to find world-writable files. - Fix the permissions on your files. Remove write permission for "other". Your own personal web page on the CLS ===================================== This is part of the [Assignment #09 HTML]. You can do it now. - [Create your own web page!] - You will need to use `chmod 755` on your `public_html` directory. - Your web page will be visible on the Internet using a web browser to access URL `http://cst8207.idallen.ca/~``abcd0001` where *abcd0001* is replaced with your CLS userid. (There is a tilde character in that URL.) - Example: - View [all the Winter 17W class images] - View [all the Fall 17F class images] - View [all the Winter 18F class images] - View [all the Fall 18F class images][all the Winter 18F class images] Who is using the VIM editor? ============================ This page may take a minute or two to load; be patient: [Who is using the VIM editor?] 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]. 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]: week10notes.txt [Week 10 Notes HTML]: week10notes.html [Command Substitution]: 710_command_substitution.html [Integer Arithmetic]: 715_shell_arithmetic.html [Command Exit Status]: 720_exit_status.html [Shell Script Debugging]: 725_debugging_shell_scripts.html [Shell Control Structures]: 730_control_statements.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 [Quizzes and Tests]: 000_quizzes_and_tests.html [Assignment #09 HTML]: assignment09.html [Assignment #11 HTML]: assignment11.html [Course Introduction: Install Libre Office]: 050_course_introduction.html#install-libreoffice-or-openoffice-into-windows [Worksheet #08 ODT]: worksheet08.odt [Worksheet #08 PDF]: worksheet08.pdf [Worksheet #08 HTML]: worksheet08.html [Practice Tests and Answers]: 000_practice_tests.html [Bring your favourite marker to your test]: data/sniff_markers.jpg "Bring your favourite marker to your test" [Brightspace CST8207]: https://brightspace.algonquincollege.com/d2l/home/117776 [Test Instructions]: 000_test_instructions.html [Assignment #05 HTML]: assignment05.html [Create your own web page!]: 000_student_web_site.html [all the Winter 17W class images]: http://cst8207.idallen.ca/montage17w.cgi [all the Fall 17F class images]: http://cst8207.idallen.ca/montage17f.cgi [all the Winter 18F class images]: http://cst8207.idallen.ca/montage18f.cgi [Who is using the VIM editor?]: http://cst8207.idallen.ca/vim18f.cgi [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/