% CST8207 Week 02 Notes -- the shell, arguments and options, man pages % Ian! D. Allen -- -- [www.idallen.com] % Winter 2018 - January to April 2018 - Updated 2018-02-28 18:56 EST - [Course Home Page] - [Course Outline] - [All Weeks] - [Plain Text] T Building Power Shutdown 9pm Saturday January 27 affects CLS ============================================================= See your CST8207 Blackboard announcements for an important message regarding the power shutdown at 9pm on Saturday, January 27. Student Feedback -- How to Succeed in Linux =========================================== _ _ _____ ____ _ _ _ _ | | | | _____ __ |_ _|__ / ___| _ _ ___ ___ ___ ___ __| | (_)_ __ | | (_)_ __ _ ___ __ | |_| |/ _ \ \ /\ / / | |/ _ \ \___ \| | | |/ __/ __/ _ \/ _ \/ _` | | | '_ \ | | | | '_ \| | | \ \/ / | _ | (_) \ V V / | | (_) | ___) | |_| | (_| (_| __/ __/ (_| | | | | | | | |___| | | | | |_| |> < |_| |_|\___/ \_/\_/ |_|\___/ |____/ \__,_|\___\___\___|\___|\__,_| |_|_| |_| |_____|_|_| |_|\__,_/_/\_\ [Some advice from CST student Joshua McNeely] *"learn how to use the website early, because it is an incredibly useful resource (it's the only resource needed)."* I encourage you to read the course notes. Don't take my word for it: Note from a student in 17W: From: Damien Houle - CST8207-17W Subject: Wonderful Website I wanted to make sure you're aware of how much the students and myself from last semester appreciate your awesome website. Many of us have used it on multiple occasions throughout our level 2 course for our current assignments because it has everything we need, as long as we READ ALL THE WORDS! I really miss your labs and lectures and realize now how spoiled I was to have you as my teacher and Linux mentor. Hope the semester offers you as much fun as our class was although i doubt it. Best regards Damien Houle (aka Linux people) Note from a student in 17W: Dear Professor Allen, I was working with the mid-term practice last weekend, and it doesn't goes very well. And then I go back to watch the class notes(I know! I should do that in the first place) because I realize that I missed lots of the information. Then I found that the pages of course notes are super helpful. It helps me a lot! I thought the pages are too much links and too complex when I just taking a quick look in the first time, but I was wrong. It's so impressive that the contents are strong logical, everything is explained in detail but not complicated, easy to understand. Most of the things does not take me a long time to understand. I really should read the pages earlier!!! It does takes me many time to adapt the new learning style as a foreign student, but I am feeling better right now. Hopefully, it is not too late for the test. Anyway, just want to tell you that the course pages are very helpful. And thank you, This is a great work for us! Mail about the web site from the USA: From: King, Alexander J To: Ian Allen Subject: Lecture cap inquiry Date: Sat, 8 Apr 2017 05:22:52 -0400 Professor Allen, My name is Alexander King and I'm a computer science engineering student at The University of Toledo, Ohio. I came across a video of you rapping the other day. I must say it was entertaining. After that I went on to find your website . I'm writing to inquire if any of your lectures have been recorded and if you're able and willing to share them with me? Your is amazing as it is but I figured I would ask if actual lectures were out there somewhere. All the best, Alexander J King Readings, Assignments, Labs, Tests, and ToDo ============================================ Read (at least) these things (All The Words) -------------------------------------------- 1. [Week 02 Notes HTML] -- this file -- **Read All The Words** 2. [File Transfer] -- File transfer to/from Unix/Linux machines. You need to know this this to upload your assignments for marking. 3. [The Unix/Linux Shell] -- using the shell command line in Linux 4. [Command Arguments and Options] 5. [Finding Help in Manual Pages -- RTFM] 6. [File System and Pathnames] -- ROOT, absolute, relative, dot, dot dot 7. [List of Commands] -- Command names you should know, listed by week 8. [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 - **Introduction** - Introduction 1m 10s - **Ch.1. Introduction to Unix** - What is Unix 7m 27s - Logging in and using the command prompt 5m 19s - Ignore the Mac-specific menus, user information, and shortcuts - Command Structure 5m 22s - command names, options, and arguments - Kernels and shells 5m 25s - the O/S core vs. the shell programs that read your command line - Unix manual pages 4m 6s - `man` - how to get help on every Unix/Linux command name - some say this is "the most valuable movie", "your best friend" - **2. Filesystem Basics** - The working directory 2m 49s - `pwd` - Listing files and directories 3m 59s - `pwd`, `ls`, hidden files - Moving around the filesystem 4m 58s - `cd`, TAB filename completion, absolute/relative paths - Filesystem organization 4m 12s - ROOT, standard Unix folders - **3. Working with Files and Directories** - Naming files 5m 41s - Unix is case-sensitive, OSX is case-insensitive! - avoid special characters or blanks in Unix pathnames - Creating files 2m 19s - `touch` - Unix text editors 6m 39s - `vi/vim, nano` - `head, tail` - Reading files 5m 35s - `cat, more, less` - Reading portions of files 3m 27s - `head, tail` - Creating directories 2m 40s - `mkdir` - Moving and renaming files and directories 8m 32s - `mv` (including using `..`) - Copying files and directories 3m 7s - `cp` - Deleting files and directories 3m 38s - `rm, rmdir` - Searching for files and directories 6m 32s - `find` using "wildcard" (GLOB) patterns - same as shell GLOB - **5. Commands and Programs** - Command basics 4m 4s - commands are usually small programs; ways to exit from programs - Using the command history 8m 16s - shell command history is saved your `.bash_history` file Assignments this week --------------------- 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 #01 HTML] -- Head Shot, Multi-tasking and Schoolwork - [Assignment #02 HTML] -- Course Linux Server simple commands - Really do **Read All The Words**. You don't get a second chance to get it right. Lab work this week ------------------ - Last week, your instructor showed you how to log in to the [Course Linux Server] and use some simple commands. This week, you will create a file and then transfer the file to your laptop and upload it to Blackboard. - [Assignment #02 HTML] will have you log in to the CLS, do some simple commands with output redirection, and change your CLS password. - After you finish the above assignments, read [File System and Pathnames]. - If you understand pathnames, start work on the first two worksheets. - You need to understand the worksheets for your next assignments. ### 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]. These first two worksheets 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 prepare you for the upcoming assignments. Upcoming tests -------------- For full marks, read the [Test Instructions] (all the words) before your midterm tests. Put these dates into your phone! Use the [Algonquin Registered Name Game] link to test your name before the test. I don't answer questions about the instructions during the test. 1. First Midterm test: 45 minutes; in your one-hour lecture class at 3pm on Wednesday in Week 5 (February 14). 2. Second Midterm test: 45 minutes; in your one-hour lecture class at 3pm on Wednesday in Week 9 (March 21). Tests take place in your one-hour lecture class, not in your lab period. You must write the test in the lecture class in which you are registered. Each midterm test is 45 minutes long and contains approximately 45 multiple-choice questions similar to those found in [Practice Tests and Answers]. ### Midterm Test #1 -- Wednesday February 14 at 3pm in C346 - Midterm #1 takes place Wednesday February 14 at 3pm in C346 in your scheduled lecture class (not in your lab period). - For full marks, you must read the [Test Instructions] before the test for important directions on how to enter your name, student number, answers, your lab (not lecture) section number, and the test version code on the question sheet and the mark-sense forms. - There may be more questions on the test than you can answer in the time allowed; answer the ones you know, first. - A set of practice questions and quizzes for the test are available in [Practice Tests and Answers]. Notes from the Classroom ======================== - **Take notes in class!** Keep a pad open on your desk. - This week in lecture we learn about the terminal, the shell, simple output redirection, and using pathnames, especially relative pathnames in the current directory. - Keep a notebook with a [List of Commands] in it. - You need to write down yourself what each command *does*. - On Blackboard, click on the hidden gear icon in the top-right corner of the "My Announcements" box and set "Show Announcements for" to "Last 30 days". - Navigating Blackboard and the Course Notes: - Always open links in tabs as you were shown in class; do not click through links or you'll get lost. - Know how to hide and un-hide the Blackboard left-side-bar course menu. - Configure "All" or "Last 30 days" for Blackboard "My Announcements". - Turn on "show file extensions" in your Windows machines, or else you may upload files with incorrect names such as `assginment01.txt.txt`! - Never use the sample userid *abcd0001* to log in. These are example userids used in the notes that are meant to be replaced with *your own login userid*. If you try repeatedly to log in to the [Course Linux Server] from home using a non-existent userid or password, your home IP address will be locked out; see the [Course Linux Server] notes for help on how to fix this. - Make sure you read [Course Introduction: Basic EMail Etiquette] before you send email to your professor. - Make the **Subject:** match the message. - Don't quote irrelevant crap in replies; remove the junk. - [Don't top-post] unless forwarding. - Used in class and lab this week via [Remote Login] to the [Course Linux Server] -- all the commands from [Assignment #02][Assignment #02 HTML]: - `exit`, `date`, `users`, `who`, `cal`, `fortune`, `sl`, `cmatrix -s`, `echo hello`, `figlet hello`, `toilet hello`, `history` - To delete (remove) a file named `foo.txt`, use the command: `rm foo.txt` - Unix/Linux has no *Recycle Bin*. The file is deleted. - Terminal special characters: `^U ^L ^W ^C UpArrow DownArrow` Fifteen minute rule: don't waste your time ------------------------------------------ See the [Course Introduction: Fifteen Minute Rule] Course Linux Server (CLS) account no login ------------------------------------------ Locked out of the Course Linux Server ------------------------------------- As I said last week, if you typed your CLS userid or password incorrectly more than about three times, you got your IP address locked out. When you are locked out, follow the directions in [Course Linux Server: Geting Locked Out] for finding out your real IP address and getting it unblocked. Assignment #1: Read All The Words --------------------------------- Trying to use privileged commands `sudo` and `su` on the CLS ------------------------------------------------------------ No, you are *not allowed* to use privileged commands such as `sudo` or `su` on my Course Linux Server. Use your own Linux virtual machine if you want to play with those commands. Don't use the place-holder userid `abcd0001` -------------------------------------------- - Never use the sample userid *abcd0001* to log in. These are example userids used in the notes that are meant to be replaced with *your own login userid*. If you try repeatedly to log in to the [Course Linux Server] from home using a non-existent userid or password, your home IP address will be locked out; see the [Course Linux Server] notes for help on how to fix this. Getting a job reference from your professor =========================================== Note from another former student: I just wanted to thank you again for the reference that you me when applying for a government position last year. I ended up getting the job and I am part of a great team. Thanks again, If you want a good reference from me, get great marks and keep your lab class attendance up-to-date. Copying from other students -- plagiarism ========================================= Here is a note from a Student who was charged with plagiarism (academic fraud) in a previous year: Professor, After everything, I would just like to thank you for not giving us any harsher consequences. I really appreciate it, it's probably the best Christmas gift after this stressful weekend I could get. And what might be weird for you, I'd like to thank you for that you found this plagiarism out because I have a lesson in my mind I will never forget. I'm still very embarrassed [...] but these are the consequences I have to face right now. Thank you once again and I wish you Merry Christmas and Happy New Year. One other student involved in the above case failed the course. Review the class notes on [Plagiarism] if you copy the work of other students or if you let your work be copied by other students. I know who you are and we're going to have a chat about your behaviour soon. Attacks on the CLS ================== Commands to show the number of locked out IP addresses and attempts to use locked-out IP addresses in `/etc/hosts.evil`: $ wc /etc/hosts.evil $ fgrep -c 'refused connect' /var/log/auth.log $ fgrep 'refused connect' /var/log/auth.log | less Count the unique locked-out addresses, and then show the top twenty: $ fgrep 'refused connect' /var/log/auth.log | awk '{print $NF}' | sort -u | wc $ fgrep 'refused connect' /var/log/auth.log | awk '{print $NF}' | sort | uniq -c | sort -nr | head -n 20 Bruce Schneier on cyber attacks ------------------------------- *"For decades, hackers have used techniques such as jump hosts, VPNs, Tor and open relays to obscure their origin, and in many cases they work. I'm sure that many national intelligence agencies route their attacks through China, simply because everyone knows lots of attacks come from China."* ![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]: week02notes.txt [Some advice from CST student Joshua McNeely]: notes/data/joshua_testimony.txt [Week 02 Notes HTML]: week02notes.html [File Transfer]: 015_file_transfer.html [The Unix/Linux Shell]: 120_shell_basics.html [Command Arguments and Options]: 150_arguments_and_options.html [Finding Help in Manual Pages -- RTFM]: 140_man_page_RTFM.html [File System and Pathnames]: 160_pathnames.html [List of Commands]: 900_unix_command_list.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 #01 HTML]: assignment01.html [Assignment #02 HTML]: assignment02.html [Course Linux Server]: 070_course_linux_server.html [Course Introduction: Install Libre Office]: 050_course_introduction.html#install-libreoffice-or-openoffice-into-windows [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 [Test Instructions]: 000_test_instructions.html [Algonquin Registered Name Game]: http://cst8207.idallen.ca/~idallen/namegame.cgi [Practice Tests and Answers]: PRACTICE_TEST_README.html [Course Introduction: Basic EMail Etiquette]: 050_course_introduction.html#basic-email-etiquette [Don't top-post]: http://idallen.com/topposting.html [Remote Login]: 110_remote_login.html [Course Introduction: Fifteen Minute Rule]: 050_course_introduction.html#fifteen-minute-rule-dont-waste-your-time [Course Linux Server: Geting Locked Out]: 070_course_linux_server.html#getting-locked-out-of-the-server [Plagiarism]: 050_course_introduction.html#plagiarism-and-working-together [Take Notes in Class]: data/remember.jpg "Take Notes in Class" [Pandoc Markdown]: http://johnmacfarlane.net/pandoc/