CTS 1106
Introduction to Unix / Linux

View Weekly Course Schedule.

View Course Resources.

View Project #1 requirements
View Project #2 requirements
View Project #3 requirements
View Project #4 requirements
View Project #5 requirements
View Project #6 requirements
               
View HW #1
View HW #2
View HW #3
View HW #4
View HW #5
View HW #6
View HW #7


CTS-1106 Syllabus

Fall 2020

Time & Place: Ref. No. 42718:  Tuesday & Thursday, 5:30–6:45 PM online via Zoom
Instructor: Name:  Wayne Pollock
E-mail:  Internet: (prefer the Inbox tool in Canvas please)
Phone: (813) 253-7213 (voice mail only)
Office Location: DTEC–404 (No scheduled on-campus time for the entire term)
View my Office Hours.
Skype ID:  wpollock@hccfl.edu
Homepage URL:  https://wpollock.com/
Text: Mark Sobell, A Practical Guide to Linux, Fourth Edition, ©2018 Mark G. Sobell (Pub. Addison-Wesley) ISBN-13 # 978-0-13-477460-2

(This ISBN is for the print version, but other versions of this edition of this book are acceptable as well.)

HCC bookstore on-line

Description: (This course is 3 credit hours long.)  This course is designed to teach the Unix and Linux operating systems.  Emphasis will be on using the command line utility commands, working with files and directories, using the shell and creating and reading simple shell scripts.  Students will learn important Unix/Linux operating system concepts to prepare the student for follow-up administration, networking, and security courses.  This hands-on course will be project oriented.  Additional topics include email and using the X Window GUI.

This is a Distance Learning - Live course.  Class meetings will be held on-line via Zoom.

All Students must access the course in Canvas and complete the Week 1 (Module 0) assignments/activities by 8/26/2020.  Failure to show attendance (login to course) and participation (completion of assignments/activities) in the course by this date will result in withdrawal for non-attendance.  The course orientation will introduce you to the course.

