COP 2344
Shell Scripting

Shell Scripting 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 Project 7 requirements.
View Project 8 requirements.
View Project 9 requirements.
View Project 10 requirements.

              Other interesting links:

Visit linux.die.net/man/ for searchable Linux man pages in HTML format,
docs.sum.com for searchable Solaris man pages and other Solaris documentation,
Visit the Tampa-St. Pete Linux User's Group (SLUG).  This group holds monthly meetings.  See also the Pinellas Unix People (PUP) group. 
Most Unix and Linux software is actually GNU software (www.gnu.org), a project of the Free Software Foundation.
Download free Unix and Linux distributions from distrowatch.com.
Download The PuTTY suite of Internet tools: SSH, scp, sFTP, and others, from www.chiark.greenend.org.uk/~sgtatham/putty.
Download the WinSCP GUI wrapper for the PuTTY scp and sFTP tools from sourceforge.net/projects/winscp/.
Visit www.unix.org for the OpenGroup's Unix site, including the Single Unix Specification.
View Solaris certification FAQ and Oracle's Solaris Certification information, including Sun Certified System Administrator (SCSA) exam objectives part 1 and part2.
View Linux LPI certification and View LPI-1 exam objectives.

COP 2344 Syllabus

Spring 2013

Course policies
Time & Place: Ref No. 37267:  Monday & Wednesday, 7:00–8:15 PM, Dale Mabry Room DTEC–461
Instructor: Name:  Wayne Pollock
E-mail:  Internet:
Office & Phone:  DTEC–404, 253–7213
DM Office Hours:  Monday–Thursday, 3:55–5:25 & 8:30–9:00;
On-line Office Hours:  Tuesday–Friday, 12:00 PM (noon)–1:00 PMor by appointment.
Contact Information
Instant Messenger ID (Yahoo Messenger):  waynepollocklive
Homepage URL:  http://www.hccfl.edu/pollock/
          Yahoo Messenger on-line status - click to chat or leave a message
Text: Stephen G. Kochan, Patrick Wood, Unix Shell Programming, ©2003 Sams Pub.  ISBN: 0-672-32490-3.
Optional:  Hahn, Harley, Harley Hahn's Guide to Unix and Linux, ©2009 Harley Hahn, Pub. by McGraw-Hill.  ISBN # 978-0-07-313361-4.

HCC bookstore on-line

Description: (This course is 3 credit hours long.)  This course is intended for students who have mastered the basic Linux/Unix operating environment and who would like to read and understand the various administrative scripts, and to write scripts to automate day-to-day tasks.  This course is designed to teach students the skills they need to effectively read, write and debug shell scripts.  This course explores in detail the Bash shell scripting language.  Major topics covered include reading, writing, modifying, and debugging shell scripts, the shell environment, regular expressions, text filtering with grep, sed, and the awk commands, conditional control statements and loops, interactive scripts, the use of other shell features such as variables, parameters, argument lists, shell functions, shell traps.

The basic Unix/Linux environment is taught in the course CTS 1106 (Introduction to Unix / Linux).

Objectives: The student will demonstrate a knowledge of the following topics through objective tests, hands-on activities, and/or projects:
  1. Working with files:  Manipulate files including file permissions and umask, parsing files, working with temporary files.
  2. Working with directories:  Create directories, search for files, understand path names, navigate the file system.
  3. Programming constructs:  Employ the use of flow control using decisions and looping, create, modify and debug shell scripts both batch as well as interactive, use functions, command line argument processing, understand traps and signals, use read, streams, pipes, I/O redirection, and here documents, and understand and correctly use quoting, command grouping, wildcards, brace expansion, tilde substitution, command grouping and command substitution.
  4. Working with data:  parsing data, process email, manipulate strings, perform arithmetic operations, use filters such as grep, sed, awk, and perl python.
  5. Interacting with the shell:  Run background programs, customize and use the shell environment including history, prompting and shell options, use shell and the environment, aliases, source commands, configuration files, variables and export.
  6. Regular expression use and shell patterns.
  7. Using and writing man pages.
  8. Source code control using RCS.
