The final exam will be comprehensive, covering material throughout the whole term. However, there will be a slight emphasis on material covered since the mid-term.

All of the concepts covered in class are examinable. This guide just highlights some of the details which should be committed to memory.

Commands

You must know how to use the following commands. The function of options in brackets should be memorized:

Executables

cat
chmod (symbolic and octal notation)
chown
cp (-r, -i) 
file
grep (-c, -E)
head (-number)
id
less
ln (-s)
ls (-l, -d, -a)
man
mkdir (-p)
mv (-i)
ps (aux)
rm (-r, -i, -f)
sort
su
sudo
tail (-number, -f)
tee
top
touch
umask (octal notation)
uniq (-d)
wc (-l)
which

Shell Builtins

alias
cd
echo (-e)
exit
jobs
help
history
printf
pwd
test
type
read
unalias

Shell Variables

CLASSPATH
HOME
PATH
TERM
USER

Git

There will not be any detailed technical questions on git, but concepts are fair game.

Escape Sequences

\t
\n
\r
\b

Redirection

You must be able to explain and use the following operators:

>
<
>>
2>
&>
2>&1
|

Expansion

You must know the syntax for the following types of expansion:

Pathname expansion (globbing)
Tilde expansion
Arithmetic expansion
Brace Expansion
Parameter expansion
Command substitution

Permissions

You must know both symbolic and octal notation for chmod.

Shell Control and Test Statements

break
continue
if (then, elif, else, fi)
for (in, do, done)
function
until (do, done)
while (do, done)
[ ]
[[ ]]
(( ))

Regular Expressions

^ $ . [] {} - ? * + () | \
BASH_REMATCH with grouping ()

C Compiler Commands

gcc -o
gcc -c

Java / Javac / Jar

javac (-d, -cp)
java (-cp, -jar)
jar (cfm)

make

You should understand the basic structure of a Makefile which consists of variable declarations (and variable usage), rules (with targets, dependencies, and commands), as well as auto-conversions. You should also understand the special variables $@, $^, and $<.

ant

You should understand the basic structure of ant build files which consist of the project element, property elements (and property usage), target elements, and task elements. Detailed knowledge of the syntax will not be required.

ivy

There will not be any detailed technical questions on ivy, but you should know the tool's general purpose and how it incorporates with ant.