Norman Matloff's Unix and Linux Tutorial Center (original) (raw)
Professor Norm Matloff
Dept. of Computer Science
University of California at Davis
Davis, CA 95616
WEB PAGE:
http://heather.cs.ucdavis.edu/matloff.html
LINKS TO MY ONLINE COURSE MATERIALS:
UNIX/LINUX TUTORIAL MATERIALS:
First, click here if you have no Unix background at all. This introduces the following topics: shell use; basic file and directory commands (ls, rm, cp, mv, pwd, cd); redirection (< and >) and pipes; "script" command; man pages. You should also read Dr. Matloff's "Extremely Quick and Simple Introduction to the Vi Text Editor," or his introduction to the emacs editor. After reading these, the beginning user should have enough to get started.
(Though definitely not necessary for understanding the tutorials here, it is highly recommended that you install Linux on your PC. This is a complete Unix system, free of charge. Click here for Norman Matloff's guide to the installation and use of Linux.)
Later, after using Unix for a while, the user may wish to go on to the following introductory materials by Norm Matloff:
- The Unix file system. Ordinary files; directory files; device files; file links; permissions; details on ls command; chmod; disk space measures (du, df); diff command; "wild cards."
- Tar files (.tar; also .gz, .tgz and .bz2)
Intermediate Unix users may be interested in Norman Matloff's advanced tutorials:
- Introduction to shell usage. Starts by introducing shell variables, such as $path, the "set" and "alias" commands, et cetera.
- Unix process management.
- Advanced C shell/tcsh programming.
- Emacs text editor.
- Vim text editor (popular extension of vi; don't use pico, a "toy" editor intended for people who are afraid of computers).
- Elvis text editor (popular extension of vi; don't use pico, a "toy" editor intended for people who are afraid of computers).
- Mutt e-mail utility (don't use pine!).
Topics in elementary C programming:
- Introduction to C.
- Introduction to functions.
- Programming style.
- Command-line arguments (example with tutorial comments).
- Bits and bytes
- Introduction to pointers: I.
- Introduction to pointers: II.
- Norm Matloff's tutorial on the art of debugging (uses DDD), and and use of the gdb debugging tool.
- Use of argc, argv command-line information.
- Introduction to recursion: I.
- Introduction to recursion: II.
- Introduction to recursion: III.
- Bitwise operations.
- C library and qsort().
Topics in advanced C programming:
- Makefiles and libraries. Includes material on the Unix make, ar and ranlib commands; .a files; the -I and -L compiler command-line options to bcc; the ld linker; static vs. dynamic libraries; LD_LIBRARY_PATH, libtool; etc.
- File-access programming. This describes upper-level functions, e.g. fopen(). A tutorial on the lower-level functions such as read(), write() and open() is contained in the first tutorial on pointers; see also Write.c.
- Advanced file-access programming. This consists of an example program which uses the system calls opendir(), readdir() and stat(). The first two can be used to determine which files are in a given directory, and the third can be used to determine which of those files are directories.
- Set-user ID.
- Signals.
- Curses terminal programmming.
Other software Web sites by Norm Matloff:
- Professor Matloff's Unix/C tutorials.
- His Java tutorial.
- His Perl tutorial.
- Dr. Matloff'sbeginner's guide to installing and using Linux.
- His "Extremely Quick and Simple Introduction to the Vi Text editor," and his introductions to the elvis and vim extensions to vi. The latter are much better than ordinary vi (and far, far better than pico). X11 mouse capability; subwindows (even on nongraphics terminals); infinite undo; paragraph formatting and so on.
- Norman Matloff's guide to fast debugging! See also his text-editing tips designed especially for programmers.
- Professor Matloff's LaTeX tutorial and resource page, and his tutorial on LyX, a GUI interface to LaTeX.
- Dr. Matloff's introduction to the mutt e-mail utility. Don't use pine! It was designed for people who are afraid of computers, not for computer experts.
- Norm Matloff's Chinese-language software page.