Prerequisites: CTS 1106 (Introduction to Unix / Linux), or permission of the instructor.  Students enrolled in a degree or college credit certificate program 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).

You will need your own flash disk, writing materials, and three Scantron 882–E or 882–ES forms.  You can use HawkNet (WebAdvisor) or Florida Virtual Campus (Formerly FACTS.org) to obtain your final grade for the course.  You can use your assigned Hawkmail (Campus Cruiser) email address if you wish to discuss your grades via email.  (Note, it is 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 now use (or will in the future) 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).

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/alerts/.

HCC DM Open Lab
Computers 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 4:30 PM
Grading:
Grading Policy
Projects (about 8): 50%
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
(If you stop attending the course before it is 60% complete, you will be awarded an “FX” grade.)
(Or you can elect to “audit” the class during the add/drop period.)

Policies:
  • No makeup exams will be offered without the prior approval of the instructor.
  • 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.
  • 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 Campus Cruiser provides email for our course.)
  • 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 can't learn a skill such as shell scripting only by attending class and reading books.  You must practice, 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, cocurricular 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 group projects, where each member of a small group works 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.
  • 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 assignment 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.
  • 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 (Campus Cruiser) 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 is implementing 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 in-class group exercises, you must work individually on projects, typically outside of regular class hours, except when a project is designated as a group project.  (Currently, all projects are designated group projects.)  You may work together in small (two to four people) groups on group projects, provided the names of all who worked together are listed.  Each student must still submit their own copy of the assignment.

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 make to grade projects within a week of the due date, or as soon thereafter as possible.  (See also submitting assignments below.)

Submitting Assignments: Projects should be submitted by email to .  Please use a subject such as “Shell Scripting Project #1 Submission” so I can tell which emails are submitted work.  Send only one assignment per email message.  Email your projects by copy-and-paste into your mail program.  Please do not use email attachments, except when noted in the assignment directions.  If possible, use the “text” and not the “HTML” mode of your email program.

