CTS 1106
Introduction to Unix / Linux

Introduction to Unix/Linux course syllabus
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


Summer 2017

List of course policies and procedures
Time & Place: Ref. No. 97283:  Tuesday & Thursday, 7:30–9:10 PM, Dale Mabry Room DTEC–427
Instructor: Name:  Wayne Pollock
E-mail:  Internet:
Office & Phone:  DTEC–404, 253–7213
View my Office Hours.
Skype ID:  wpollock@hccfl.edu     Click for IM:
Homepage URL:  https://wpollock.com/
Text: Hahn, Harley, Harley Hahn's Guide to Unix and Linux, ©2008 Harley Hahn, Pub. by McGraw-Hill.
Original ISBN-13 # 978-0-07-313361-4
Current custom print version ISBN-13 # 978-1-30-889110-1
Current custom electronic (“EText”) version ISBN-13 # 978-1-30-889287-0  How to access (or purchase directly) the eBook

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.
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 in class, along with instructions on how to use this.)  From off-campus, you can 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 will need your own flash disk (for working remotely), writing materials (for taking notes), and three Scantron 882–E or 882–ES forms (for taking tests).  You can use HawkNet (WebAdvisor) to obtain your final grade for the course.  You can use your assigned Hawkmail (Hawkmail365) email address 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 Hawkmail 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.  To sign up, or for more information, visit www.hccfl.edu/hawkalert/.

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 PuTTY installed are located in the computer science department open lab in DTEC–462.  Lab hours are:

Dale Mabry campus open lab hours
Monday – Thursday8:00 AM to 10: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 Policy
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.)

  • Course format is interactive lecture, with most projects done outside of class.
  • No make-up exams will be offered without the prior approval of the instructor.  If a make-up exam is offered, you can take the exam in my office during my regular office hours, or from the Dale Mabry Testing Center.  (Check for their hours of operation, and make sure to give yourself sufficient time to complete an exam.  You will need to make an appointment to schedule a make-up exam.)
  • Exams will be closed book and closed note multiple choice exams.  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 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.
  • The schedule for the final week of the term may cause a conflict between our class schedule and another class's final exam.  It is up to you to determine if you will have a conflict, and to bring it to the attention of your instructor, so that appropriate arrangements can be made.
  • 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 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 Unix 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, project assignments, and homework assignments are announced in class and posted to the website and the RSS feed for this class.
  • A student shall not, without my express authorization, make or receive any recording, including but not limited to audio and video recordings, of any class, co-curricular meeting, organizational meeting, or meeting with me.  Further, 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:  I will respond to your emails within 48 hours or two business days.  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.
  • 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.)

  • The dangers of the flu or another contagious disease require some changes to normal policies.  HCC has implemented the recommendations for institutions of higher learning of the CDC.  (See www.cdc.gov/h1n1flu/guidance/ and www.flu.gov/ for guidance from the CDC.)  You won't need documentation if you miss class due to the flu.  (But if you think you have the flu, you should see a doctor as soon as you can.)  In the unlikely event of a school closure due to the flu, some plan to make up the missed work will be made.

    If you think you have the flu, stay home.  Do not come to HCC until 48 hours after your fever has broken as you are still infectious.  Also, people are infectious to others for a day or so before they have any symptoms.  Flu is spread by touching doorknobs, computer keyboards, railings on stairs, etc., that were touched by someone with the flu.  Avoid shaking hands; use the “fist shake” (touching of fists) if you must use a physical greeting.  The most effective way to avoid catching the flu is to wash your hands frequently, especially after touching something that was touched by others.  Avoid unnecessary touching of eyes, nose and mouth.  While not as good as properly washing hands, hand sanitizers have been installed throughout the campus; use them often.

Projects: Projects will be assigned from the class web page at various times.  You will have sufficient time to complete the projects, at least a week but usually two weeks.  Although there may be some in-class group 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 when turned in.  They are graded all at once, sometime after the project deadline has passed (usually the following weekend).  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 may not be graded!  (Also, keep your project files intact, until you have verified the grade for that project was recorded correctly.)

Homework assignments (also known as take-home quizzes) are assigned from the text at various times.  Some assignments may be based on on-line readings instead of the text.

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 they 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: Assignments should be submitted by email to .  Please use a subject such as “Homework Assignment #1 Submission”, so I can tell which emails are submitted work.  Send only one assignment per email message.  Email your homework assignments by copy-and-paste into your mail program.  (Please do not send as attachments, except when noted in the assignment directions.)  If possible use the “text” and not the “HTML” mode of your email program.

Project submissions must be sent locally to wpollock@YborStudent.hccfl.edu, except if otherwise stated in the assignment directions.

In the event a student submits more than once for the same assignment, I will ignore all but the last one received up to the deadline.  Assignments submitted after the deadline will not count toward your grade except as allowed by the course late policy.  Also, you cannot resubmit an assignment once it has been graded.

The HCC email server automatically accepts and silently discards email with certain types of attachments.  If you must send email to my Internet (non-YborStudent) email account, please avoid using any attachments (especially “zip” files).  To send email with a “.zip” attachment, you must first rename the file extension to “.zap” and then send the renamed file as an attachment.