Objectives: After completing this course students will be able to:
  1. Discuss computer hardware, including CPU (also SMP and multi-core), I/O, memory (RAM and ROM), storage (disks and removable media), system clock, and bus.
  2. Understand concepts and definitions of operating systems, including kernels, utilities, application software, application, and user interfaces.
  3. Discuss the history of Unix and Linux, including major innovations and features such as large number of utilities, pipelines, hierarchical filesystems, powerful user interface (the shell), multi-tasking (and time-slicing), and multi-user (and security), as well as the role of POSIX and Gnu.
  4. Know of Unix/Linux related careers, certifications, and professional societies.
  5. Understand login and logout procedures, including remote login using SSH, and setting, protecting, and changing passwords.
  6. Transfer files between systems with sftp, scp, and rsync.
  7. Know the difference between Unix/Linux and Windows text files and how to convert files from one format to the other.
  8. Run various commands from the command line, including communication/messaging tools such as mesg, write, talk, wall, xmessage, and irc.
  9. Understand the X window GUI concepts including desktop environments (CDE, Gnome, and KDE), window managers, and remote GUI sessions.
  10. Use the on-line manual and other available information resources.
  11. Understand and use Unix/Linux filesystem security, including the role of the root user, users and groups.
  12. Understand concepts of email including Internet email addresses, mailboxes, mail servers, “mailer-daemon” errors, and various related protocols such as SMTP, POP, IMAP, and MIME.  Use command line email commands such as alpine and mailx.
  13. Use the Unix/Linux text editor vim to create and edit text files.
  14. Use file related utilities, including understanding filenames and pathnames, special (device) files (such as /dev/null, /dev/tty, and /proc).
  15. Use and understand various filter commands and other file processing commands such as file, diff, gzip, and tar.
  16. Manage directories and use related commands.  Know standard directories (the Filesystem Hierarchy Standard).
  17. Understand disk and filesystem concepts including disk formatting, filesystems, “inodes” and directories, and mounting filesystems.  Reporting disk space usage and limits with df, du, and quota.
  18. Use removable media (e.g., flash drives, CDs, etc.) with mtools and auto-mounters.
  19. Understand and use hard and soft (symbolic) links.
  20. Search for files using find and locate.
  21. Set file and directory permissions and attributes correctly, using chmod, chown, chgrp, umask, and touch.  Use octal numbers for permissions.
  22. Discuss different shells including Bourne shell, C shell, Korn shell, Bash, and Z shell.  Use POSIX shell features effectively including quoting, command grouping (and sub-shells), wildcards (globbing), command history, I/O redirections (including noclobber mode), and aliases.
  23. Use basic Korn, Bash, and Z shell extensions such as auto-completions.
  24. Set and examine standard environment variables, including HOME, TERM, PATH, PS1, TZ, etc.  Change and examine locale settings (locale command and the locale environment variables (LC_*).  Change and examine other settings with set, set -o.  Use and modify login and other startup scripts (e.g., .profile, .bashrc, and /etc/profile).
  25. Understand the basics of shell scripts, including running scripts in the current directory, correct permissions for shell scripts, comments, the she-bang line, sourcing scripts, command line arguments to scripts, arithmetic, command substitution, the exit status, and exit, test, and the if statements.
  26. Know process concepts including process IDs, fork and exec, system (daemon) processes such as init, be able to examine processes with standard utilities, and change process priorities with nice and renice.
  27. Understand how to run processes in the background and use job control.
  28. Understand signals, and be able to send signals to processes with kill.  Allow processes continue after your session ends (using nohup).
  29. Understand job scheduling concepts and use job scheduling commands including at, atrm, atq, and crontab and anacron (or periodic).  Control the use of these commands with allow and deny files.
Prerequisite: CGS 1000 or permission of the instructor.  Students enrolled in a degree or college credit certificate program must complete all prerequisites.  Note!  HCC registration computers may not check for prerequisites before allowing you to enroll.  Be certain you have all required prerequisites or you won't have much of a chance of success.  Also you may be dropped from the class.
Facilities: Assignments must be completed on YborStudent.hccfl.edu (a Linux server), which can be accessed from on or off campus using any SSH capable terminal emulator such as PuTTY.  (Your user ID and password will be provided along with instructions on how to use this.)  From off-campus, you can also practice using any Unix/Linux system available (or install Unix or Linux at home).

Your student account on YborStudent.hccfl.edu will be deleted soon after the term ends.  Be sure to make copies of all your files if you wish to keep them!

You can use HawkNet (WebAdvisor) to obtain your final grade for the course.  You can use your assigned Hawkmail (Hawkmail365) email address or use Canvas, if you wish to discuss your grades via email.  (Note, it may be possible to setup your Hawkmail account to forward all received emails to some outside email account; but you still must send mail from your official HCC account to discuss grades.)

Most college systems use a single sign-on user ID, known as HCC “NetID”.  Visit netid.hccfl.edu to register and to update your credentials.  (Your initial password is your uppercase first name initial, lowercase last name initial, and your seven digit student ID number.)  Note, the quickest way to resolve login issues is the HCC Live Web Portal (hcclive.hccfl.edu).

The college provides wireless network connections for students and guests on Dale Mabry campus.  For students, select the network “HCC_Wireless” from the list of available networks.  Follow the on-screen steps by entering your HCC email address and network password.  For HCC guests: Select “HCC_Guest” from available networks.  Follow the on-screen steps to complete registration.  This network will be available between 7:00 AM and 10:00 PM.  These are the only official HCC networks; don't use others that may appear.

Hawk Alert text messaging service allows you to receive important information regarding campus closures or emergencies.  You may also sign up for financial aid notifications and registration and payment deadlines.  This is a free service, although some fees may be applied by your cellular service provider or plan for text messages.  For more information, visit https://www.hccfl.edu/support-services/hawk-alert.

HCC's Student Assistance Program (SAP) offers resources tailored to student life, providing you with the right tools to help you through some of life's toughest challenges.  The college has contracted Baycare Health Management to provide free, professional, confidential counseling by telephone and in person.  A wide range of topics may be addressed through this program, including mental health counseling, budgeting, and financial concerns.  Please call 800-878-5470 or send email to baycaresap@baycare.org for further information.

HCC DM Open Lab

Computers with all needed software for this course are located in the Open Computer Lab in DTEC 462 (Dale Mabry campus, Technology building, 4th floor).  A maximum of 12 students are allowed in the lab at a time.  Additional help is available via phone, email or other distance means.  Call 813.253.7330 for details.

Monday – Thursday8:00 AM to 8:00 PM
Friday 8:00 AM to 4:30 PM
Saturday 8:00 AM to 2:30 PM

(Note:  Lab technicians (“Lab Techs”) are not teaching assistants or tutors, and shouldn't be expected to help you with your coursework.)

Rules for Using HCC Facilities

  1. No food or drinks near computer equipment.
  2. Students bringing their own laptops need to use the wireless network only.  Students cannot disconnect network cables from classroom's computers to connect their personal devices.
  3. Students are not allowed to disconnect monitors or computers to power their personal equipment.
Grading:
6 projects: 36%
7 homework assignments: 14%
3 equally weighted closed-book multiple choice exams     50%
Classroom participation: +5%

Grading scale:  A=90-100,   B=80-89,   C=70-79,   D=65-69,   F=0-64
(You can elect to “audit” the class during the add/drop period.)

Policies:
  • Course format is interactive lecture via Zoom, with most projects done outside of class.
  • No make-up exams will be offered without the prior approval of the instructor.
  • Exams will be open book and open note multiple choice exams.  You should not try to search the Internet for the questions!  No outside help is permitted for exams, and you should not discuss or disclose exam contents.  While the exams are non-cumulative, each does build upon knowledge acquired earlier.  Exams are based mostly upon material presented in class.  However, some questions may be from assigned readings (the textbook and on-line resources).  Exams are taken outside of class through Canvas.
  • Exams will only cover material discussed in class or assigned as reading, before the exam.  Should the class fall behind the course schedule, some topics shown on the syllabus due for an earlier exam will be tested on the following exam instead.
  • Regular attendance is imperative for the successful completion of this class.  The textbook and on-line resources should be considered as required course supplements; in other words, the course is not based on the text.
  • All phones, pagers, and beepers must be turned off during class time, except with prior permission of the instructor.  No food or drink is permitted in HCC classrooms.
  • Attendance will be taken within 5 minutes of the start of class; after 4 unexcused absences and/or lateness, the student will lose 2 points off the final grade for each additional occurrence.
  • If you miss a class, you are still responsible for the material covered in that class.  All students should exchange contact information (name, email address, phone number) with at least one other student in the class.  If you must miss a class, you should then contact another student via Canvas and request they take class notes for you.  (Note, Hawknet has Hawkmail365 email for HCC students.)
  • Credit for class participation includes attendance, preparedness, and adding to class discussions by asking questions and participating in discussions.  Playing computer games, surfing the Internet, or working on assignments for this or other classes during class time will lose you credit.
  • Additional time outside of class will be required.  For typical students an average of between 6 and 10 hours each week outside of class are required for preparation, practice, projects, and homework assignments.
  • Students are expected to prepare for each class by completing all reading assignments, reviewing examples and model solutions provided, and practicing outside of class.  This is important — you cannot learn a skill such as Linux only by attending class and reading books.  You must practice for several hours, a few days each week!  If you won't have enough time available, consider auditing the course.
  • Students are expected to check the class website regularly.  Any syllabus changes, class cancellations, or changes to project assignments and homework assignments are announced in class and posted in Canvas.
  • You do not have my permission to post on the web or otherwise distribute my class lectures and other course materials.  (You can distribute freely any materials I make publicly available from the HCC (or the wpollock.com) website, without asking permission, provided you give me credit for the work and don't alter it.  Any other use will require expressly given permission.)
  • Working together on individual assignments is considered as cheating!  Turning in someone else's work without giving them credit is also considered cheating (plagiarism).  Cheating will result in an automatic F (zero) for the project for all parties.  Also, you can only earn credit for your own work and not someone else's, even if you do cite your sources.  Note that some projects may be designated as group projects, where members of small groups work together on a project.  It is also okay to ask a fellow student for class notes (in the event you miss a class) or for help in understanding the text or material given to the class (e.g., examples on the class website).  You are encouraged to study together as well.
  • Because you can learn a lot from your peers, both in the class and in the broader community, I encourage collaboration with both.  However, do not mistake this as a license to cheat.  It is one thing to learn from and with your peers; it is another to pass their work off as your own.  With respect to assignments for this class:
    • You are expected to document any collaboration that takes place.
    • Absolutely no electronic transfer (or other copying) of code between students is permitted.
    • Any code (shell commands) that you “find” on the Internet must be cited, with an active link to that code.
    • While you are encouraged to engage in conversations in online forums, under no circumstances are you permitted to solicit other individuals to complete your work for you.  (So, no posting assignments or homework questions and asking for answers.)
    • Ultimately, YOU are responsible for all aspects of your submissions.  Failure to be able to explain and defend your submission will be treated as a violation of academic integrity.
  • You must abide by the HCC Acceptable Use Policy (AUP) for computers and services.  In particular, you must not run network scanners, or attempt to obtain administrator (“root”) privileges or otherwise disrupt HCC computers and services.  That means no attempt to run privileged commands such as sudo or su!
  • You must follow the academic honesty policy and the student code of conduct for HCC.  A second cheating offense will result in an “F” for the course, and your name will be turned over to the dean for further handling.  I take these matters very seriously.  You have been warned!
  • Every effort will be made to stick to the weekly schedule for our course.  However it may happen that we will fall behind the schedule at some point.  If so, no topics will be skipped.  Instead we will attempt to catch up over the following weeks.
  • Please be aware that if we fall behind on the weekly schedule, the topics discussed may not match what shows on the syllabus.  The weekly schedule may (but probably won't be) updated in this case.
  • In case we do fall behind, homework assignments are automatically postponed until the next class (i.e., homework assignments that show on the schedule as due the same day we discuss some topic, will be due the day we will discuss that topic in class).  Projects and exams will not be automatically postponed.  Should your instructor deem it necessary, projects and exams may be rescheduled; this will be announced in class and on the RSS feed.
  • Communications Policy:  Communication between the instructor and student is a critical success factor in any course.  You are to use the Canvas message ("Inbox") function to send messages to the instructor.  A response to your email will be received within two working days.  Make sure all your communications in this course are polite; be as clear as you can since online communication makes it difficult to tell your tone or facial expression.

    Students wanting help from their instructor should first send an email.  A follow up can be arranged during office hours for a Microsoft Teams meeting, a Zoom meeting, or by other means.  During office hours, expect quick email responses.

    HCC policy is that grades can only be discussed in person during office hours, or via email only if you use your assigned HCC HawkNet (Hawkmail365) email account or Canvas.

  • No appointment is necessary to see me during my scheduled, on-campus office hours.  You can just “walk-in”.  You can make appointments for other times as long as I'm available.
  • Occasionally my office hours will be canceled on short (or no) notice, for example if the dean calls me for a meeting.  Before driving out to campus just for my office hours, you should contact me the day before to make sure I still plan to be there.
  • Late Policies:  Late assignments (homework assignments, projects, or exams) generally will not be accepted.  An assignment is late if not turned in by the start of class on the day it is due.

    Late assignments will be accepted late only if you obtain the instructor's permission prior to the due date of the assignment, or for a documented serious medical reason.  All late assignments are subject to a late penalty of at least one letter grade (10%) regardless of the reason for the delay.

    Projects and homework assignments later than one week will receive a more severe late penalty; very late assignments without adequate excuses will receive a grade of “F” (0).  However if you have a very good reason your instructor may waive any or all of the late penalty.  (Examples of good reasons include extended illness that prevents working, being out of town for work, or military service.  Remember, documentation will be required.)

  • HCC Covid-19 Policies
    See the HCC COVID Statement (PDF).  Please follow these rules and make use of the provided services.

    Advice: Wash your hands as if you just finished slicing jalapeños and must now take out your contact lenses.

Projects: You will have sufficient time to complete the projects, at least a week but usually two weeks.  Although there may be some in-class exercises, you must work individually on the projects, typically outside of regular class hours.

Projects are graded on the following scale:

A = 95% (Excellent: Good design with good comments, style, and extras)
B = 85% (Good: Good design, some comments, readable style, and it works)
C = 75% (Acceptable: Project objectives are met or are close to being met)
D = 65% (Unacceptable)
E = 10-64% (Variable credit: At least you tried)
F =  0% (Didn't hand in the project)

Minor extras worth +5 points, minor omissions or poor design worth -5.

Projects are not graded immediately when turned in.  They are graded later, usually after the project deadline has passed.  Every effort will be made to grade projects within a week of the due date, or as soon thereafter as possible.  Further details will be provided with your first project.  (See also submitting assignments below.)

Most project will require you to create certain files on the YborStudent.hccfl.edu server.  The default permissions allows your instructor read-only access to your files.  You must not change those permissions, or your work cannot be graded!  (Also, keep your project files intact until you have verified the grade for that project was recorded correctly.)

Homework
Assignments:
The homework questions came from the text, with some changes; some questions may be based on required on-line readings.

You may work together in small groups (two or three people) for the homework assignments, provided the names of all who worked together are listed.  Each student must still submit their own copy (for feedback, and in case you don't list the others you worked with).

Homework assignment questions are intended to focus your studying of the readings and to stimulate class questions and discussion.  For this reason homework assignments are generally due before the class where that material is covered.  It is not intended that students can answer all the questions assigned, but you must show you have thought about the questions and read the required material in order to earn a “B” grade or higher.

Submitting Assignments: Homework assignments must be submitted in the appropriate Canvas dropbox.

Projects are typically done on the YborStudent.hccfl.edu server.  When your project is ready for grading, you should submit a short note to the Canvas dropbox for that project.

Always keep a backup copy of your submitted projects, until you are certain they have been received and graded correctly.

Academic Calendar
HCC Academic Calendar:
Classes Begin: Monday  8/17/2020   (First class meeting: Tuesday 8/18/2020)
Add-Drop Ends: Friday   8/21/2020
Orientation Period Ends:  Wednesday   8/26/2020
Last Day to Withdraw:  Saturday  10/24/2020
Classes End: Tuesday  12/8/2020 
Grades Available:  Thursday  12/10/2020  (from HawkNet)
HCC is closed on: Saturday–Monday  9/5/2020–9/7/2020 (Labor Day),
Tuesday  10/20/2020 (Faculty In-Service Day),
Wednesday  11/11/2020 (Veterans' Day),
Thursday–Sunday  11/26/2020–12/29/2020 (Thanksgiving Holiday)

Consequences of Dropping or Withdrawing

Dropping or withdrawing may have an impact on financial aid, veteran’s benefits, or international student visa status.  Students are encouraged to consult with a financial aid, the VA certifying official, or the international student advisor, as appropriate, prior to dropping or withdrawing from class.

Requests For Accommodations

Any student whose disability falls within the American Disabilities Act (ADA) and requires accommodations should contact the Office of Services for Students with Disabilities (OSSD).  The OSSD works with students and faculty members to identify reasonable accommodations and academic adjustments.  If you anticipate or experience any barriers to learning in your courses, please discuss your concerns with your instructor and with the OSSD office on your campus to develop an implementation plan together.

We highly encourage you to submit your accommodation requests within the first two-weeks of the semester because the accommodations are not applied retroactively.  With that in mind, you are encouraged to seek assistance from the OSSD as soon as possible, and to present any accommodations/academic adjustment letter you receive to your instructor immediately upon receiving it.

Contact information: Website: Office of Services to Students with Disabilities
Location: Dale Mabry campus: Student Services Building (DSTU) Room 102
Voice phone: (813) 259–6035,  FAX: (813) 253–7336.
You can directly contact Dale Mabry OSSD staff via email: Veronica Lugo at vlugo2@hccfl.edu or Ana Barrera at abarrera2@hccfl.edu.

HCC has a religious observance policy that accommodates the religious observance, practices, and beliefs of students.  Should students need to miss class or postpone examinations and assignments due to religious observances, they must notify their instructor at least one week prior to a religious observance.

 

Quotes on learning
Quotes:         Tell me and I'll listen.
Show me and I'll understand.
Involve me and I'll learn.
    — Lakota Indian saying
        Learning is not a spectator sport!     — Chickering & Gamson

Course schedule (and study guide) for CTS 1106

Day by day course schedule
Dates
Tue       Thu
Topics, Assigned Readings, and Assignment Due Dates
  8/18   Course introduction.  Assign User IDs for LAN and Unix systems, discuss passwords.  Basic procedures: Telnet, SSH (PuTTY), login/logout.
Overview of computer system hardware: CPU (multi-core), I/O, memory (RAM, ROM, cache), Storage (disks, files, and directories), clock, bus.  The operating system (“OS”, kernel, utilities, interfaces, device drivers).  Text (TUI or CLI) and graphical (GUI) user interfaces.
Readings:  none
  8/20   History and overview of Unix and Linux (when and where invented, by whom, why: because of space travel, and major distributions such as BSD).  Client – server computing.  Some differences between various types of Unix and Linux (distributions, versions).  Features of Unix:  Utilities and pipelines, multi-tasking (and time-slices), multi-user, powerful filesystems (no drive letters), strong security.  Professional societies, certifications, and jobs.
Begin work on homework assignment #1.
Readings:  Chapter 1
  1/20   Martin Luther King Jr. Day  —  HCC Closed
  8/25     8/27    

  9/1  
The shell and the terminal emulator (vt100/ANSI, xterm, etc.), TERM, prompt, starting up (login, MOTD, logout), upper- and lower case, stty sane, Security: passwd, Userids, Groupids, Superuser (root), Password generators pwgen and apg, xlock and vlock, id, groups, whoami (and who am i).  Correcting typing mistakes.  Typing commands (using arguments and options.)  A quick overview of some common commands to use:  command line options, who, w, more and less (b, q, space, and enter), cal, date, dict, set, finger, chsh, mkdir, ls (with the “-l” and “-a” options), uname, pwd, cd, echo, cat, wc, su and sudo.  Also know the files /etc/passwd, /etc/group, and the PATH environment setting.
Readings:  Pages 23-33 (typing commands), 42-46 (logging in/out, passwords), 1050-1051 (TERM setting), 318-319 (PATH), the descriptions of the commands listed above in the Command Reference
Homework assignment #1 due 8/27
  9/3  

    9/8     9/10  


  9/15  
Set finger data, chfn command.  Transfer files with ftp, sftp, scp, WinSCP, rsync.  Converting file format: unix2dos & dos2unix.  Printing (lp, lpr).
The man, info commands (sections, man page syntax, -f, -k, and -s section options, whatis and apropos).  Bash help, /usr/share/doc, Web resources (www.tldp.org).
Email concepts and background:  Internet email addresses, MIME, email signatures, email structure (envelope, body, and headers), mail store, email client and server components.  Using alpine email client.  mailer-daemon errors.  Privacy, legal, and ethical issues of email (spam, mail-bombs, Internet email, return-receipts).  Public key encryption and digital signatures (PGP/GPG).
Readings:  Pages 33-42, 1047-1049 (getting help), Chapter 16 (rsync, but no details tested), On-line email tutorial and study guide
Project #1 due 9/3 (done in-class)
Homework assignment #2 due 9/8
  9/15     Exam #1 — Covers from overview of computer hardware through using alpine email.
  Mon  2/17   Presidents' Day  —  HCC Closed
  9/17   Basic use of the vi editor:  a,i, ESC, x, dd, u (and ^r on vim), G, 1G, /, :w, :wq, :q!, :set [no]autoindent, :set all).  Create .vimrc and other files.  (Additional vim commands: :help, :syntax off, :set nohlsearch.)  Demo of nano (or older pico) editor.  spell, ispell, and aspell check.
Readings:  Chapter 6 (just the background and the commands listed above)
Homework assignment #3 due 9/17
  9/27   All-College Day  —  HCC Closed
  9/22     9/24   Working with files and directories:  filenames, hidden (or “dot”) files, directories, directory hierarchy, working directory, home directory, subdirectories, absolute (complete) and relative (partial) pathnames, “root” directories, . and .. directory entries.
Readings:  Pages 83-95
Project #2 due 9/22
  9/29   FHS (including standard directories such as /etc, /home, /dev, /var, and /usr/bin).  Special (device) files (/dev/null, /dev/tty, /proc, and /sys).  Basic file commands to know:  ls (and -ladR options), cp (and -iR options), mv, rm, cd, and permissions required for these.  Also pwd, mkdir, rmdir, and tree.
Readings:  Pages 96-100, the descriptions of the commands listed above in the Command Reference,   Filesystem Hierarchy Standard on-line resource
  10/1    

  10/6       10/8  
Filters.  Filter commands to know:  pr, nl, cat, tac, rev, lp/lpr, file, head, tail (and the -n option), diff, compression and archiving utilities including compress/uncompress, gzip/gunzip, bzip2/bunzip2, xz/unxz, zip/unzip, and tar (with the -ctxvzf options).  Other filter commands: cut, sort, uniq, tr, grep (and regular expressions), wc (and the -l option), od, and strings.  General-purpose filters:  awk, sed, perl.  Filters not covered on exams: expand, unexpand, fmt, tailf, vimdiff, 7zip (7za), unrar, cabextract, xxd, hexdump, enscript, ps2pdf, ps2ascii, and gpg (and the -c option).
Readings:  Chapter 3, the descriptions of the commands listed above in the Command Reference
Project #3 due 10/6
  Mon – Sun 
  3/16 – 3/29  
Mid-term Break  —  HCC Closed
  9/2 (Mon)   Labor Day  —  HCC Closed
  10/13     10/15   Disk and Filesystem concepts:  Disk geometry, low and high level formatting, partitions and slices, mounting, filesystem types (ext4, FAT*, VFAT, also NFS).  Inodes, directories, ls -i.  Working with removable media (flash drives, CDs, etc.):  using mtools and auto-mounters.  Hard links and symbolic links.  Reporting disk space usage.  Searching for files using find and locate.  (Discard find error output by adding: 2>/dev/null).  Commands to know:  ln, mount (and the mount table), df -hi, du -sh, quota, find (including finding files by name), and locate.
Readings:  Pages 822-827 (find), 70 (locate), 112-119 (links), the descriptions of the commands listed above in the Command Referencefind command tutorial resource
Homework assignment #4 due 10/15
  10/20 Faculty in-service day  —  HCC Classes Canceled
  10/22  

  10/27  
Changing file and directory permissions.  Commands to know:  chmod, chown, chgrp, touch, umask.
Readings:  Pages 100-106 (permissions), the descriptions of the commands listed above in the Command Referenceoctal number chart on-line resource
  10/27   Exam #2 — Covers from email issues through permissions (through umask)
  10/29   The shell and the environment: bsh, csh, ksh, bash, and other shells.  Environment variables: HOME, TERM, PATH, PS1, TZ, MANPATH, MAILCHECK, LOGNAME (USER), PWD.
Readings:  Chapter 5 (shell), pages 310-330 (environment variables, locale), the descriptions of the commands and settings (variables) listed above in the Command Reference
Project #4 due 10/29
  11/3   Parameter substitution (${var}), env, echo, export, set, set -o, shopt.  Locales, locale command, LC_*, LANG.  quoting, command grouping.
Readings:  Chapter 5 (shell), the descriptions of the commands and settings listed above in the Command Reference
  Fri – Sun  
  4/10 – 4/12  
Spring Day  —  HCC Closed
Sat 11/10 – Mon 11/12 Veterans' Day  —  HCC Closed
  11/5  

  11/10     11/12  
More on the shell: I/O redirection (pipes, >, >>, 2>, <, noclobber, /dev/tty, /dev/null), login scripts and “RC” scripts, cmd-line processing.  aliases, pathname expansion (a.k.a. globbing, filename generation and completion, or most commonly, wildcards): “*”, “?”, and character classes (“[list]”).  Tilde (“~”) expansion, brace (“{}”) expansion, history and fc, ^r, auto-completion (<tab>).
Readings:  Chapters 5, 10 (only the topics listed above are required reading)
Homework assignment #5 due 11/5
  11/17     11/19

  11/24  
Writing shell scripts:  concepts, basic scripts, running scripts in the current directory with ./cmd, sourcing scripts (. [see dot] and source), proper permissions for scripts.  Comments in scripts.  The she-bang line.  Command line arguments (positional parameters).  Command substitution (backquotes) and using with set --.  The colon (“:”) command.  Arithmetic expansion, expr.  Using the exit status: exit, $?if, test (!, =, !=, -n, -z, -r, -d, -eq, -ne, -lt, -le, -gt, and -ge).  Debugging shell scripts with set -x.
Readings:  Chapter 10 (again), on-line scripting tutorial and study guide
Project #5 due 11/17
Homework assignment #6 due 11/24
  11/26 Thanksgiving Holiday (Thu 11/26 – Sun 11/29)  —  HCC Closed
  12/1     12/3  

  12/8  
Processes: focus and foreground, background (“&”), fork and exec, PID, PPID, $!ps (ATT and BSD options: -ef, alx), top, w.  (Threads, process groups, and sessions not covered by exams.)  Special processes: init, ...  Signals: stty -a, handling (catch, ignore, default action), kill [-l], use of signals 1, 2, 3, 9, and 15.  Shell job control:  fg, bg, jobs [-l], ^Znohup.  Process priorities, nice, renice.  Exit status, orphans, and zombies.
Communications: mesg, write, wall, talk, ytalk, and irc.  Job scheduling: at, atrm, atq, crontab, anacron, allow and deny files.
Readings:  Pages 150-152 (job control), 75-76 (communications), The descriptions of the commands and settings (variables) listed above in the Command Referencenohup tutorial, at and crontab tutorials
Homework assignment #7 due 12/3
  12/8   Finish processes.
Job scheduling: at, atrm, atq, crontab, anacron, allow and deny files.
Time Permitting:  Understanding and using the X Window GUI (window managers, virtual desktops, cde, kde, gnome, XDM, startx, xterm, xmessage, -geometry, -display and DISPLAY), remote X sessions via ssh.

Readings:  the descriptions of the commands and settings (variables) listed above in the Command Referenceon-line at and crontab tutorials
Homework assignment #7 due 12/5
  12/8   Exam #3 — Covers from shell (10/29) through processes (12/8)
Project #6 due 12/8

 


 

Class Resources
Resources
www.chiark.greenend.org.uk/~sgtatham/putty Download the PuTTY suite of SSH tools (SSH, scp, sFTP, and others); use the “hostname” of: YborStudent.hccfl.edu     sourceforge.net/projects/winscp/ WinSCP GUI wrapper for the PuTTY scp and sFTP tools
Tampa-St. Pete Linux User's Group (SLUG) Holds monthly meetings, provides help and information, and is open to all.        
PC hardware (svg) A graphic showing the components of a modern personal computer     Software Layers A diagram showing the different layers of software
Ken Thompson (seated) and Dennis Ritchie (standing) in front of a DEC PDP-11 The inventors of Unix in front of a PDP-11  (See also Ritchie's photo from his website and photo of Ken Thompson  See this short tribute to Ritchie, who passed away in 2011.     Photo of Linus Torvalds The inventor of Linux  (See also the initial Linux forum post that started it all.)
  The story of Linux A (short) YouTube video from the Linux Foundation  (See also the short but excellent article History of Linux from Spectrum.IEEE.org)
Unix History Timeline A fairly complete timeline of all Unix versions  (See also this PDF timeline of Linux distros from IBM)     Unix Poster A PDF Unix milestones poster from the Open Group
History of Unix Many Unix history links and resources (including timeline above)  See also this excellent Unix History article at Spectrum.IEEE.org     The real history of Unix As told by one of its inventors, Dennis Ritchie  (See also Unix of Ken Thompson)
Brief history of AT&T anti-trust fight Includes a lot of insight to the origins of Unix, including a video interview with Thompson and Ritchie     distrowatch.com Download free Unix and Linux distributions and Live CD images, and get distro rankings
www.unix.org OpenGroup's Unix site, include the Single Unix Specification     Free Software Foundation The FSF Sponsors the Gnu project and protects open source software with the GPL license and by other means
www.gnu.org Most of the free Unix and Linux software is actually Gnu software     Wooledge.org/BashFAQ FAQ for common Bash questions
sFTP reference Guide for using the command line secure FTP program     tldp.org The Linux documentation project (How-To guides)
SUS Issue 7, 2018 edition The Open Group's and IEEE's POSIX standard     man page “synopsis” syntax The official standard for command descriptions
Oracle Unix document collection (formerly docs.sun.com) Solaris man pages and other documentation     FreeBSD on-line man pages Manual for many versions of Unix and Linux
Email tutorial, study guide A study / review guide on email     Public key encryption A tutorial on encryption, digital signatures, Internet security, etc.
Download Gnu Vim (vim.org) A Windows installer for Gnu Vim        
Play Vim Adventures An adventure-like game designed to teach you Vim     Vim Quick Reference (PDF) Vim documentation (and the most current version) can be found at www.vim.org
Vim Graphical Cheat-sheet (PDF) A nice quick reference graphic (preview), from www.viemu.com     Vim tips and tricks Well-organized (by task) site of Vim how-to information
Filesystem Hierarchy Standard A description of the standard directories on Linux  See also hier(7) for Linux, and filesystem(5) for Solaris     Pathname Resolution Linux man page explaining how a pathname is resolved to an inode number
Filesystem and Pathnames Interactive demo of a filesystem hierarchy showing absolute and relative pathnames        
find command tutorial A brief description of find with examples     Octal Number Chart Shows how to use octal numbers with chmod and umask
Shell Scripting Overview A brief introduction to some basic shell scripting     SSC's Bash shell reference card Posted here by permission of SSC, Inc.
LDP: Bash scripting guide and reference A good reference to all Bash shell scripting features, with examples     Bash shell scripting tutorials As found by a google.com search for Bash shell scripting tutorial
  nohup A brief nohup tutorial
at command syntax Some at samples of entering times and dates, and other info     crontab command syntax Overview of crontab and file syntax

[Valid RSS]

RSS iconXML iconRSS feed for this page

What is RSS?