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.) | ||||||||
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:
| ||||||||
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 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
“ 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.
(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
| ||||||||
Grading: |
Grading scale:
A=90-100, B=80-89, C=70-79, D=65-69,
F=0-64 | ||||||||
Policies: |
| ||||||||
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) 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
| ||||||||
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. |
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.
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: | “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 |
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 |
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/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 |
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 Reference, find 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 Reference, octal 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 |
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], ^Z .
nohup .
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 Reference, nohup tutorial, at and crontab tutorials
Homework assignment #7 due 12/3 |
12/8 |
Exam #3
— Covers from shell (10/29) through processes (12/8)
Project #6 due 12/8 |
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 |