CSCI 157: UNIX Power Utilities and Shell Programming
Laboratory Assignment 15
Since there are so many people in this class that are
already very knowledgeable about Unix and Shell Programming we might as
well take advantage of it.
- Lab 15 is worth 20 points and is to be completed throughout the semester.
- Each student will present 4 things to everyone in lab.
- Each presentation is worth 5 points
- Each presentation will be around 5 minutes long.
- Each presentation should be done on a different day so that we get them spread out some
- We can make exceptions to this previous rule
- If someone wants to explain something really in-depth we
can count it as more than one presentation (maybe), it has to really
stand out though
- Depending on the presentation you can do it at the board or from your desk in lab, whatever...
- If it is a script or something you should make it world readable in your HOME directory or put it on the web, or both
- Presentations are to be informal
- The content of each presentation should be something interesting related to this course
- If you are newer to Unix just do a little research to find something you find interesting
- You can not cover the same thing or exact same material as what was covered by someone else.
- As long as you go for at least 5 minutes and are prepared you will get FULL credit
- Everyone in class will pay attention to your presentation or
they will recieve a zero on this lab regardless if they have done
presentations or not.
- Hopefully most presentations will be hands-on 'ish so we can try out what you show us.
- Examples include "introductions" or "cool" tricks for any of the following:
- sed
- with sed
you can find one of those pages with handy one-liners, figure out the
syntax and then show us the one liners and explain what each part does.
- awk
- perl
- Even just explaining some part of perl like
- regular expressions
- or how the implicit variable works
- or all the different ways you can compare and manipulate strings
- or how to write a really simple cgi
- or how to make an http request
- or file I/O
- or even console I/O
- regular expressions
- Features of the zsh that aren't found in other shells
- Useful Features in ksh, csh, tcsh, etc that are different in other shells
- csh is a great example
- I image most everyone in lab can not tell you how a for loop works in csh
- In next to no time at all you can be the csh control flow expert in lab [that was pep-talk]
- Why bash sucks and we should all really be using tcsh or ksh or ...?
- Using wget, basic usage, crawling a website with it, and other features
- Show the class a script you wrote outside of class to solve some problem
- vim
- customizations that we can't live without
- using multiple buffers for cutting and pasting
- features that help with C programming
- How to create vim or emacs macros, or functions or whatever and give examples of a useful one or two
- Give us the scoop on one of those "other" editors like joe, or nano
- Introduction to a scripting language such as tcl, expect, or python
- Examples
- Data types
- Control Structures
- SSH features, for example:
- demo/lead us through in class how we can all use a port forwarded through ssh to another machine as a proxy for our web browser
- how to use key authentication
- explain all of the different algorithm options, why use blowfish or 3DES or whatever
- find all of the SSH clients for windows you can (like
PuTTY and whatever other ones there are) and give us a review on what
features they have or which is the best, etc.
- Explain some random utility that nobody has heard of like jot and the cool things you can do with it
- Explain some common command that everyone has heard of and used like find but explain some of the more advanced features that few people know
- Write some small script utility and then explain why we all will want to use your utility and what we can use if for
- Resources
- Linux Gazette
- Any Linux magazine usually has some random interesting thing in it.
- Google
- Unix Power Tools (O'Reilly Publications) has fun stuff in it
- etc