To avoid having your submitted work rejected as “spam”, you can use Hawkmail365 to send email to professors.  (This doesn't always work either!  If you are having difficulties with this email address, use MyHCC email instead.)

If you have an email problem, you may turn in a printout instead.  Be sure your name is clearly written on the top of any pages turned in.  Please staple multiple pages together (at the upper left).

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  5/15/2017   (First class meeting: Tuesday 5/16/2017)
Add-Drop Ends: Friday   5/19/2017
Last Day to Withdraw:  Wednesday  7/5/2017
Classes End: Monday  8/8/2017 
Grades Available:  Friday  8/11/2017   (from HawkNet)
HCC is closed on: Monday  5/29/2017 (Memorial Day),
Tuesday  7/4/2017 (Independence Day)

Requests For Accommodations

If, to participate in this course, you require an accommodation due to a physical disability or learning impairment, you must contact the Office of Services to Students with Disabilities, Dale Mabry campus: Student Services Building (DSTU) Room 102, voice phone: (813) 259–6035,  FAX: (813) 253–7336.

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
Tue       Thu
Topics, Assigned Readings, and Assignment Due Dates
  5/16   Course introduction, Personal introduction, LAN use.  Assign User IDs for LAN and Unix systems, discuss passwords.  Basic procedures: Telnet, SSH (PuTTY), login/logout.  Open lab procedures and hours, role of lab techs.
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:  Chapter 1
  5/18   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:  Chapters 2, 3
5/23     5/25 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, chfn, chsh, mkdir, ls (with the “-l” and “-a” options), uname, pwd, cd, echo, cat, wc.  Also know the files /etc/passwd, /etc/group, and the PATH environment setting.
Readings:  Chapters 4, 6 (pages 93–98), 7, 8, 10
Homework assignment #1 due 5/23
  Mon 5/29   Memorial Day  —  HCC Closed
5/30       6/1

Set finger data.  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:  Chapters 9, 13 (pages 286–287), On-line email tutorial and study guide
Homework assignment #2 due 5/30
Project #1 due 6/1 (in-class)
Homework assignment #3 due 6/6
  6/8   Exam #1
  6/13   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 pico (or nano) editor.  spell, ispell, and aspell check.
Readings:  Chapter 22 (pages 559–589, 594–598, 603–606, 613–615, 619–623).
  6/15   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:  Chapter 23 (pages 627–630), 24 (pages 659–666, 702–703, 717–720).
Project #2 due 6/15
6/20     6/22 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. 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:  Chapters 23 (pages 631–634, 637–641, 643–652), 24 (pages 666–690, 708–712), 25 (pages 717–729),  16–19 & 21 (pages 373–383, 388–392, 399–410, 421–427, 430, 436–445, 447–455, 459–462, 471, 480, 482–486, 488–491,497–500, 541–544, 551–556),  24 (pages 690–691),  the man pages for tar, gzip
Project #3 due 6/22
6/27     6/29 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 (DOS floppies and flash drives, CDs, etc.):  using mtools and auto-mounters.  Hard links and symbolic links.  Reporting disk space usage.  Searching for files.  (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:  Chapters 23 (pages 642, 653–655), 24 (pages 691–697), 25 (pages 740–760), 15 (pages 360–361),  find command tutorial resource
Homework assignment #4 due 6/29
  7/4   Independence Day  —  HCC Closed
  7/4 Changing file and directory permissions.  Commands to know:  chmod, chown, chgrp, touch, umask.
Readings:  Chapters 6 (pages 118–122), 25 (pages 715–717, 729–748), 21 (pages 544–550),  an octal number chart on-line resource
Homework assignment #4 due 7/4
7/6   Exam #2
7/11     7/13 Changing file and directory permissions.  Commands to know:  chmod, chown, chgrp, touch, umask.
The shell and the environment: bsh, csh, ksh, bash, and other shells.  Environment variables: HOME, TERM, PATH, PS1, TZ, MANPATH, MAILCHECK, LOGNAME (USER), PWD.  Parameter substitution (${var}), env, echo, export, set, set -o, shopt.  Locales, locale command, LC_*, LANG.  quoting, command grouping.
Readings:  Chapters 6 (pages 118–122), 25 (pages 715–717, 729–748), 21 (pages 544–550),  an octal number chart on-line resource
Chapters 11, 12, 13 (pages 277–285, 287–296), 14, 19 (pages 466–471), 15 (pages 355–357)
Project #4 due 7/13
  7/18 More on the environment: 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 14, 15, 24 (pages 697–703), 13 (pages 302–311, 316–318)
Homework assignment #5 due 7/18
  7/20   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. 
Readings:  Pages 299–301, 336–337, on-line scripting tutorial and study guide,
On-line doc for source (a.k.a. dot or “.” shell builtin) command.
  7/25 Writing shell scripts (continued):  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:  Pages 299–301, 336–337, on-line scripting tutorial and study guide,
Homework assignment #6 due 7/25
7/27   Processes: focus and foreground, background (“&”), fork and exec, PID, PPIDps (ATT and BSD options: -ef, alx), top, w.  (Threads, process groups, and sessions not covered by exams.)  Special processes: init, ...  Signals: kill [-l], stty -a.  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.
Readings:  Chapter 26 (pages 767–803, 806–814), nohup tutorial, man pages for communications commands
Project #5 due 7/27
  8/1     8/3   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:  Chapter 5, 6 (pages 101–118),  on-line at and crontab references
Homework assignment #7 due 8/1
  8/8   Exam #3
Project #6 due 8/8



Class 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.  You can also visit the SLUG home.        
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 and Dennis Ritchie 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     tldp.org The Linux documentation project (How-To guides)
www.gnu.org Most of the free Unix and Linux software is actually Gnu software     Free Software Foundation The FSF Sponsors the Gnu project and protects open source software with the GPL license and by other means
sFTP reference Guide for using the command line secure FTP program     man page “synopsis” syntax The official standard for command descriptions
Download Gnu Vim (vim.org) A Windows installer for Gnu Vim     SUS Issue 7, 2016 edition The Open Group's and IEEE's POSIX standard
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        
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.
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?