Important concepts and skills from the prerequisite
classes that I expect you to have already studied. You do not
need to be an expert at every command or concept. You do need to
recognize most of them and the basics of how they are used.
- Basic Unix (CS 160A):
- structure of unix -- kernel, shell, commands, utilities, two
major
streams
of development
- parts of a unix account -- username, password, uid, gid,
real
name, home directory, startup shell
- unix file structure -- absolute and relative pathnames
- file and directory permissions and how to set them with "chmod"
- basic Unix commands and utilities (e.g., grep, head,
tail, cut,
pwd,
ls, sort, find, diff, etc.)
- basic regular expressions (asterisk, period, caret, dollar
sign, square
brackets, question mark)
- how to use pipes and redirect std input, output, and errors
- text editors: some knowledge of "vi".
- Unix Shell Scripting (CS 160B):
- quotes: the difference between single, double, and
backquote
- local and environment variables -- how to set, use, unset, and
export
- shell scripts - conditionals (if, case)
- shell scripts - loops (for, while)
- shell scripts - how to read from and write to a file
- shell scripts - simple arithmetic
- shell scripts - how to work with script options and arguments
- shell scripts - functions
- shell scripts - simple script debugging (set -x, set +x)
- shell scripts - documentation - comments and indentation
- processes (how they work), PID
- ps - and the difference between "ps", "ps
-e", and "ps -ef"
- text editors: comfortable enough to use "vi" or "emacs"
some of the time instead of only "pico".
- Unix System Administration (CS 260A) (can be taken
concurrently, but these
are terms we will use):
- fields of /etc/passwd, /etc/group
- UID, GID
- PID, PPID
- superuser, root
- setuid, sudo
- process control and signals (ps, kill, ^c, ...)
- functions in scripts
- steps in adding a new user
- /etc/profile, and the primary startup files for bash and ksh
accounts
- how to shutdown or reboot a system gracefully, what is single
user mode
- boot process, including scripts, directories, filenames, init,
/etc/inittab,
how they work together
- the difference between "tar" and "cpio" and how to use at least
one of
them for backups
- difference between a full and incremental backup in Unix
- cron and crontabs
- where log files are commonly kept, why keep them, what is
syslogd
- disk partitions, special or device files, filesystem, inodes
- mount, mknod, fsck
- umask, and maybe ulimit
- compression utilities like compress, gzip, and zip.
- what is a daemon, system servers like: init, crond,
syslogd
- some common duties and problems of a system administrator
- how to use all of the above to perform common system tasks and
solve
problems
- Basic Networking (CNIT 106 or CNIT 201E)
- OSI & TCP/IP networking models, how many layers, names,
basic functions
- one or two protocols
at each TCP/IP layer
- a hardware device at each of the lower three OSI layers
- why devices need addresses, and what is the difference between
a
physical
and logical address
- addressing: MAC and IP addresses: how many bits in
each,
which
layer
- dotted decimal: how to recognize default class A, B, or C
ip addresses, what
is
subnetting,
why subnet a LAN?
- LAN basics: kinds of topologies, what is ethernet,
cabling options (like cat5e, fiber, wireless)
- WAN basics: kinds of topologies, general technologies
(like
circuit-switched,
dedicated, packet switched), and specific (like dialup, DSL, T1, OC-3,
OC-12, Frame Relay, ATM)
- network diagnostic tools, like: checking if a remote host
is up with "ping", or checking if an interface is configured with
"ipconfig" (windows).
- client and server model for network applications, and an
example, like: how an HTTP request works.