\initial {#} \entry {\samp {#!program} sequence}{51, 65} \initial {$} \entry {$ in regular expressions}{24} \entry {\samp {$<} operator}{57} \initial {'} \entry {\key {'} and \key {"}}{47} \initial {(} \entry {() and subshells}{52} \entry {() operators to make array in csh}{43} \initial {*} \entry {* in regular expressions}{24} \initial {-} \entry {\samp {-I} option to \code {cc}}{118} \entry {\samp {-L} option to \code {cc}}{117} \initial {.} \entry {. directory}{11, 12} \entry {. in regular expressions}{24} \entry {.. directory}{11, 12} \entry {\file {.cshrc} file}{41} \entry {\file {.login} file}{41} \entry {\file {.profile} set up in sh}{63} \entry {.xsession file}{32} \initial {/} \entry {\file {/etc/group}}{37} \initial {?} \entry {? in regular expressions}{24} \initial {[} \entry {\samp {[]} for test in sh}{67} \entry {[] in regular expressions}{24} \initial {`} \entry {\key {`} symbol and embedded shells}{47} \entry {\samp {`..`} in perl}{76} \initial {{\tt\char 124}} \entry {\samp {|} symbol}{43, 45} \initial {{\tt\char 43}} \entry {+ in regular expressions}{24} \initial {{\tt\hat}} \entry {^ in regular expressions}{24} \initial {{\tt\less}} \entry {\samp {<>} filehandle in perl}{84} \initial {1} \entry {\samp {1>} in sh}{64} \initial {2} \entry {\samp {2>} in sh}{64} \entry {\samp {2>&1} in sh}{64} \initial {A} \entry {\file {a.out}}{117} \entry {\code {accept()}}{155} \entry {Access bits}{37} \entry {Access bits, octal form}{38} \entry {Access bits, text form}{38} \entry {Access control}{27} \entry {Access control lists}{27} \entry {Access rights}{37} \entry {Access to files}{37} \entry {ACLs}{27} \entry {ANSI C}{116} \entry {Appending to a file with \samp {>>}}{44} \entry {apropos}{8} \entry {\samp {ar} archiver}{29} \entry {\samp {archie} program}{30} \entry {Argument vector in csh}{51} \entry {Argument vector in perl}{76, 78} \entry {Arguments, command line}{51} \entry {\samp {argv}}{51} \entry {Arithemtic in sh}{65} \entry {Arithemtic operations in csh}{59} \entry {Arrays (associated) in perl}{79} \entry {Arrays (normal) in perl}{78} \entry {Arrays and \samp {split}}{79} \entry {Arrays in csh}{43} \entry {Arrays in perl}{76} \entry {Associated arrays, iteration}{83} \entry {\samp {at} command}{74} \entry {AT&T}{7} \entry {\samp {awk}}{27} \entry {\samp {awk} pattern extractor}{75} \initial {B} \entry {\samp {Background picture}}{30} \entry {Background process}{47, 48} \entry {Backwards quotes}{47} \entry {bash}{10, 25} \entry {\samp {batch} command}{74} \entry {Berkeley Internet Name Domain (BIND)}{160} \entry {\samp {bg} command}{50} \entry {Big endian}{151} \entry {BIND}{160} \entry {\code {bind()}}{155} \entry {Bourne shell}{10, 63} \entry {Break key}{51} \entry {\samp {breaksw}}{57} \entry {Browsing through a file}{27} \entry {BSD}{7} \entry {Build software script}{55} \entry {Built in commands}{9} \entry {Byte order}{151} \initial {C} \entry {C}{6} \entry {C library calls and shell commands}{10} \entry {C programming}{115} \entry {C shell}{10} \entry {C shell setup files}{41} \entry {C, role in unix}{10} \entry {C++ suffix rules}{124} \entry {Calculator, shell}{30} \entry {Calculator, X windows}{30} \entry {\samp {cat} command}{27} \entry {\samp {cc}}{29} \entry {\samp {CC}}{29} \entry {CGI protocol}{103} \entry {Changing file mode}{27} \entry {\samp {chgrp} command}{27} \entry {\code {chgrp} command}{39} \entry {\samp {chmod} command}{27} \entry {\code {chmod} command}{38} \entry {\samp {chop} command in perl}{86} \entry {\samp {chown} command}{27} \entry {\code {chown} command}{39} \entry {\samp {close} command in perl}{84} \entry {\code {closedir} command}{126} \entry {\samp {cmdtool}}{26} \entry {Command completion}{46} \entry {Command history}{46} \entry {Command interpreter}{19} \entry {Command line arguments}{51} \entry {Command line arguments in C}{125} \entry {Command line arguments in perl}{76, 78} \entry {Command line arguments in sh}{65} \entry {Command path}{21} \entry {Command window}{26} \entry {Commands as files}{9} \entry {Commands path}{9} \entry {Comparison operators in csh}{54} \entry {Compiler script}{55} \entry {Compilers}{29} \entry {Compiling huge programs}{120} \entry {Compiling programs}{117} \entry {\code {connect()}}{153} \entry {\samp {continue} in csh}{57} \entry {Continuing long lines}{53} \entry {Copy of output to file}{45} \entry {core}{9} \entry {\samp {cp} command}{26} \entry {Creating directories}{26} \entry {Creating files}{26} \entry {\file {csh}}{10} \entry {csh}{25} \entry {\key {CTRL-A}}{25} \entry {\key {CTRL-C}}{25} \entry {\key {CTRL-D}}{25} \entry {\key {CTRL-D} and EOF}{70} \entry {\key {CTRL-E}}{25} \entry {\key {CTRL-L}}{25} \entry {\key {CTRL-Z}}{25} \entry {Curses}{115} \entry {\samp {cut}}{75} \entry {Cut as a perl script}{84} \entry {\samp {cut} command}{27} \initial {D} \entry {Database maps}{159} \entry {Database support}{90} \entry {\samp {date} command}{30} \entry {Date stamp, updating}{26} \entry {\samp {dbx} debugger}{29} \entry {Debugger}{29} \entry {Debugger for C}{10} \entry {Debugger GUI}{29} \entry {Decisions and return codes in sh}{66} \entry {delete}{9} \entry {Dependencies in Makefiles}{121} \entry {\samp {df} command}{28} \entry {\samp {die}}{87} \entry {Directories, creating}{26} \entry {Directories, deleting}{26} \entry {dirent directory interface}{126} \entry {Disk usage.}{28} \entry {DISPLAY variable}{33} \entry {Display, X}{32} \entry {DNS}{160} \entry {\samp {do..while} in perl}{81} \entry {Domainname}{29} \entry {\samp {domainname} command}{29} \entry {DOS}{5} \entry {Drawing program}{30} \entry {\samp {du} command}{28} \entry {dvi to postscript}{30} \initial {E} \entry {\samp {ed}}{26} \entry {\code {egrep} command}{23} \entry {\samp {elm} mailer}{28} \entry {\samp {emacs}}{26} \entry {Embedded shell}{47} \entry {Encryption}{88} \entry {End of file \key {CTRL-D}}{70} \entry {\code {env} command}{22} \entry {Environment variables}{19, 21} \entry {Environment variables in C}{125} \entry {Environment variables in perl}{76, 79} \entry {Environment, unix user}{19} \entry {\code {envp} in C}{125} \entry {\samp {eq} and \samp {==} in perl}{77} \entry {Error messages}{11} \entry {Errors in perl}{87} \entry {Executable, making programs}{39} \entry {Exiting on errors in perl}{87} \entry {\samp {EXPORT} command in sh}{63} \entry {Expressions, regular}{23} \entry {\code {extern} variables}{117} \entry {Extracting filename components}{58} \initial {F} \entry {\samp {fg} command}{50} \entry {File access permission}{37} \entry {File handles in perl}{84} \entry {File hierarchy}{11} \entry {File mode, changing}{27} \entry {File protection bits}{37} \entry {File transfer}{28} \entry {File type, determining in C}{128} \entry {Filename completion}{46} \entry {Files in perl}{84} \entry {Files, iterating over lines}{83} \entry {\samp {find} command}{27, 48} \entry {Finding commands}{8} \entry {Finding FTP files}{30} \entry {\samp {finger} service}{28} \entry {\samp {fmgr} file manager}{27} \entry {\samp {fnews} news reader}{30} \entry {For loop}{82} \entry {\code {for} loop in perl}{81} \entry {\code {for} loop in sh}{65} \entry {For loops in perl}{81} \entry {\code {foreach}}{56} \entry {\code {foreach} example}{52} \entry {Foreach loop}{82} \entry {\code {foreach} loop in perl}{81} \entry {Foreground process}{47} \entry {Forking new processes}{89} \entry {Formatting text in a file}{45} \entry {Forms in HTML}{103} \entry {\samp {ftp} program}{28} \entry {FTP resources, finding}{30} \entry {Fully qualified name}{161} \initial {G} \entry {\samp {g++}}{29} \entry {\samp {gcc}}{29} \entry {\samp {gdb} debugger}{29} \entry {\code {getenv() function}}{125} \entry {\code {getgrnam()}}{160} \entry {\code {gethostbyname()}}{153, 161} \entry {\code {gethostent()}}{160} \entry {\code {getnetgrent()}}{160} \entry {\code {getpwnam()}}{160} \entry {\code {getpwuid()}}{160} \entry {\code {getservbyname()}}{160} \entry {\code {getservbyport()}}{160} \entry {Getting command output into a string}{25} \entry {\samp {ghostscript} "GNU postscript" interpreter}{30} \entry {\samp {ghostview} postscript previewer}{30} \entry {gif}{30} \entry {Global variables}{22} \entry {Global variables in csh}{42} \entry {Global variables in sh}{63} \entry {Granting permission}{27} \entry {groups}{37} \initial {H} \entry {Hard links}{12, 13} \entry {Help function for commands}{8} \entry {Hierarchy, file}{11} \entry {\samp {hostname} command}{29} \entry {Hypertext}{30} \initial {I} \entry {I/O streams}{10} \entry {\samp {if} in perl}{81} \entry {\code {if..then..else} in csh}{53} \entry {\code {if..then..else..fi} in sh}{67} \entry {\samp {IFS} variable in sh}{70} \entry {\code {INADDR_ANY}}{151} \entry {Include file search path}{118} \entry {Include files}{118} \entry {Index nodes}{13} \entry {Information about file properties}{127} \entry {\emph {init}}{19} \entry {inodes}{13} \entry {Input in csh}{57} \entry {Input in sh}{68} \entry {Input over many lines}{45} \entry {Inserting a command into a string}{25} \entry {Internet relay chat}{28} \entry {Internet resources}{30} \entry {Interpretation of values in perl}{77} \entry {Interrupt handler in sh}{71} \entry {\code {ioctl()}}{145} \entry {\samp {IRC}}{28} \entry {Iterating over files}{83} \entry {Iteration over arrays}{82} \initial {J} \entry {Job control}{47} \entry {Job numbers in csh}{50} \entry {Job, moving to background}{50} \entry {Joker notation}{22} \entry {jpg}{30} \entry {jsh}{25} \initial {K} \entry {kernel}{9} \entry {Kernel}{12} \entry {Kernighan and Ritchie C}{116} \entry {\samp {kill} command}{50} \entry {ksh}{10, 25} \initial {L} \entry {\samp {latex}}{30} \entry {\samp {ld} loader/linker}{29} \entry {\file {ld.so.cache}}{119} \entry {\file {ldconfig}}{119} \entry {\samp {less} command}{27} \entry {lex}{10} \entry {\samp {lex}}{115} \entry {Lexer}{147} \entry {libc}{117} \entry {libcurses}{117} \entry {libm}{117} \entry {Library path for C loader}{117} \entry {Limitations of shell programs}{73} \entry {Links in C}{127} \entry {Links, where do they point?}{127} \entry {\code {listen()}}{155} \entry {Little endian}{151} \entry {\code {ln -s}}{13} \entry {Local variables}{22} \entry {Local variables in csh}{42} \entry {Local variables in perl}{87} \entry {Local variables in sh}{63} \entry {\samp {locate} command}{27} \entry {Logging on}{15} \entry {Login environment}{19} \entry {Login evironment}{41} \entry {Long file listing}{37} \entry {Long lines, continuing}{53} \entry {Loops and list separators}{70} \entry {Loops in csh}{56} \entry {Loops in sh}{69} \entry {\samp {lp} command}{27} \entry {\samp {lpq}}{27} \entry {\samp {lpr} command}{27} \entry {\samp {lpstat}}{27} \entry {\code {ls -l}}{37} \entry {\samp {ls command}}{26} \entry {\code {lstat()}}{127} \initial {M} \entry {MacIntosh}{6} \entry {Macros for stat}{128} \entry {Mail clients}{28} \entry {make}{10} \entry {Make rules for C++}{124} \entry {Make software script}{55} \entry {Making a script}{51} \entry {Making directories}{8} \entry {Making scripts in sh}{65} \entry {Masking programs executable}{39} \entry {Matching filenames}{22} \entry {Matching strings}{23} \entry {mc}{27} \entry {Mercury}{29} \entry {\samp {mesg}}{28} \entry {Messages}{28} \entry {Mime types in W3}{103} \entry {mkdir}{8} \entry {\samp {mkdir} command}{26} \entry {\samp {more} command}{27} \entry {\samp {mosaic}}{30} \entry {Mounted file systems}{29} \entry {Moving a job to the background}{50} \entry {Moving files}{26} \entry {Multiple C files, compiling}{117} \entry {Multiple screens}{34} \entry {\samp {mv} command}{26} \initial {N} \entry {nc}{27} \entry {\samp {ncftp} program}{28} \entry {\samp {netstat} network statistics}{29} \entry {Network byte order}{151} \entry {Network databases}{159} \entry {Network information service}{159} \entry {Never do in unix}{8} \entry {NFS and C support}{162} \entry {NIS}{159} \entry {nobody}{11} \entry {\code {noclobber} overwrite protection}{44} \entry {\code {noclobber} variable}{44} \entry {\samp {nslookup} command}{29} \initial {O} \entry {\samp {open} command in perl}{84} \entry {\code {opendir} command}{126} \entry {Opening a pipe in C}{135} \entry {Operating system name}{29} \entry {Operators in csh}{54} \entry {Output to file}{45} \entry {Output, sending to a file}{43} \initial {P} \entry {Painting program}{30} \entry {Panic button}{51} \entry {Parameters in perl functions}{87} \entry {Parser}{147} \entry {Parts of a filename}{58} \entry {\file {passwd} file}{88} \entry {\samp {paste}}{75} \entry {Paste as a perl script}{84} \entry {\samp {paste} command}{27} \entry {\code {path}}{9} \entry {path}{21} \entry {\code {PATH}}{9} \entry {Pattern matching in perl}{93, 95} \entry {Pattern replacement in perl}{93} \entry {PC windows}{6} \entry {perl}{6} \entry {Perl}{75} \entry {Perl variables and types}{76} \entry {Perl, strings and scalar}{77} \entry {Perl, truncating strings}{86} \entry {Permissions on files}{37} \entry {Permissions, determining in C}{128} \entry {\samp {pico}}{26} \entry {Picture processing}{30} \entry {\samp {pine} mailer}{28} \entry {Pipe}{45} \entry {Pipes}{43} \entry {Pipes in C}{135} \entry {Piping to more to prevent scrolling}{45} \entry {\code {popen()}}{135} \entry {POSIX standard}{117} \entry {Postscript viewers}{30} \entry {Printer queue}{27} \entry {Printer status}{27} \entry {\samp {PRINTER} variable}{27} \entry {Printing a file}{27} \entry {Printing multiple lines}{45} \entry {Procedures and subroutines in sh}{71} \entry {Process. moving to background}{50} \entry {Processes}{48} \entry {Prompt, redefining}{41} \entry {Protecting files from overwrite with \samp {>}}{44} \entry {Protection bits}{37} \entry {\samp {ps} command}{29} \initial {R} \entry {\code {readdir} command}{126} \entry {\code {readlink()}}{127} \entry {\code {recv()}}{154} \entry {Redefining list separator in sh}{70} \entry {Redirecting stdio in sh}{64} \entry {Redirection of stdio}{43} \entry {Regular expressions}{23} \entry {Reliable socket protocol}{157} \entry {Renaming files}{26} \entry {\code {repeat}}{56} \entry {Result of a command into a string}{25} \entry {Return codes}{66} \entry {\samp {rlogin}}{26} \entry {rlogin program}{31} \entry {\samp {rm} command}{26} \entry {\samp {rmail} in emacs}{28} \entry {\samp {rmdir} command}{26} \entry {Role of C in unix}{10} \entry {Root privileges}{73} \entry {root user}{11} \entry {rpcgen}{10} \entry {\samp {rpcinfo}}{29} \entry {\samp {rsh}}{26} \initial {S} \entry {s-bit}{39, 40} \entry {Scalar variables in perl}{77} \entry {scheme}{29} \entry {\samp {screen}}{26} \entry {Screens}{34} \entry {Script aliases in W3}{104} \entry {Script, making}{51} \entry {Scripts in sh, making}{65} \entry {Searching and replacing in perl (example)}{94} \entry {\samp {sed} as a perl script}{93} \entry {\samp {sed} batch editor}{75} \entry {\samp {sed} editor}{27} \entry {\samp {sed}, search and replace}{55} \entry {\code {send()}}{154} \entry {Sending messages}{28} \entry {\code {set} command}{42} \entry {\code {setenv} command}{42} \entry {setgid bit}{39} \entry {Setting the prompt}{41} \entry {Setting up the C shell}{41} \entry {Setting up the x environment}{32} \entry {setuid bit}{39} \entry {SetUID scripts}{73} \entry {\file {sh}}{10} \entry {sh}{25} \entry {sh5}{25} \entry {Shared libraries}{118} \entry {shell}{6, 9} \entry {Shell commands and C library calls}{10} \entry {\key {Shells, various}}{25} \entry {\samp {shelltool}}{26} \entry {\samp {shift} and arrays}{79} \entry {\samp {shift} and arrays in perl}{79} \entry {\code {shift} operator on strings}{65} \entry {\samp {showmount}}{29} \entry {Signal handler in sh}{71} \entry {Single and double quotes}{47} \entry {\samp {sleep} command}{62} \entry {\code {socket()}}{153} \entry {Sockets}{151} \entry {Soft links}{13} \entry {\samp {Sonar} ping}{30} \entry {Spelling checker}{30} \entry {\samp {split} and arrays}{79} \entry {\samp {split} command}{79} \entry {Splitting C into many files.}{117} \entry {Splitting output to several files}{45} \entry {Standard error}{10} \entry {Standard I/O in perl}{84} \entry {Standard I/O in sh}{64} \entry {Standard I/O, redirection}{43} \entry {Standard input}{10} \entry {Standard output}{10} \entry {Starting}{132} \entry {Starting shell jobs}{50} \entry {\code {stat()}}{127} \entry {Static linking}{118} \entry {Statistics about a file}{127} \entry {Sticky bit}{40} \entry {Strings in perl}{77} \entry {\samp {stty} and switching off term echo}{88} \entry {Subroutines in perl}{86} \entry {Subshells and ()}{52} \entry {Suffix rules in Makefiles}{121} \entry {superuser}{11} \entry {Suspending a job}{50} \entry {Swapping text strings}{55} \entry {\code {switch..case} in csh}{53} \entry {Symbolic links}{13} \entry {System 5}{7} \entry {\samp {System details}}{29} \entry {System identity and \samp {uname}}{55} \entry {System name}{29} \entry {System V}{7} \initial {T} \entry {t-bit}{40} \entry {\key {TAB} completion key}{46} \entry {\samp {talk} service}{28} \entry {\samp {TCL}}{29} \entry {TCP/IP}{151} \entry {tcsh}{10, 25} \entry {\samp {tee} command}{45} \entry {Teletype terminal}{31} \entry {telnet}{15} \entry {\samp {telnet}}{26} \entry {Terminal echo and \samp {stty}}{88} \entry {Terminals}{26} \entry {\samp {test} in sh}{67} \entry {test programs}{9} \entry {test, don't call your program this}{9} \entry {Testing files}{53} \entry {Testing reponse from other hosts.}{30} \entry {Tests and conditions in csh}{53} \entry {Tests in sh}{66} \entry {\samp {tex}}{30} \entry {\samp {texinfo} system}{30} \entry {Text form of access bits}{38} \entry {Text formatting}{30} \entry {\samp {textedit}}{26} \entry {The arguement vector in C}{125} \entry {The domain name service}{160} \entry {tiff}{30} \entry {Time and date}{30} \entry {Time stamp, updating}{26} \entry {Tk library}{115} \entry {\samp {touch} command}{26} \entry {Traps in sh}{71} \entry {Truncating strings in perl}{86} \entry {tty}{31} \entry {\samp {type} in DOS}{27} \entry {Types in perl}{76} \initial {U} \entry {\code {umask} variable}{39} \entry {\samp {uname} command}{55} \entry {Undefining variables}{42} \entry {undelete}{9} \entry {UNIX}{5} \entry {UNIX history}{5} \entry {\samp {unless} in perl}{81} \entry {\samp {unlink} command}{26} \entry {\code {unset} command}{42} \entry {\samp {until}}{69} \entry {Up arrow}{46} \entry {Updating file time stamp}{26} \entry {User database support}{90} \entry {User environment}{19} \entry {\samp {users} command}{28} \initial {V} \entry {Variables, global}{22} \entry {Variables, local}{22} \entry {\samp {vi}}{26} \entry {Viewing a file}{27} \entry {\samp {vmstat} virtual memory stats}{29} \initial {W} \entry {\samp {w} command}{28} \entry {\file {wait.h}}{135} \entry {Waiting for child processes}{135} \entry {\samp {whereis} command}{27} \entry {which command}{21} \entry {\code {while}}{56} \entry {\samp {while} in perl}{81} \entry {\samp {while} in sh}{69} \entry {\code {while} loop in sh}{65} \entry {\samp {who} command}{28} \entry {\samp {whoami} command}{61} \entry {Wildcards}{19, 22} \entry {Windows on PC}{6} \entry {Wrapper functions}{10} \entry {Wrappers}{115} \entry {\samp {write} command}{28} \entry {\code {write} example}{52} \entry {Writing a script}{51} \entry {\code {WTERMSIG(status)}}{135} \initial {X} \entry {X access control}{34} \entry {X display}{32, 33} \entry {X protocol}{32} \entry {X window system}{31} \entry {X windows}{115} \entry {X windows access}{33} \entry {X windows authentification}{33} \entry {X-windows}{19} \entry {\samp {xarchie} client}{30} \entry {Xauthority mechanism}{34} \entry {\samp {xedit}}{26} \entry {\samp {xemacs}}{26} \entry {\samp {xfig} drawing program}{30} \entry {xhost mechanism}{33} \entry {\samp {xpaint} program}{30} \entry {\samp {xrn} news reader}{30} \entry {\samp {xterm}}{26} \entry {xterm program}{31} \entry {\samp {xv} picture processor}{30} \entry {\samp {xxgdb}}{29} \initial {Y} \entry {yacc}{10} \entry {\samp {yacc}}{115, 147} \initial {Z} \entry {\samp {zmail} client}{28} \entry {zsh}{25}