Do not send any email to wpollock@YborStudent.hccfl.edu.

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.

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, but 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 CampusCruiser to send email to professors.  (This doesn't always work either!)

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  1/7/2013   (First class meeting: Monday 1/7/2013)
Add-Drop Ends: Friday   1/11/2013
Last Day to Withdraw:  Wednesday  3/20/2013
Classes End: Monday  5/6/2013  (Last regularly scheduled day of class: Monday 5/6/2013)
Grades Available:  Wednesday  5/8/2013 (from Florida Virtual Campus (Formerly FACTS.org) or HawkNet)
HCC is closed on: Monday  1/21/2013 (Martin Luther King Jr. Day),
Monday  2/18/2013 (Presidents' Day),
Monday–Friday  3/11/2013–3/15/2013 (Mid-Term Break),
Friday  3/29/2013 (Spring Day),
Thursday  4/11/2013 (Faculty In-Service Day)

Request For Accommodation

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 204, voice phone: (813) 259–6035,  TTD: (813) 253–7035,  FAX: (813) 253–7336.  Brandon campus: voice phone: (813) 253–7914.

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 for COP 2344

Day by day course schedule
Dates Mon       Wed Topics and Assigned Readings
  1/7 Course introduction, assign User ID, discuss passwords.  What is shell scripting?  Why is it important to know?  POSIX and portability. 
File, directory, and pathname concept review.  Review basic commands:  cd, pwd, pathchk, mkdir, rmdir, passwd, cp, mv, rm, ln, ls -laRd, who, echo, cat, more and less, tac and rev.  Useful non-standard utilities include:  pwgen and apg, script and screen, and readlink.  Using man, info, and other resources.
Readings:  Chapters 1, 2, Appendix B, man pages for listed commands
1/9  
1/14
The vi and vim (and other) text editors.
Readings:  online vi/vim resources, (Chapter 22 in Hahn)
1/16   Shell features (part 1): globbing (wildcards), locales (I18N), I/O redirection, pipelines.
Project 1 due: 1/14
Readings:  Chapters 2 (pages 24–38), 3, 295-297, 352-360, on-line locale resources, (465-471 in Hahn book)
  1/21 Martin Luther King Jr. Day  —  HCC Closed
1/23   Shell features (part 2): Using here documents.  Understanding processes, process groups (jobs), and sessions.
Project 1 due: 1/14
Readings:  Chapters 2 (pages 24–38), 3, 295-297, 352-360, on-line locale resources, (465-471 in Hahn book)
1/28     1/30
  2/4
Regular Expressions (BREs, EREs, PREs, and POSIX).  Some common filter commands:  sed, cut, paste, tr, tail (also tailf and head), wc, grep, sort, uniq, od and xxd, strings, diff (and cmp, vimdiff sdiff, comm, and patch), yes, nl, and XML utilities (xmlgrep, xmldiff, and others).
Project 2 due: 2/4
Readings:  Chapter 4, on-line regular expression resources
2/6   Exam #1
2/11   2/13 Python basics.  Comparison with Perl.
Readings:  on-line Python resources and Perl resources,
  2/18 Presidents' Day  —  HCC Closed
2/20  
2/25     2/27
3/4     3/6
Using awk to simplify data processing and report generation. Additional useful commands:  find, file, dd, wget, curl, rsync, tee, xargs, expect, and sendmail/mail/mailx.  Selecting the right tool for the job.
Project 3 (filters) due: 2/20
Readings:  on-line awk resources, find command resources, xargs, expect (and Tcl/Tk) command resources
  3/11 – 3/17 Mid-Term Break  —  HCC Closed
3/18    3/20

  3/25
Command line processing steps (input, tokenizing, parsing, various expansions, command substitution, arithmetic expansion, field splitting (and IFS), quote removal, I/O redirections).  Tilde substitution, quoting, eval, aliases.
Project 4 (awk) due: 3/20
Readings:  Chapters 6, 11, pages 103-110, 280-283, 326-328, 330-339, 352-359, on-line permissions and octal number reference, on-line command line processing resources
3/27   Exam #2
  Fri 3/29 Spring Day  —  HCC Closed
4/1 Interactive (login) shell use: login scripts, the environment, history, auto-completion, job control, using nohup, command grouping, sub-shells, restricted shell.  Using shell variables, shell built-in commands.
Readings:  Chapters 6, 11, pages 103-110, 280-283, 326-328, 330-339, 352-359, on-line permissions and octal number reference, on-line command line processing resources
4/3 Shell scripting concepts and features (mostly review):  environment variables, permissions, PATH, comments, she-bang line, sourcing scripts.  Command substitution.  shell arithmetic, expr, and bc.  Dealing with octal and hex numbers: numbers with leading zeros.
Project 5 (parse access log) due: 4/3
Readings:  Pages 99-103, 110-111, 340-346, on-line permissions and octal number reference, on-line command line processing resources
  4/8 Positional and other special parameters, parameter substitution.  shift, using set.  Exit status and $?.
Readings:  Chapters 7, 12, pages 145-149, 274-280
4/10   Using if statements and the test command, the && and || operators.  The exit command.  Using case statements (and bash extended pattern-matching).
Readings:  Chapter 8
  Thu 4/11   (Thursday)   In-Service Day  —  HCC Closed
4/15    4/17 Using loops: while, until, and for loops.  Using break and continue.  Creating and using shell functions.  Parsing the command line with getopts.  Using seq (Linux only).
Project 6 (Perl) due: 4/17
Readings:  Chapter 9
4/22   4/24 Using read for interactive shell scripts.  echo and printf.  Using named pipes.  Temporary files.
Readings:  Chapter 10, on-line resources for temporary files, on-line resources for named pipes
  4/29 Using signals: kill and trap commands.  The wait command.
Project 7 (find) due: 4/24
Readings:  Pages 301-305, 339-340
5/1   Optional (time and interest permitting): Creating TUI menu-driven scripts (mention select loops/menus).  Shell archive files.  Advanced I/O redirection techniques.  Working with shell arrays, lists.  Customizing output with tput.  Creating progress bars.  Using stty to control input.  Using readline.  Using the Linux dialog command to add a GUI to scripts.  Using scripts for Website support, management, and web page generation (MRTG scripts).  Using MySQL, PostgreSQL databases with shell scripts.
Readings:  on-line resources TBD
  5/6 Exam #3
Project 8 (getopts) due: 5/6

 


 

Class Resources
Resources
PuTTY home Recommended Windows SSH client     Copy and Paste Help How to use PuTTY's copy and Paste
Csh Programming Considered Harmful A famous article from Tom Christiansen posted in 1996     Soft Skills Information about Soft Skills, Professional affiliations and certifications, and job hunting and interviewing tips.
www.unix.org The OpenGroup's Unix site, include the Single Unix Specification     comp.unix.shell newsgroup An active discussion netnews group; you can post questions here and get anwsers
Linux Standard Base (LSB) Standard tools, DLLs, etc., common to all Linux distros;  Current spec maintained by The Linux Foundation     Single Unix Specification The current Unix reference, including for the shell and utilities
        Unix Standard search plugin Download this XML file and put it in the Firefox “searchplugins” directory
docs.sun.com Solaris man pages, administrator guides, and more     linux.die.net Searchable Linux man pages in HTML format
Various system shells Sven Mascheck's page describing the standard shells found on many systems     The Unix Heritage Society Preserves historical versions of Unix (including source code) and Unix history
Vi lovers home Tutorials, FAQs, and references for vi     vim home Home page for VIM (Vi, IMproved)
Vim documentation project Tutorials, FAQs, and references for vim     vim quick reference (PDF) A two-page reference to vim
Vim Graphical Cheat-sheet (PDF) A nice quick reference graphic (Preview), from www.viemu.com     Why use vi An article explaining why vi/vim is a great editor
Play Vim Adventures An adventure-like game designed to teach you vim        
Locales Brief overview of locales and text encoding        
Regular Expressions Shows Regular Expression (“regex”) syntax     RegularExpression.jar Download Regular Expression Lab (a Java program);  (See also Java Regular Expression syntax summary)
www.regular-expressions.info On-line tutorial and reference for regular expressions     regexlib.com On-line cookbook (library) of standard regular expressions
regular expression cartoon The importance of learning regular expressions (Source: xkcd.com)        
Python.org Python language home     Python PEP #1 Python Enhancement Proposals
Python lecture notes Some brief lecture notes about the Python language     ACMPython Learning Path Python tutorial (assumes you know basic concepts)
Python 2 & 3 documentation Python documentation, including library and language references, tutorials, and HOWTOs     Python community forums Python's help forums
Python 3 official tutorial See also the Python 2 tutorial     LearnPython.org Interactive Python tutorial
TutorialsPoint.com Python tutorial Another pretty good Python tutorial     Think Python: How to Think Like a Computer Scientist The Python textbook (free online) used for the Python Tutorial for MIT's Open Courseware Intro to Electrical Engineering and Computer Science I
Python Qt PyQt tutorials    
A perl tutorial A short tutorial, with examples (work in progress)     CPAN Comprehensive Perl Archive Network
learn.perl.org Perl tutorials from Perl.org     Beginning Perl An on-line book for learning Perl
PerlMonks.org tutorials Another site with Perl resources     Perl.com A portal for all things Perl
PerlMeme.org tutorials Good site with Perl resources     Perl's here documents A description of Perl here documents
Scripting language comparison chart A “cheat-sheet” comparing Perl, PHP, Python, and Ruby        
Gnu AWK User Guide A tutorial and reference manual for Gnu AWK     AWK FAQ AWK Frequently Asked Questions
AWK Overview A copy of my lecture notes for AWK     POSIX AWK Reference and description The AWK man page from The Open Group POSIX document SUSv4
A find tutorial A short tutorial, with examples     find command tip Shows how to use find to locate files modified by an administration tool
An xargs tutorial From www.unixreview.com     Shell Scripting Introduction Shows the basics of shell scripting
An expect tutorial From the O'Reilly book Exploring Expect     Tcl tutorial Shows the basics of Tcl scripting  (See also Tk tutorial)
Command Line Processing The steps the shell performs when parsing input     Variables, Control Structures, and Funtions A mini-tutorial for non-programmers
POSIX (and SUS) Utility Guidelines Standard utility conventions (such as starting options with a dash)     Using getopts and getopt A brief tutorial
Octal Number Chart Shows how to use octal numbers with chmod and umask     Filesystem Hierarchy Standard (FHS) A description of the standard directories on Linux (for Unix systems, see also man filesystem)
Using temporary files, trap How to create, use, and clean up temporary files using trap     Using named pipes How to use named pipes (a.k.a. FIFOs)
flock-demo A script showing advisory file locking with flock     timestamp.sh A POSIX script to display Unix Time (See also timestamp.c)
crontab reference Shows crontab file syntax     at command syntax Some at samples of entering times and dates, and other info
StartupScript.txt Sample startup shell scripts (/etc/init.d/foo) for a foo server     System V init files From /usr/share/doc/initscripts-7.42.2 on Fedora
RCS Demo A sample session using RCS with a shell script     Here documents An overview of the Unix/Linux shell's here document
Shell Scripts (and Other Demos)
LDP: Bash scripting guide and reference) Shows how to write Bash shell scripts.  complete Bash man page     SSC's Bash shell reference card (Posted here by permission of SSC, Inc.)
fancyio Shows how to write interactive shell scripts     fortune A fortune cookie script (plus some sample fortunes)
nusers Shows a simple shell script     nusers.1 Sample man page for nusers, using troff/man macros
getopts Demo A demo of the POSIX getopts utility     getopt Demo A demo of the Gnu getopt utility
backup-etc.sh A simple shell script to backup /etc directory     httpd.sh Apache script for use in rc.d/init.d
.bashrc Some useful bash shell aliases and functions     .bash_profile A simple Bash login script
.procmailrc A sample .procmailrc that auto-replies and filters spam     add-users A complex script used to add users in batches
expect-demo Using expect to script changing a user's password.        
todo A simple “todo list” shell script     didit Simple shell script, used with “todo” script
didit2 Shell script, used with “todo” script     didit3 Fancy shell script, used with “todo” script
pick interactive selection script     watch Shows how to write shell and awk scripts
suidDemo.tgz Shows how suid can be used to control access to files     Sample .vimrc A basic ~/.vimrc file
exec Demo A demo using exec to emulate BASIC's READ and DATA statements     find-IP A script to locate files in /etc containing the host's IP address
sttydemo.sh A script using stty for fancy I/O     find-dups.sh A highly portable script that shows many advanced techniques, that finds duplicate files by comparing MD5 checksums
filter.py Model Python script to act as a standard *nix filter     hellotk.pl A Perl/Tk GUI script (Hello, World)
Perl CGI (Database) Scripts
filter.pl Model Perl script to act as a standard *nix filter     hellotk.pl A Perl/Tk GUI script (Hello, World)
HccDump The SQL statements needed to create the HCC MySQL database     graphics.tgz The gzipped tar file containing the sample gif files for the hcc.com postcard system;  (Unpack in the directory: DocumentRoot/graphics)
send-postcard.pl Perl script to send an e-card; uses CGI and DBI (DB access)     show-postcard.pl Perl script to retrieve an e-card; uses CGI and DBI

[Valid RSS]

RSS iconXML iconRSS feed for this page

What is RSS?