Course Objectives: Unix
is a powerful set of computing tools
which allow the user to develop customized programs for data reduction
and analysis. The system can be quite daunting as basic proficiency
requires
learning at least 20 - 30 commands and real proficiency can require
much
more. In fact, some people ACTUALLY hate
UNIX.
(note the source of this broadside, BTW). In reality, Unix is one
of those things, like life, which appears endless in its potential
compexity.
Just when you think you have it figured out, something new comes along.
Having scared you with that, the exciting aspect of Unix is that with basic proficiency you can do custom programming that was previously only available to real programming whizzes. With computing power being so inexpensive and increasing at such a rapid rate, you don't even have to develop into a particularly elegant programmer to get REAL work done.
The primary goal of this course is to provide the basic tools
necessary
for each student to develop custom tools suited to their data. Everyone
will learn a collection of basic tools and how to combine them to make
more specialized tools. Each student will then develop expertise in
specific
tools related to the specific sorts of data they use(or hope to use) in
their research
COURSE SCHEDULE
| Class Session |
|
|
|
Class introduction: Description of Emory computers and
Unix system.
Operating systems, Shells and programming. Description of files and
directories,
File permissions
Introduction remote display and Web resources. File
creation Commands: man, pwd
, cd,
chmod,
ls,
passwd,
env,
vi |
|
|
Manuals (man). Special characters, redirection of output
(>) and input
(<), stdin, stdout, pipes (|), mv, cp, rm
, rmdir,
mkdir
Job Control (^z, bg fg), processes (ps) |
|
|
Customizing your environment: .profile, .kshrc, alias
Command line editing using vi ; finding files (find) Scripts, shell variables, positional parameters, pattern recognition (grep family); minimal formatting, pr, nice |
|
|
Shell programing: scripts, filename substitution,
Positional parameters,
user input, test
command;
File system navigation - links (ln)
Combining files and extracting columns: cut , paste , and join |
|
|
Shell programming: Flow control - for loops, if - then - else, case, select (menu creation) |
|
|
Shell Programming: Arrays, more flow control, User interface |
|
|
Combining pattern recognition with shell scripts: grep, fgrep, egrep, sed. Special utilities: file, head, tail, |
|
|
Data extraction: AWK, NAWK, GAWK |
|
|
Data Extraction: Control statements in AWK |
|
|
AWK arrays and transformations |
|
|
The last of AWK and interaction between AWK and other programs |
|
|
Connecting UNIX output to other programs |
|
|
Individual projects: Consultation |