BSD 4_4_Lite2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 14 May 1995 09:10:46 +0000 (01:10 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 14 May 1995 09:10:46 +0000 (01:10 -0800)
Work on file usr/share/man/cat1/cat.0
Work on file usr/share/man/cat1/chmod.0
Work on file usr/share/man/cat1/cp.0
Work on file usr/share/man/cat1/repeat.0
Work on file usr/share/man/cat1/pushd.0
Work on file usr/share/man/cat1/dirs.0
Work on file usr/share/man/cat1/suspend.0
Work on file usr/share/man/cat1/alias.0
Work on file usr/share/man/cat1/csh.0
Work on file usr/share/man/cat1/limit.0
Work on file usr/share/man/cat1/foreach.0
Work on file usr/share/man/cat1/fg.0
Work on file usr/share/man/cat1/bg.0
Work on file usr/share/man/cat1/jobs.0
Work on file usr/share/man/cat1/popd.0
Work on file usr/share/man/cat1/rehash.0
Work on file usr/share/man/cat1/history.0
Work on file usr/share/man/cat1/source.0
Work on file usr/share/man/cat1/stop.0
Work on file usr/share/man/cat1/date.0
Work on file usr/share/man/cat1/dd.0
Work on file usr/share/man/cat1/df.0
Work on file usr/share/man/cat1/echo.0
Work on file usr/share/man/cat1/hostname.0
Work on file usr/share/man/cat1/kill.0
Work on file usr/share/man/cat1/ln.0
Work on file usr/share/man/cat7/symlink.0
Work on file usr/share/man/cat1/ls.0
Work on file usr/share/man/cat1/mkdir.0
Work on file usr/share/man/cat1/mv.0
Work on file usr/share/man/cat1/pax.0
Work on file usr/share/man/cat1/ps.0
Work on file usr/share/man/cat1/pwd.0
Work on file usr/share/man/cat1/rcp.0
Work on file usr/share/man/cat1/rm.0
Work on file usr/share/man/cat8/rmail.0
Work on file usr/share/man/cat1/rmdir.0
Work on file usr/share/man/cat1/sleep.0
Work on file usr/share/man/cat1/stty.0
Work on file usr/share/man/cat8/sync.0
Work on file usr/share/man/cat1/[.0
Work on file usr/share/man/cat1/test.0

Synthesized-from: CSRG/cd3/4.4BSD-Lite2

42 files changed:
usr/share/man/cat1/[.0 [new file with mode: 0644]
usr/share/man/cat1/alias.0 [new file with mode: 0644]
usr/share/man/cat1/bg.0 [new file with mode: 0644]
usr/share/man/cat1/cat.0 [new file with mode: 0644]
usr/share/man/cat1/chmod.0 [new file with mode: 0644]
usr/share/man/cat1/cp.0 [new file with mode: 0644]
usr/share/man/cat1/csh.0 [new file with mode: 0644]
usr/share/man/cat1/date.0 [new file with mode: 0644]
usr/share/man/cat1/dd.0 [new file with mode: 0644]
usr/share/man/cat1/df.0 [new file with mode: 0644]
usr/share/man/cat1/dirs.0 [new file with mode: 0644]
usr/share/man/cat1/echo.0 [new file with mode: 0644]
usr/share/man/cat1/fg.0 [new file with mode: 0644]
usr/share/man/cat1/foreach.0 [new file with mode: 0644]
usr/share/man/cat1/history.0 [new file with mode: 0644]
usr/share/man/cat1/hostname.0 [new file with mode: 0644]
usr/share/man/cat1/jobs.0 [new file with mode: 0644]
usr/share/man/cat1/kill.0 [new file with mode: 0644]
usr/share/man/cat1/limit.0 [new file with mode: 0644]
usr/share/man/cat1/ln.0 [new file with mode: 0644]
usr/share/man/cat1/ls.0 [new file with mode: 0644]
usr/share/man/cat1/mkdir.0 [new file with mode: 0644]
usr/share/man/cat1/mv.0 [new file with mode: 0644]
usr/share/man/cat1/pax.0 [new file with mode: 0644]
usr/share/man/cat1/popd.0 [new file with mode: 0644]
usr/share/man/cat1/ps.0 [new file with mode: 0644]
usr/share/man/cat1/pushd.0 [new file with mode: 0644]
usr/share/man/cat1/pwd.0 [new file with mode: 0644]
usr/share/man/cat1/rcp.0 [new file with mode: 0644]
usr/share/man/cat1/rehash.0 [new file with mode: 0644]
usr/share/man/cat1/repeat.0 [new file with mode: 0644]
usr/share/man/cat1/rm.0 [new file with mode: 0644]
usr/share/man/cat1/rmdir.0 [new file with mode: 0644]
usr/share/man/cat1/sleep.0 [new file with mode: 0644]
usr/share/man/cat1/source.0 [new file with mode: 0644]
usr/share/man/cat1/stop.0 [new file with mode: 0644]
usr/share/man/cat1/stty.0 [new file with mode: 0644]
usr/share/man/cat1/suspend.0 [new file with mode: 0644]
usr/share/man/cat1/test.0 [new file with mode: 0644]
usr/share/man/cat7/symlink.0 [new file with mode: 0644]
usr/share/man/cat8/rmail.0 [new file with mode: 0644]
usr/share/man/cat8/sync.0 [new file with mode: 0644]

diff --git a/usr/share/man/cat1/[.0 b/usr/share/man/cat1/[.0
new file mode 100644 (file)
index 0000000..ef7df51
--- /dev/null
@@ -0,0 +1,114 @@
+TEST(1)                      BSD Reference Manual                      TEST(1)
+
+N\bNA\bAM\bME\bE
+     t\bte\bes\bst\bt - condition evaluation utility
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     t\bte\bes\bst\bt _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The t\bte\bes\bst\bt utility evaluates the expression and, if it evaluates to true,
+     returns a zero (true) exit status; otherwise it returns 1 (false).  If
+     there is no expression, test also returns 1 (false).
+
+     All operators and flags are separate arguments to the t\bte\bes\bst\bt utility.
+
+     The following primaries are used to construct expression:
+
+     -\b-b\bb _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a block special file.
+
+     -\b-c\bc _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a character special file.
+
+     -\b-d\bd _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a directory.
+
+     -\b-e\be _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists (regardless of type).
+
+     -\b-f\bf _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a regular file.
+
+     -\b-g\bg _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and its set group ID flag is set.
+
+     -\b-h\bh _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a symbolic link.
+
+     -\b-n\bn _\bs_\bt_\br_\bi_\bn_\bg     True if the length of _\bs_\bt_\br_\bi_\bn_\bg is nonzero.
+
+     -\b-p\bp _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be is a named pipe (FIFO).
+
+     -\b-r\br _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be _\be_\bx_\bi_\bs_\bt_\bs _\ba_\bn_\bd _\bi_\bs _\br_\be_\ba_\bd_\ba_\bb_\bl_\be_\b.
+
+     -\b-s\bs _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and has a size greater than zero.
+
+     -\b-t\bt _\b[_\bf_\bi_\bl_\be_\b__\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bo_\br_\b]
+                   True if the file whose file descriptor number is
+                   _\bf_\bi_\bl_\be_\b__\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bo_\br (default 1) is open and is associated with
+                   a terminal.
+
+     -\b-u\bu _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and its set user ID flag is set.
+
+     -\b-w\bw _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is writable.  True indicates only
+                   that the write flag is on.  The file is not writable on a
+                   read-only file system even if this test indicates true.
+
+     -\b-x\bx _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is executable.  True indicates only
+                   that the execute flag is on.  If _\bf_\bi_\bl_\be is a directory, true
+                   indicates that _\bf_\bi_\bl_\be can be searched.
+
+     -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg     True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
+
+     _\bs_\bt_\br_\bi_\bn_\bg        True if _\bs_\bt_\br_\bi_\bn_\bg is not the null string.
+
+     _\bs_\b1 =\b= _\bs_\b2       True if the strings _\bs_\b1 and _\bs_\b2 are identical.
+
+     _\bs_\b1 !\b!=\b= _\bs_\b2      True if the strings _\bs_\b1 and _\bs_\b2 are not identical.
+
+     _\bn_\b1 -\b-e\beq\bq _\bn_\b2     True if the integers _\bn_\b1 and _\bn_\b2 are algebraically equal.
+
+     _\bn_\b1 -\b-n\bne\be _\bn_\b2     True if the integers _\bn_\b1 and _\bn_\b2 are not algebraically equal.
+
+
+     _\bn_\b1 -\b-g\bgt\bt _\bn_\b2     True if the integer _\bn_\b1 is algebraically greater than the
+                   integer _\bn_\b2.
+
+     _\bn_\b1 -\b-g\bge\be _\bn_\b2     True if the integer _\bn_\b1 is algebraically greater than or
+                   equal to the integer _\bn_\b2.
+
+     _\bn_\b1 -\b-l\blt\bt _\bn_\b2     True if the integer _\bn_\b1 is algebraically less than the inte-
+                   ger _\bn_\b2.
+
+     _\bn_\b1 -\b-l\ble\be _\bn_\b2     True if the integer _\bn_\b1 is algebraically less than or equal
+                   to the integer _\bn_\b2.
+
+     These primaries can be combined with the following operators:
+
+     !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn  True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
+
+     _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 -\b-a\ba _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                   True if both _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 and _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
+
+     _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 -\b-o\bo _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                   True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
+
+     (\b(_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn)\b)  True if expression is true.
+
+     The -\b-a\ba operator has higher precedence than the -\b-o\bo operator.
+
+G\bGR\bRA\bAM\bMM\bMA\bAR\bR A\bAM\bMB\bBI\bIG\bGU\bUI\bIT\bTY\bY
+     The t\bte\bes\bst\bt grammar is inherently ambiguous.  In order to assure a degree of
+     consistency, the cases described in the IEEE Std1003.2 (``POSIX''), sec-
+     tion D11.2/4.62.4, standard are evaluated consistently according to the
+     rules specified in the standards document.  All other cases are subject
+     to the ambiguity in the command semantics.
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+     The t\bte\bes\bst\bt utility exits with one of the following values:
+
+     0       expression evaluated to true.
+
+     1       expression evaluated to false or expression was missing.
+
+     >1      An error occurred.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The t\bte\bes\bst\bt function is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+4.4BSD                           May 31, 1993                                2
diff --git a/usr/share/man/cat1/alias.0 b/usr/share/man/cat1/alias.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/bg.0 b/usr/share/man/cat1/bg.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/cat.0 b/usr/share/man/cat1/cat.0
new file mode 100644 (file)
index 0000000..644fff2
--- /dev/null
@@ -0,0 +1,53 @@
+CAT(1)                       BSD Reference Manual                       CAT(1)
+
+N\bNA\bAM\bME\bE
+     c\bca\bat\bt - concatenate and print files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bca\bat\bt [-\b-b\bbe\ben\bns\bst\btu\buv\bv] [-\b-] [_\bf_\bi_\bl_\be _\b._\b._\b.]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bca\bat\bt utility reads files sequentially, writing them to the standard
+     output.  The _\bf_\bi_\bl_\be operands are processed in command line order.  A single
+     dash represents the standard input.
+
+     The options are as follows:
+
+     -\b-b\bb      Implies the -\b-n\bn option but doesn't number blank lines.
+
+     -\b-e\be      Implies the -\b-v\bv option, and displays a dollar sign (`$') at the
+             end of each line as well.
+
+     -\b-n\bn      Number the output lines, starting at 1.
+
+     -\b-s\bs      Squeeze multiple adjacent empty lines, causing the output to be
+             single spaced.
+
+     -\b-t\bt      Implies the -\b-v\bv option, and displays tab characters as `^I' as
+             well.
+
+     -\b-u\bu      The -\b-u\bu option guarantees that the output is unbuffered.
+
+     -\b-v\bv      Displays non-printing characters so they are visible.  Control
+             characters print as `^X' for control-X; the delete character (oc-
+             tal 0177) prints as `^?' Non-ascii characters (with the high bit
+             set) are printed as `M-' (for meta) followed by the character for
+             the low 7 bits.
+
+     The c\bca\bat\bt utility exits 0 on success, and >0 if an error occurs.
+
+B\bBU\bUG\bGS\bS
+     Because of the shell language mechanism used to perform output redirec-
+     tion, the command ``cat file1 file 2 > file1'' will cause the original
+     data in file1 to be destroyed!
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     head(1),  more(1),  pr(1),  tail(1),  vis(1)
+
+     Rob Pike, "UNIX Style, or cat -v Considered Harmful", _\bU_\bS_\bE_\bN_\bI_\bX _\bS_\bu_\bm_\bm_\be_\br
+     _\bC_\bo_\bn_\bf_\be_\br_\be_\bn_\bc_\be _\bP_\br_\bo_\bc_\be_\be_\bd_\bi_\bn_\bg_\bs, 1983.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     A c\bca\bat\bt command appeared in Version 6 AT&T UNIX.
+
+3rd Berkeley Distribution         May 2, 1995                                1
diff --git a/usr/share/man/cat1/chmod.0 b/usr/share/man/cat1/chmod.0
new file mode 100644 (file)
index 0000000..96f8e99
--- /dev/null
@@ -0,0 +1,149 @@
+CHMOD(1)                     BSD Reference Manual                     CHMOD(1)
+
+N\bNA\bAM\bME\bE
+     c\bch\bhm\bmo\bod\bd - change file modes
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bch\bhm\bmo\bod\bd [-\b-R\bR [-\b-H\bH | -\b-L\bL | -\b-P\bP]] _\bm_\bo_\bd_\be _\bf_\bi_\bl_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bch\bhm\bmo\bod\bd utility modifies the file mode bits of the listed files as
+     specified by the _\bm_\bo_\bd_\be operand.
+
+     The options are as follows:
+
+     -\b-H\bH      If the -\b-R\bR option is specified, symbolic links on the command line
+             are followed.  (Symbolic links encountered in the tree traversal
+             are not followed.)
+
+     -\b-L\bL      If the -\b-R\bR option is specified, all symbolic links are followed.
+
+     -\b-P\bP      If the -\b-R\bR option is specified, no symbolic links are followed.
+
+     -\b-R\bR      Change the modes of the file hierarchies rooted in the files in-
+             stead of just the files themselves.
+
+     Symbolic links do not have modes, so unless the -\b-H\bH or -\b-L\bL option is set,
+     c\bch\bhm\bmo\bod\bd on a symbolic link always succeeds and has no effect.  The -\b-H\bH, -\b-L\bL
+     and -\b-P\bP options are ignored unless the -\b-R\bR option is specified.  In addi-
+     tion, these options override each other and the command's actions are de-
+     termined by the last one specified.
+
+     Only the owner of a file or the super-user is permitted to change the
+     mode of a file.
+
+     The c\bch\bhm\bmo\bod\bd utility exits 0 on success, and >0 if an error occurs.
+
+M\bMO\bOD\bDE\bES\bS
+     Modes may be absolute or symbolic.  An absolute mode is an octal number
+     constructed by _\bo_\br_\b-_\bi_\bn_\bg the following values:
+
+           4000    set-user-ID-on-execution
+           2000    set-group-ID-on-execution
+           1000    sticky bit, see chmod(2)
+           0400    read by owner
+           0200    write by owner
+           0100    execute (or search for directories) by owner
+           0070    read, write, execute/search by group
+           0007    read, write, execute/search by others
+
+     The read, write, and execute/search values for group and others are en-
+     coded as described for owner.
+
+     The symbolic mode is described by the following grammar:
+
+           mode         ::= clause [, clause ...]
+           clause       ::= [who ...] [action ...] last_action
+           action       ::= op [perm ...]
+           last_action  ::= op [perm ...]
+           who          ::= a | u | g | o
+           op           ::= + | - | =
+           perm         ::= r | s | t | w | x | X | u | g | o
+
+     The _\bw_\bh_\bo symbols ``u'', ``g'', and ``o'' specify the user, group, and oth-
+     er parts of the mode bits, respectively.  The _\bw_\bh_\bo symbol ``a'' is equiva-
+     lent to ``ugo''.
+
+     The _\bp_\be_\br_\bm symbols represent the portions of the mode bits as follows:
+
+           r       The read bits.
+           s       The set-user-ID-on-execution and set-group-ID-on-execution
+                   bits.
+           t       The sticky bit.
+           w       The write bits.
+           x       The execute/search bits.
+           X       The execute/search bits if the file is a directory or any
+                   of the execute/search bits are set in the original (unmodi-
+                   fied) mode.  Operations with the _\bp_\be_\br_\bm symbol ``X'' are only
+                   meaningful in conjunction with the _\bo_\bp symbol ``+'', and are
+                   ignored in all other cases.
+           u       The user permission bits in the mode of the original file.
+           g       The group permission bits in the mode of the original file.
+           o       The other permission bits in the mode of the original file.
+
+     The _\bo_\bp symbols represent the operation performed, as follows:
+
+     +     If no value is supplied for _\bp_\be_\br_\bm, the ``+'' operation has no ef-
+           fect.  If no value is supplied for _\bw_\bh_\bo, each permission bit speci-
+           fied in _\bp_\be_\br_\bm, for which the corresponding bit in the file mode cre-
+           ation mask is clear, is set.  Otherwise, the mode bits represented
+           by the specified _\bw_\bh_\bo and _\bp_\be_\br_\bm values are set.
+
+     -     If no value is supplied for _\bp_\be_\br_\bm, the ``-'' operation has no ef-
+           fect.  If no value is supplied for _\bw_\bh_\bo, each permission bit speci-
+           fied in _\bp_\be_\br_\bm, for which the corresponding bit in the file mode cre-
+           ation mask is clear, is cleared.  Otherwise, the mode bits repre-
+           sented by the specified _\bw_\bh_\bo and _\bp_\be_\br_\bm values are cleared.
+
+     =     The mode bits specified by the _\bw_\bh_\bo value are cleared, or, if no who
+           value is specified, the owner, group and other mode bits are
+           cleared.  Then, if no value is supplied for _\bw_\bh_\bo, each permission
+           bit specified in _\bp_\be_\br_\bm, for which the corresponding bit in the file
+           mode creation mask is clear, is set.  Otherwise, the mode bits rep-
+           resented by the specified _\bw_\bh_\bo and _\bp_\be_\br_\bm values are set.
+
+     Each _\bc_\bl_\ba_\bu_\bs_\be specifies one or more operations to be performed on the mode
+     bits, and each operation is applied to the mode bits in the order speci-
+     fied.
+
+     Operations upon the other permissions only (specified by the symbol ``o''
+     by itself), in combination with the _\bp_\be_\br_\bm symbols ``s'' or ``t'', are ig-
+     nored.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+     644           make a file readable by anyone and writable by the owner
+                   only.
+
+     go-w          deny write permission to group and others.
+
+     =rw,+X        set the read and write permissions to the usual defaults,
+                   but retain any execute permissions that are currently set.
+
+     +X            make a directory or file searchable/executable by everyone
+                   if it is already searchable/executable by anyone.
+
+     755
+     u=rwx,go=rx
+     u=rwx,go=u-w  make a file readable/executable by everyone and writable by
+                   the owner only.
+
+
+
+     go=           clear all mode bits for group and others.
+
+     g=u-w         set the group bits equal to the user bits, but clear the
+                   group write bit.
+
+B\bBU\bUG\bGS\bS
+     There's no _\bp_\be_\br_\bm option for the naughty bits.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     install(1),  chmod(2),  stat(2),  umask(2),  fts(3),  setmode(3),
+     symlink(7),  chown(8)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The c\bch\bhm\bmo\bod\bd utility is expected to be POSIX 1003.2 compatible with the ex-
+     ception of the _\bp_\be_\br_\bm symbols ``t'' and ``X'' which are not included in
+     that standard.
+
+4.4BSD                          March 31, 1994                               3
diff --git a/usr/share/man/cat1/cp.0 b/usr/share/man/cat1/cp.0
new file mode 100644 (file)
index 0000000..3852ccb
--- /dev/null
@@ -0,0 +1,99 @@
+CP(1)                        BSD Reference Manual                        CP(1)
+
+N\bNA\bAM\bME\bE
+     c\bcp\bp - copy files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcp\bp [-\b-R\bR [-\b-H\bH | -\b-L\bL | -\b-P\bP]] [-\b-f\bfi\bip\bp] _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be _\bt_\ba_\br_\bg_\be_\bt_\b__\bf_\bi_\bl_\be
+     c\bcp\bp [-\b-R\bR [-\b-H\bH | -\b-L\bL | -\b-P\bP]] [-\b-f\bfi\bip\bp] _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be _\b._\b._\b. _\bt_\ba_\br_\bg_\be_\bt_\b__\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     In the first synopsis form, the c\bcp\bp utility copies the contents of the
+     _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be to the _\bt_\ba_\br_\bg_\be_\bt_\b__\bf_\bi_\bl_\be. In the second synopsis form, the contents
+     of each named _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be is copied to the destination _\bt_\ba_\br_\bg_\be_\bt_\b__\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by.
+     The names of the files themselves are not changed.  If c\bcp\bp detects an at-
+     tempt to copy a file to itself, the copy will fail.
+
+     The following options are available:
+
+     -\b-H\bH    If the -\b-R\bR option is specified, symbolic links on the command line
+           are followed.  (Symbolic links encountered in the tree traversal
+           are not followed.)
+
+     -\b-L\bL    If the -\b-R\bR option is specified, all symbolic links are followed.
+
+     -\b-P\bP    If the -\b-R\bR option is specified, no symbolic links are followed.
+
+     -\b-R\bR    If _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be designates a directory, c\bcp\bp copies the directory and
+           the entire subtree connected at that point.  This option also caus-
+           es symbolic links to be copied, rather than indirected through, and
+           for c\bcp\bp to create special files rather than copying them as normal
+           files.  Created directories have the same mode as the corresponding
+           source directory, unmodified by the process' umask.
+
+     -\b-f\bf    For each existing destination pathname, remove it and create a new
+           file, without prompting for confirmation regardless of its permis-
+           sions.  (The -\b-i\bi option is ignored if the -\b-f\bf option is specified.)
+
+     -\b-i\bi    Causes c\bcp\bp to write a prompt to the standard error output before
+           copying a file that would overwrite an existing file.  If the re-
+           sponse from the standard input begins with the character `y', the
+           file copy is attempted.
+
+     -\b-p\bp    Causes c\bcp\bp to preserve in the copy as many of the modification time,
+           access time, file flags, file mode, user ID, and group ID as al-
+           lowed by permissions.
+
+           If the user ID and group ID cannot be preserved, no error message
+           is displayed and the exit value is not altered.
+
+           If the source file has its set user ID bit on and the user ID can-
+           not be preserved, the set user ID bit is not preserved in the
+           copy's permissions.  If the source file has its set group ID bit on
+           and the group ID cannot be preserved, the set group ID bit is not
+           preserved in the copy's permissions.  If the source file has both
+           its set user ID and set group ID bits on, and either the user ID or
+           group ID cannot be preserved, neither the set user ID or set group
+           ID bits are preserved in the copy's permissions.
+
+     For each destination file that already exists, its contents are overwrit-
+     ten if permissions allow, but its mode, user ID, and group ID are un-
+     changed.
+
+     In the second synopsis form, _\bt_\ba_\br_\bg_\be_\bt_\b__\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by must exist unless there is
+     only one named _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be which is a directory and the -\b-R\bR flag is speci-
+     fied.
+
+     If the destination file does not exist, the mode of the source file is
+     used as modified by the file mode creation mask (u\bum\bma\bas\bsk\bk, see csh(1)).  If
+     the source file has its set user ID bit on, that bit is removed unless
+     both the source file and the destination file are owned by the same user.
+     If the source file has its set group ID bit on, that bit is removed un-
+     less both the source file and the destination file are in the same group
+     and the user is a member of that group.  If both the set user ID and set
+     group ID bits are set, all of the above conditions must be fulfilled or
+     both bits are removed.
+
+     Appropriate permissions are required for file creation or overwriting.
+
+     Symbolic links are always followed unless the -\b-R\bR flag is set, in which
+     case symbolic links are not followed, by default.  The -\b-H\bH or -\b-L\bL flags (in
+     conjunction with the -\b-R\bR flag) cause symbolic links to be followed as de-
+     scribed above.  The -\b-H\bH, -\b-L\bL and -\b-P\bP options are ignored unless the -\b-R\bR op-
+     tion is specified.  In addition, these options override each other and
+     the command's actions are determined by the last one specified.
+
+     C\bCp\bp exits 0 on success, >0 if an error occurred.
+
+C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY
+     Historic versions of the c\bcp\bp utility had a -\b-r\br option.  This implementation
+     supports that option, however, its use is strongly discouraged, as it
+     does not correctly copy special files, symbolic links or fifo's.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     mv(1),  rcp(1),  umask(2),  fts(3),  symlink(7)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The c\bcp\bp command is expected to be IEEE Std1003.2 (``POSIX'') compatible.
+
+4th Berkeley Distribution       April 18, 1994                               2
diff --git a/usr/share/man/cat1/csh.0 b/usr/share/man/cat1/csh.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/date.0 b/usr/share/man/cat1/date.0
new file mode 100644 (file)
index 0000000..4c4b9e7
--- /dev/null
@@ -0,0 +1,121 @@
+DATE(1)                      BSD Reference Manual                      DATE(1)
+
+N\bNA\bAM\bME\bE
+     d\bda\bat\bte\be - display or set date and time
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     d\bda\bat\bte\be [-\b-d\bd _\bd_\bs_\bt] [-\b-r\br _\bs_\be_\bc_\bo_\bn_\bd_\bs] [-\b-t\bt _\bm_\bi_\bn_\bu_\bt_\be_\bs_\b__\bw_\be_\bs_\bt] [-\b-n\bnu\bu] [+\b+_\bf_\bo_\br_\bm_\ba_\bt]
+          [[yy[mm[dd[hh]]]]mm[.ss]]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     D\bDa\bat\bte\be displays the current date and time when invoked without arguments.
+     Providing arguments will format the date and time in a user-defined way
+     or set the date.  Only the superuser may set the date.
+
+     The options are as follows:
+
+     -\b-d\bd      Set the kernel's value for daylight savings time.  If _\bd_\bs_\bt is non-
+             zero, future calls to gettimeofday(2) will return a non-zero
+             `tz_dsttime'.
+
+     -\b-n\bn      The utility timed(8) is used to synchronize the clocks on groups
+             of machines.  By default, if timed is running, d\bda\bat\bte\be will set the
+             time on all of the machines in the local group.  The -\b-n\bn option
+             stops d\bda\bat\bte\be from setting the time for other than the current ma-
+             chine.
+
+     -\b-r\br      Print out the date and time in _\bs_\be_\bc_\bo_\bn_\bd_\bs from the Epoch.
+
+     -\b-t\bt      Set the kernel's value for minutes west of GMT. _\bM_\bi_\bn_\bu_\bt_\be_\bs_\b__\bw_\be_\bs_\bt
+             specifies the number of minutes returned in `tz_minuteswest' by
+             future calls to gettimeofday(2).
+
+     -\b-u\bu      Display or set the date in UCT (universal) time.
+
+     An operand with a leading plus (``+'') sign signals a user-defined format
+     string which specifies the format in which to display the date and time.
+     The format string may contain any of the conversion specifications de-
+     scribed in the strftime(3) manual page, as well as any arbitrary text.  A
+     <newline> character is always output after the characters specified by
+     the format string.  The format string for the default display is:
+
+           ``%a %b %e %H:%M:%S %Z %Y''.
+
+     If an operand does not have a leading plus sign, it is interpreted as a
+     value for setting the system's notion of the current date and time.  The
+     canonical representation for setting the date and time is:
+
+           _\by_\by      Year in abbreviated form (.e.g 89 for 1989).
+           _\bm_\bm      Numeric month.  A number from 1 to 12.
+           _\bd_\bd      Day, a number from 1 to 31.
+           _\bh_\bh      Hour, a number from 0 to 23.
+           _\bm_\bm      Minutes, a number from 0 to 59.
+           _\b._\bs_\bs     Seconds, a number from 0 to 61 (59 plus a a maximum of two
+                   leap seconds).
+
+     Everything but the minutes is optional.
+
+     Time changes for Daylight Saving and Standard time and leap seconds and
+     years are handled automatically.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+     The command:
+
+           date ``+DATE: %m/%d/%y%nTIME: %H:%M:%S''
+
+
+     will display:
+
+           DATE: 11/21/87
+           TIME: 13:36:16
+
+     The command:
+
+           date 8506131627
+
+     sets the date to ``June 13, 1985, 4:27 PM''.
+
+     The command:
+
+           date 1432
+
+     sets the time to 2:32 PM, without modifying the date.
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bTA\bAL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS
+     The following environment variables affect the execution of d\bda\bat\bte\be:
+
+     TZ
+       The timezone to use when displaying dates.  See environ(7) for more in-
+       formation.
+
+F\bFI\bIL\bLE\bES\bS
+     /var/log/wtmp      A record of date resets and time changes.
+     /var/log/messages  A record of the user setting the time.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     gettimeofday(2),  strftime(3),  utmp(5),  timed(8)
+
+     R. Gusella, and S. Zatti, _\bT_\bS_\bP_\b: _\bT_\bh_\be _\bT_\bi_\bm_\be _\bS_\by_\bn_\bc_\bh_\br_\bo_\bn_\bi_\bz_\ba_\bt_\bi_\bo_\bn _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\bo_\br _\bU_\bN_\bI_\bX
+     _\b4_\b._\b3_\bB_\bS_\bD.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+     Exit status is 0 on success, 1 if unable to set the date, and 2 if able
+     to set the local date, but unable to set it globally.
+
+     Occasionally, when timed synchronizes the time on many hosts, the setting
+     of a new time value may require more than a few seconds.  On these occa-
+     sions, d\bda\bat\bte\be prints: `Network time being set'. The message `Communication
+     error with timed' occurs when the communication between d\bda\bat\bte\be and timed
+     fails.
+
+B\bBU\bUG\bGS\bS
+     The system attempts to keep the date in a format closely compatible with
+     VMS. VMS, however, uses local time (rather than GMT) and does not under-
+     stand daylight-savings time.  Thus, if you use both UNIX and VMS, VMS
+     will be running on GMT.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The d\bda\bat\bte\be command is expected to be compatible with IEEE Std1003.2
+     (``POSIX'').
+
+4.4BSD                          April 28, 1995                               2
diff --git a/usr/share/man/cat1/dd.0 b/usr/share/man/cat1/dd.0
new file mode 100644 (file)
index 0000000..d1c937b
--- /dev/null
@@ -0,0 +1,185 @@
+DD(1)                        BSD Reference Manual                        DD(1)
+
+N\bNA\bAM\bME\bE
+     d\bdd\bd - convert and copy a file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     d\bdd\bd [operands ...]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The d\bdd\bd utility copies the standard input to the standard output.  Input
+     data is read and written in 512-byte blocks.  If input reads are short,
+     input from multiple reads are aggregated to form the output block.  When
+     finished, d\bdd\bd displays the number of complete and partial input and output
+     blocks and truncated input records to the standard error output.
+
+     The following operands are available:
+
+     b\bbs\bs=\b=_\bn     Set both input and output block size, superseding the i\bib\bbs\bs and
+              o\bob\bbs\bs operands.  If no conversion values other than n\bno\boe\ber\brr\bro\bor\br,
+              n\bno\bot\btr\bru\bun\bnc\bc or s\bsy\byn\bnc\bc are specified, then each input block is copied
+              to the output as a single block without any aggregation of short
+              blocks.
+
+     c\bcb\bbs\bs=\b=_\bn    Set the conversion record size to _\bn bytes.  The conversion
+              record size is required by the record oriented conversion val-
+              ues.
+
+     c\bco\bou\bun\bnt\bt=\b=_\bn  Copy only _\bn input blocks.
+
+     f\bfi\bil\ble\bes\bs=\b=_\bn  Copy _\bn input files before terminating.  This operand is only ap-
+              plicable when the input device is a tape.
+
+     i\bib\bbs\bs=\b=_\bn    Set the input block size to _\bn bytes instead of the default 512.
+
+     i\bif\bf=\b=_\bf_\bi_\bl_\be  Read input from _\bf_\bi_\bl_\be instead of the standard input.
+
+     o\bob\bbs\bs=\b=_\bn    Set the output block size to _\bn bytes instead of the default 512.
+
+     o\bof\bf=\b=_\bf_\bi_\bl_\be  Write output to _\bf_\bi_\bl_\be instead of the standard output.  Any regu-
+              lar output file is truncated unless the n\bno\bot\btr\bru\bun\bnc\bc conversion value
+              is specified.  If an initial portion of the output file is
+              skipped (see the s\bse\bee\bek\bk operand) the output file is truncated at
+              that point.
+
+     s\bse\bee\bek\bk=\b=_\bn   Seek _\bn blocks from the beginning of the output before copying.
+              On non-tape devices, a lseek(2) operation is used.  Otherwise,
+              existing blocks are read and the data discarded.  If the user
+              does not have read permission for the tape, it is positioned us-
+              ing the tape ioctl(2) function calls.  If the seek operation is
+              past the end of file, space from the current end of file to the
+              specified offset is filled with blocks of NUL bytes.
+
+     s\bsk\bki\bip\bp=\b=_\bn   Skip _\bn blocks from the beginning of the input before copying.
+              On input which supports seeks, a lseek(2) operation is used.
+              Otherwise, input data is read and discarded.  For pipes, the
+              correct number of bytes is read.  For all other devices, the
+              correct number of blocks is read without distinguishing between
+              a partial or complete block being read.
+
+     c\bco\bon\bnv\bv=\b= v\bva\bal\blu\bue\be[, v\bva\bal\blu\bue\be .\b..\b..\b.]
+              Where v\bva\bal\blu\bue\be is one of the symbols from the following list.
+
+              a\bas\bsc\bci\bii\bi, o\bol\bld\bda\bas\bsc\bci\bii\bi
+                       The same as the u\bun\bnb\bbl\blo\boc\bck\bk value except that characters
+                       are translated from ECBDIC to ASCII before the records
+                       are converted.  (These values imply u\bun\bnb\bbl\blo\boc\bck\bk if the
+                       operand c\bcb\bbs\bs is also specified.)  There are two conver-
+                       sion maps for ASCII. The value a\bas\bsc\bci\bii\bi specifies the rec-
+                       ommended one which is compatible with System V.  The
+                       value o\bol\bld\bda\bas\bsc\bci\bii\bi specifies the one used in historic AT&T
+                       and pre-4.3BSD-reno systems.
+
+              b\bbl\blo\boc\bck\bk    Treats the input as a sequence of newline or end-of-
+                       file terminated variable length records independent of
+                       input and output block boundaries.  Any trailing new-
+                       line character is discarded.  Each input record is con-
+                       verted to a fixed length output record where the length
+                       is specified by the c\bcb\bbs\bs operand.  Input records shorter
+                       than the conversion record size are padded with spaces.
+                       Input records longer than the conversion record size
+                       are truncated.  The number of truncated input records,
+                       if any, are reported to the standard error output at
+                       the completion of the copy.
+
+              e\beb\bbc\bcd\bdi\bic\bc, i\bib\bbm\bm, o\bol\bld\bde\beb\bbc\bcd\bdi\bic\bc, o\bol\bld\bdi\bib\bbm\bm
+                       The same as the b\bbl\blo\boc\bck\bk value except that characters are
+                       translated from ASCII to EBCDIC after the records are
+                       converted.  (These values imply b\bbl\blo\boc\bck\bk if the operand
+                       c\bcb\bbs\bs is also specified.)  There are four conversion maps
+                       for EBCDIC. The value e\beb\bbc\bcd\bdi\bic\bc specifies the recommended
+                       one which is compatible with AT&T System V UNIX.  The
+                       value i\bib\bbm\bm is a slightly different mapping, which is
+                       compatible with the AT&T System V UNIX i\bib\bbm\bm value.  The
+                       values o\bol\bld\bde\beb\bbc\bcd\bdi\bic\bc and o\bol\bld\bdi\bib\bbm\bm are maps used in historic
+                       AT&T and pre-4.3BSD-reno systems.
+
+              l\blc\bca\bas\bse\be    Transform uppercase characters into lowercase charac-
+                       ters.
+
+              n\bno\boe\ber\brr\bro\bor\br  Do not stop processing on an input error.  When an in-
+                       put error occurs, a diagnostic message followed by the
+                       current input and output block counts will be written
+                       to the standard error output in the same format as the
+                       standard completion message.  If the s\bsy\byn\bnc\bc conversion is
+                       also specified, any missing input data will be replaced
+                       with NUL bytes (or with spaces if a block oriented con-
+                       version value was specified) and processed as a normal
+                       input buffer.  If the s\bsy\byn\bnc\bc conversion is not specified,
+                       the input block is omitted from the output.  On input
+                       files which are not tapes or pipes, the file offset
+                       will be positioned past the block in which the error
+                       occurred using lseek(2).
+
+              n\bno\bot\btr\bru\bun\bnc\bc  Do not truncate the output file.  This will preserve
+                       any blocks in the output file not explicitly written by
+                       d\bdd\bd. The n\bno\bot\btr\bru\bun\bnc\bc value is not supported for tapes.
+
+              o\bos\bsy\byn\bnc\bc    Pad the final output block to the full output block
+                       size.  If the input file is not a multiple of the out-
+                       put block size after conversion, this conversion forces
+                       the final output block to be the same size as preceding
+                       blocks for use on devices that require regularly sized
+                       blocks to be written.  This option is incompatible with
+                       use of the b\bbs\bs=\b=_\bn block size specification.
+
+              s\bsw\bwa\bab\bb     Swap every pair of input bytes.  If an input buffer has
+                       an odd number of bytes, the last byte will be ignored
+                       during swapping.
+
+              s\bsy\byn\bnc\bc     Pad every input block to the input buffer size.  Spaces
+                       are used for pad bytes if a block oriented conversion
+
+                       value is specified, otherwise NUL bytes are used.
+
+              u\buc\bca\bas\bse\be    Transform lowercase characters into uppercase charac-
+                       ters.
+
+              u\bun\bnb\bbl\blo\boc\bck\bk  Treats the input as a sequence of fixed length records
+                       independent of input and output block boundaries.  The
+                       length of the input records is specified by the c\bcb\bbs\bs
+                       operand.  Any trailing space characters are discarded
+                       and a newline character is appended.
+
+     Where sizes are specified, a decimal number of bytes is expected.  If the
+     number ends with a ``b'', ``k'', ``m'' or ``w'', the number is multiplied
+     by 512, 1024 (1K), 1048576 (1M) or the number of bytes in an integer, re-
+     spectively.  Two or more numbers may be separated by an ``x'' to indicate
+     a product.
+
+     When finished, d\bdd\bd displays the number of complete and partial input and
+     output blocks, truncated input records and odd-length byte-swapping
+     blocks to the standard error output.  A partial input block is one where
+     less than the input block size was read.  A partial output block is one
+     where less than the output block size was written.  Partial output blocks
+     to tape devices are considered fatal errors.  Otherwise, the rest of the
+     block will be written.  Partial output blocks to character devices will
+     produce a warning message.  A truncated input block is one where a vari-
+     able length record oriented conversion value was specified and the input
+     line was too long to fit in the conversion record or was not newline ter-
+     minated.
+
+     Normally, data resulting from input or conversion or both are aggregated
+     into output blocks of the specified size.  After the end of input is
+     reached, any remaining output is written as a block.  This means that the
+     final output block may be shorter than the output block size.
+
+     If d\bdd\bd receives a SIGINFO (see the ``status'' argument for stty(1))  sig-
+     nal, the current input and output block counts will be written to the
+     standard error output in the same format as the standard completion mes-
+     sage.  If d\bdd\bd receives a SIGINT signal, the current input and output block
+     counts will be written to the standard error output in the same format as
+     the standard completion message and d\bdd\bd will exit.
+
+     The d\bdd\bd utility exits 0 on success and >0 if an error occurred.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     cp(1),  mt(1),  tr(1)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The d\bdd\bd utility is expected to be a superset of the IEEE Std1003.2
+     (``POSIX'') standard.  The f\bfi\bil\ble\bes\bs operand and the a\bas\bsc\bci\bii\bi, e\beb\bbc\bcd\bdi\bic\bc, i\bib\bbm\bm,
+     o\bol\bld\bda\bas\bsc\bci\bii\bi, o\bol\bld\bde\beb\bbc\bcd\bdi\bic\bc and o\bol\bld\bdi\bib\bbm\bm values are extensions to the POSIX stan-
+     dard.
+
+4.4BSD                         January 13, 1994                              3
diff --git a/usr/share/man/cat1/df.0 b/usr/share/man/cat1/df.0
new file mode 100644 (file)
index 0000000..41706c0
--- /dev/null
@@ -0,0 +1,56 @@
+DF(1)                        BSD Reference Manual                        DF(1)
+
+N\bNA\bAM\bME\bE
+     d\bdf\bf - display free disk space
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     d\bdf\bf [-\b-i\bin\bn] [-\b-t\bt _\bt_\by_\bp_\be] [_\bf_\bi_\bl_\be | _\bf_\bi_\bl_\be_\bs_\by_\bs_\bt_\be_\bm _\b._\b._\b.]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     D\bDf\bf displays statistics about the amount of free disk space on the speci-
+     fied _\bf_\bi_\bl_\be_\bs_\by_\bs_\bt_\be_\bm or on the filesystem of which _\bf_\bi_\bl_\be is a part.  Values are
+     displayed in 512-byte per block block counts.  If neither a file or a
+     filesystem operand is specified, statistics for all mounted filesystems
+     are displayed (subject to the -\b-t\bt option below).
+
+     The following options are available:
+
+     -\b-i\bi      Include statistics on the number of free inodes.
+
+     -\b-n\bn      Print out the previously obtained statistics from the filesys-
+             tems.  This option should be used if it is possible that one or
+             more filesystems are in a state such that they will not be able
+             to provide statistics without a long delay.  When this option is
+             specified, d\bdf\bf will not request new statistics from the filesys-
+             tems, but will respond with the possibly stale statistics that
+             were previously obtained.
+
+     -\b-t\bt      Only print out statistics for filesystems of the specified types.
+             More than one type may be specified in a comma separated list.
+             The list of filesystem types can be prefixed with ``no'' to spec-
+             ify the filesystem types for which action should _\bn_\bo_\bt be taken.
+             For example, the d\bdf\bf command:
+
+                   df -t nonfs,mfs
+
+             lists all filesystems except those of type NFS and MFS. The
+             sysctl(8) command can be used to find out the types of filesys-
+             tems that are available on the system:
+
+                   sysctl vfs
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bTA\bAL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS
+     BLOCKSIZE  If the environmental variable BLOCKSIZE is set, the block
+                counts will be displayed in units of that size block.
+
+B\bBU\bUG\bGS\bS
+     The -\b-n\bn and -\b-t\bt flags are ignored if a file or filesystem is specified.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     quota(1),  statfs(2),  fstatfs(2),  getfsstat(2),  getmntinfo(3),
+     fstab(5),  mount(8),  quot(8),  sysctl(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     A d\bdf\bf command appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution         May 8, 1995                                1
diff --git a/usr/share/man/cat1/dirs.0 b/usr/share/man/cat1/dirs.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/echo.0 b/usr/share/man/cat1/echo.0
new file mode 100644 (file)
index 0000000..6c671fc
--- /dev/null
@@ -0,0 +1,26 @@
+ECHO(1)                      BSD Reference Manual                      ECHO(1)
+
+N\bNA\bAM\bME\bE
+     e\bec\bch\bho\bo - write arguments to the standard output
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     e\bec\bch\bho\bo [-\b-n\bn] [string ...]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The e\bec\bch\bho\bo utility writes any specified operands, separated by single blank
+     (`` '') characters and followed by a newline (``\n'') character, to the
+     standard output.
+
+     The following option is available:
+
+     -\b-n\bn    Do not print the trailing newline character.
+
+     The e\bec\bch\bho\bo utility exits 0 on success, and >0 if an error occurs.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     printf(1)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The e\bec\bch\bho\bo utility is expected to be IEEE Std1003.2 (``POSIX'') compatible.
+
+4.4BSD                           July 22, 1993                               1
diff --git a/usr/share/man/cat1/fg.0 b/usr/share/man/cat1/fg.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/foreach.0 b/usr/share/man/cat1/foreach.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/history.0 b/usr/share/man/cat1/history.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/hostname.0 b/usr/share/man/cat1/hostname.0
new file mode 100644 (file)
index 0000000..f832172
--- /dev/null
@@ -0,0 +1,24 @@
+HOSTNAME(1)                  BSD Reference Manual                  HOSTNAME(1)
+
+N\bNA\bAM\bME\bE
+     h\bho\bos\bst\btn\bna\bam\bme\be - set or print name of current host system
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     h\bho\bos\bst\btn\bna\bam\bme\be [-\b-s\bs] [_\bn_\ba_\bm_\be_\b-_\bo_\bf_\b-_\bh_\bo_\bs_\bt]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     H\bHo\bos\bst\btn\bna\bam\bme\be prints the name of the current host.  The super-user can set the
+     hostname by supplying an argument; this is usually done in the network
+     initialization script _\b/_\be_\bt_\bc_\b/_\bn_\be_\bt_\bs_\bt_\ba_\br_\bt, normally run at boot time.
+
+     Options:
+
+     -\b-s\bs    Trims off any domain information from the printed name.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     gethostname(2),  sethostname(2)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The h\bho\bos\bst\btn\bna\bam\bme\be command appeared in 4.2BSD.
+
+4.2 Berkeley Distribution       April 28, 1995                               1
diff --git a/usr/share/man/cat1/jobs.0 b/usr/share/man/cat1/jobs.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/kill.0 b/usr/share/man/cat1/kill.0
new file mode 100644 (file)
index 0000000..92b9a8d
--- /dev/null
@@ -0,0 +1,66 @@
+KILL(1)                      BSD Reference Manual                      KILL(1)
+
+N\bNA\bAM\bME\bE
+     k\bki\bil\bll\bl - terminate or signal a process
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bn_\ba_\bl_\b__\bn_\ba_\bm_\be] _\bp_\bi_\bd ...
+     k\bki\bil\bll\bl -\b-l\bl [_\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
+     k\bki\bil\bll\bl -\b-s\bsi\big\bgn\bna\bal\bl_\b_n\bna\bam\bme\be _\bp_\bi_\bd ...
+     k\bki\bil\bll\bl -\b-s\bsi\big\bgn\bna\bal\bl_\b_n\bnu\bum\bmb\bbe\ber\br _\bp_\bi_\bd ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The kill utility sends a signal to the processes specified by the pid
+     operand(s).
+
+     Only the super-user may send signals to other users' processes.
+
+     The options are as follows:
+
+     -\b-s\bs _\bs_\bi_\bg_\bn_\ba_\bl_\b__\bn_\ba_\bm_\be
+             A symbolic signal name specifying the signal to be sent instead
+             of the default TERM.
+
+     -\b-l\bl [_\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
+             If no operand is given, list the signal names; otherwise, write
+             the signal name corresponding to _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs.
+
+     -\b-s\bsi\big\bgn\bna\bal\bl_\b_n\bna\bam\bme\be
+             A symbolic signal name specifying the signal to be sent instead
+             of the default TERM.
+
+     -\b-s\bsi\big\bgn\bna\bal\bl_\b_n\bnu\bum\bmb\bbe\ber\br
+             A non-negative decimal integer, specifying the signal to be sent
+             instead of the default TERM.
+
+     The following pids have special meanings:
+     -1      If superuser, broadcast the signal to all processes; otherwise
+             broadcast to all processes belonging to the user.
+
+     Some of the more commonly used signals:
+     1       HUP (hang up)
+     2       INT (interrupt)
+     3       QUIT (quit)
+     6       ABRT (abort)
+     9       KILL (non-catchable, non-ignorable kill)
+     14      ALRM (alarm clock)
+     15      TERM (software termination signal)
+
+     K\bKi\bil\bll\bl is a built-in to csh(1);  it allows job specifiers of the form
+     ``%...'' as arguments so process id's are not as often used as k\bki\bil\bll\bl argu-
+     ments.  See csh(1) for details.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     csh(1),  ps(1),  kill(2),  sigvec(2)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The k\bki\bil\bll\bl function is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     A k\bki\bil\bll\bl command appeared in Version 6 AT&T UNIX.
+
+B\bBU\bUG\bGS\bS
+     A replacement for the command ``kill 0'' for csh(1) users should be pro-
+     vided.
+
diff --git a/usr/share/man/cat1/limit.0 b/usr/share/man/cat1/limit.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/ln.0 b/usr/share/man/cat1/ln.0
new file mode 100644 (file)
index 0000000..934bc2c
--- /dev/null
@@ -0,0 +1,52 @@
+LN(1)                        BSD Reference Manual                        LN(1)
+
+N\bNA\bAM\bME\bE
+     l\bln\bn - make links
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     l\bln\bn [-\b-f\bfs\bs] _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be [target_file]
+     l\bln\bn [-\b-f\bfs\bs] _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be _\b._\b._\b. [target_dir]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The l\bln\bn utility creates a new directory entry (linked file) which has the
+     same modes as the original file.  It is useful for maintaining multiple
+     copies of a file in many places at once without using up storage for the
+     ``copies''; instead, a link ``points'' to the original copy.  There are
+     two types of links; hard links and symbolic links.  How a link ``points''
+     to a file is one of the differences between a hard or symbolic link.
+
+     The options are as follows:
+
+     -\b-f\bf    Unlink any already existing file, permitting the link to occur.
+
+     -\b-s\bs    Create a symbolic link.
+
+     By default l\bln\bn makes _\bh_\ba_\br_\bd links.  A hard link to a file is indistinguish-
+     able from the original directory entry; any changes to a file are effec-
+     tive independent of the name used to reference the file.  Hard links may
+     not normally refer to directories and may not span file systems.
+
+     A symbolic link contains the name of the file to which it is linked.  The
+     referenced file is used when an open(2) operation is performed on the
+     link.  A stat(2) on a symbolic link will return the linked-to file; an
+     lstat(2) must be done to obtain information about the link.  The read-
+     link(2) call may be used to read the contents of a symbolic link.  Sym-
+     bolic links may span file systems and may refer to directories.
+
+     Given one or two arguments, l\bln\bn creates a link to an existing file
+     _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be. If _\bt_\ba_\br_\bg_\be_\bt_\b__\bf_\bi_\bl_\be is given, the link has that name; _\bt_\ba_\br_\bg_\be_\bt_\b__\bf_\bi_\bl_\be
+     may also be a directory in which to place the link; otherwise it is
+     placed in the current directory.  If only the directory is specified, the
+     link will be made to the last component of _\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be.
+
+     Given more than two arguments, l\bln\bn makes links in _\bt_\ba_\br_\bg_\be_\bt_\b__\bd_\bi_\br to all the
+     named source files.  The links made will have the same name as the files
+     being linked to.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     link(2),  lstat(2),  readlink(2),  stat(2),  symlink(2),  symlink(7)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     A l\bln\bn command appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution      December 30, 1993                             1
diff --git a/usr/share/man/cat1/ls.0 b/usr/share/man/cat1/ls.0
new file mode 100644 (file)
index 0000000..63fd4b3
--- /dev/null
@@ -0,0 +1,198 @@
+LS(1)                        BSD Reference Manual                        LS(1)
+
+N\bNA\bAM\bME\bE
+     l\bls\bs - list directory contents
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     l\bls\bs [-\b-A\bAC\bCF\bFL\bLR\bRT\bTW\bWa\bac\bcd\bdf\bfi\bil\blo\boq\bqr\brs\bst\btu\bu1\b1] [_\bf_\bi_\bl_\be _\b._\b._\b.]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     For each operand that names a _\bf_\bi_\bl_\be of a type other than directory, l\bls\bs
+     displays its name as well as any requested, associated information.  For
+     each operand that names a _\bf_\bi_\bl_\be of type directory, l\bls\bs displays the names
+     of files contained within that directory, as well as any requested, asso-
+     ciated information.
+
+     If no operands are given, the contents of the current directory are dis-
+     played.  If more than one operand is given, non-directory operands are
+     displayed first; directory and non-directory operands are sorted sepa-
+     rately and in lexicographical order.
+
+     The following options are available:
+
+     -\b-A\bA      List all entries except for `.' and `..'. Always set for the su-
+             per-user.
+
+     -\b-C\bC      Force multi-column output; this is the default when output is to
+             a terminal.
+
+     -\b-F\bF      Display a slash (/) immediately after each pathname that is a di-
+             rectory, an asterisk (*) after each that is executable, an at
+             sign (@) after each symbolic link, and a percent sign (%) after
+             each whiteout.
+
+     -\b-L\bL      If argument is a symbolic link, list the file or directory the
+             link references rather than the link itself.
+
+     -\b-R\bR      Recursively list subdirectories encountered.
+
+     -\b-T\bT      Display complete time information for the file, including month,
+             day, hour, minute, second, and year.
+
+     -\b-W\bW      Display whiteouts when scanning directories.
+
+     -\b-a\ba      Include directory entries whose names begin with a dot (.).
+
+     -\b-c\bc      Use time when file status was last changed for sorting or print-
+             ing.
+
+     -\b-d\bd      Directories are listed as plain files (not searched recursively)
+             and symbolic links in the argument list are not indirected
+             through.
+
+     -\b-f\bf      Output is not sorted.
+
+     -\b-i\bi      For each file, print the file's file serial number (inode num-
+             ber).
+
+     -\b-l\bl      (The lowercase letter ``ell.'')  List in long format. (See be-
+             low.)  If the output is to a terminal, a total sum for all the
+             file sizes is output on a line before the long listing.
+
+     -\b-o\bo      Include the file flags in a long (-\b-l\bl) output
+
+     -\b-q\bq      Force printing of non-graphic characters in file names as the
+             character `?'; this is the default when output is to a terminal.
+
+
+     -\b-r\br      Reverse the order of the sort to get reverse lexicographical or-
+             der or the oldest entries first.
+
+     -\b-s\bs      Display the number of file system blocks actually used by each
+             file, in units of 512 bytes, where partial units are rounded up
+             to the next integer value.  If the output is to a terminal, a to-
+             tal sum for all the file sizes is output on a line before the
+             listing.
+
+     -\b-t\bt      Sort by time modified (most recently modified first) before sort-
+             ing the operands by lexicographical order.
+
+     -\b-u\bu      Use time of last access, instead of last modification of the file
+             for sorting (-\b-t\bt) or printing (-\b-l\bl).
+
+     -\b-1\b1      (The numeric digit ``one.'')  Force output to be one entry per
+             line.  This is the default when output is not to a terminal.
+
+     The -\b-1\b1, -\b-C\bC, and -\b-l\bl options all override each other; the last one speci-
+     fied determines the format used.
+
+     The -\b-c\bc, and -\b-u\bu options override each other; the last one specified deter-
+     mines the file time used.
+
+     By default, l\bls\bs lists one entry per line to standard output; the excep-
+     tions are to terminals or when the -\b-C\bC option is specified.
+
+     File information is displayed with one or more <blank>s separating the
+     information associated with the -\b-i\bi, -\b-s\bs, and -\b-l\bl options.
+
+   T\bTh\bhe\be L\bLo\bon\bng\bg F\bFo\bor\brm\bma\bat\bt
+     If the -\b-l\bl option is given, the following information is displayed for
+     each file: file mode, number of links, owner name, group name, number of
+     bytes in the file, abbreviated month, day-of-month file was last modi-
+     fied, hour file last modified, minute file last modified, and the path-
+     name.  In addition, for each directory whose contents are displayed, the
+     total number of 512-byte blocks used by the files in the directory is
+     displayed on a line by itself immediately before the information for the
+     files in the directory.
+
+     If the owner or group names are not a known user or group name the numer-
+     ic ID's are displayed.
+
+     If the file is a character special or block special file, the major and
+     minor device numbers for the file are displayed in the size field. If the
+     file is a symbolic link the pathname of the linked-to file is preceded by
+     ``->''.
+
+     The file mode printed under the -l option consists of the entry type,
+     owner permissions, and group permissions.  The entry type character de-
+     scribes the type of file, as follows:
+
+           b\bb     Block special file.
+           c\bc     Character special file.
+           d\bd     Directory.
+           l\bl     Symbolic link.
+           s\bs     Socket link.
+           w\bw     Whiteout.
+           -\b-     Regular file.
+
+     The next three fields are three characters each: owner permissions, group
+     permissions, and other permissions.  Each field has three character posi-
+
+
+     tions:
+
+           1.   If r\br, the file is readable; if -\b-, it is not readable.
+
+           2.   If w\bw, the file is writable; if -\b-, it is not writable.
+
+           3.   The first of the following that applies:
+
+                      S\bS     If in the owner permissions, the file is not exe-
+                            cutable and set-user-ID mode is set.  If in the
+                            group permissions, the file is not executable and
+                            set-group-ID mode is set.
+
+                      s\bs     If in the owner permissions, the file is exe-
+                            cutable and set-user-ID mode is set.  If in the
+                            group permissions, the file is executable and set-
+                            group-ID mode is set.
+
+                      x\bx     The file is executable or the directory is search-
+                            able.
+
+                      -\b-     The file is neither readable, writeable, exe-
+                            cutable, nor set-user-ID nor set-group-ID mode,
+                            nor sticky. (See below.)
+
+                These next two apply only to the third character in the last
+                group (other permissions).
+
+                      T\bT     The sticky bit is set (mode 1000), but not execute
+                            or search permission. (See chmod(1) or sticky(8).)
+
+
+                      t\bt     The sticky bit is set (mode 1000), and is search-
+                            able or executable.  (See chmod(1) or sticky(8).)
+
+     The l\bls\bs utility exits 0 on success, and >0 if an error occurs.
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bTA\bAL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS
+     The following environment variables affect the execution of l\bls\bs:
+
+     BLOCKSIZE  If the environmental variable BLOCKSIZE is set, the block
+                counts (see -\b-s\bs) will be displayed in units of that size block.
+
+     COLUMNS    If this variable contains a string representing a decimal in-
+                teger, it is used as the column position width for displaying
+                multiple-text-column output.  The l\bls\bs utility calculates how
+                many pathname text columns to display based on the width pro-
+                vided.  (See -\b-C\bC.)
+
+     TZ         The timezone to use when displaying dates.  See environ(7) for
+                more information.
+
+C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY
+     The group field is now automatically included in the long listing for
+     files in order to be compatible with the IEEE Std1003.2 (``POSIX'') spec-
+     ification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     chmod(1),  symlink(7),  sticky(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     An l\bls\bs command appeared in Version 6 AT&T UNIX.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The l\bls\bs function is expected to be a superset of the IEEE Std1003.2
+     (``POSIX'') specification.
+
diff --git a/usr/share/man/cat1/mkdir.0 b/usr/share/man/cat1/mkdir.0
new file mode 100644 (file)
index 0000000..bafeb7f
--- /dev/null
@@ -0,0 +1,38 @@
+MKDIR(1)                     BSD Reference Manual                     MKDIR(1)
+
+N\bNA\bAM\bME\bE
+     m\bmk\bkd\bdi\bir\br - make directories
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     m\bmk\bkd\bdi\bir\br [-\b-p\bp] [-\b-m\bm _\bm_\bo_\bd_\be] _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by_\b__\bn_\ba_\bm_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     M\bMk\bkd\bdi\bir\br creates the directories named as operands, in the order specified,
+     using mode rwxrwxrwx (0777) as modified by the current umask(2).
+
+     The options are as follows:
+
+     -\b-m\bm      Set the file permission bits of the final created directory to
+             the specified mode.  The mode argument can be in any of the for-
+             mats specified to the chmod(1) command.  If a symbolic mode is
+             specified, the operation characters ``+'' and ``-'' are inter-
+             preted relative to an initial mode of ``a=rwx''.
+
+     -\b-p\bp      Create intermediate directories as required.  If this option is
+             not specified, the full path prefix of each operand must already
+             exist.  Intermediate directories are created with permission bits
+             of rwxrwxrwx (0777) as modified by the current umask, plus write
+             and search permission for the owner.
+
+     The user must have write permission in the parent directory.
+
+     M\bMk\bkd\bdi\bir\br exits 0 if successful, and >0 if an error occurred.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     rmdir(1)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The m\bmk\bkd\bdi\bir\br utility is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+4.4BSD                         January 25, 1994                              1
diff --git a/usr/share/man/cat1/mv.0 b/usr/share/man/cat1/mv.0
new file mode 100644 (file)
index 0000000..0b5564a
--- /dev/null
@@ -0,0 +1,53 @@
+MV(1)                        BSD Reference Manual                        MV(1)
+
+N\bNA\bAM\bME\bE
+     m\bmv\bv - move files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     m\bmv\bv [-\b-f\bf | -\b-i\bi] _\bs_\bo_\bu_\br_\bc_\be _\bt_\ba_\br_\bg_\be_\bt
+     m\bmv\bv [-\b-f\bf | -\b-i\bi] _\bs_\bo_\bu_\br_\bc_\be _\b._\b._\b. _\bs_\bo_\bu_\br_\bc_\be _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     In its first form, the m\bmv\bv utility renames the file named by the _\bs_\bo_\bu_\br_\bc_\be
+     operand to the destination path named by the _\bt_\ba_\br_\bg_\be_\bt operand.  This form
+     is assumed when the last operand does not name an already existing direc-
+     tory.
+
+     In its second form, m\bmv\bv moves each file named by a _\bs_\bo_\bu_\br_\bc_\be operand to a
+     destination file in the existing directory named by the _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+     operand.  The destination path for each operand is the pathname produced
+     by the concatenation of the last operand, a slash, and the final pathname
+     component of the named file.
+
+     The following options are available:
+
+     -\b-f\bf    Do not prompt for confirmation before overwriting the destination
+           path.  (The -\b-i\bi option is ignored if the -\b-f\bf option is specified.)
+
+     -\b-i\bi    Causes m\bmv\bv to write a prompt to standard error before moving a file
+           that would overwrite an existing file.  If the response from the
+           standard input begins with the character ``y'', the move is at-
+           tempted.
+
+     It is an error for either the _\bs_\bo_\bu_\br_\bc_\be operand or the destination path to
+     specify a directory unless both do.
+
+     If the destination path does not have a mode which permits writing, m\bmv\bv
+     prompts the user for confirmation as specified for the -\b-i\bi option.
+
+     As the rename(2) call does not work across file systems, m\bmv\bv uses cp(1)
+     and rm(1) to accomplish the move.  The effect is equivalent to:
+
+           rm -f destination_path && \
+           cp -pr source_file destination && \
+           rm -rf source_file
+
+     The m\bmv\bv utility exits 0 on success, and >0 if an error occurs.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     cp(1),  symlink(7)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The m\bmv\bv utility is expected to be IEEE Std1003.2 (``POSIX'') compatible.
+
+4.4BSD                           May 31, 1993                                1
diff --git a/usr/share/man/cat1/pax.0 b/usr/share/man/cat1/pax.0
new file mode 100644 (file)
index 0000000..f5ebe3b
--- /dev/null
@@ -0,0 +1,545 @@
+PAX(1)                       BSD Reference Manual                       PAX(1)
+
+N\bNA\bAM\bME\bE
+     p\bpa\bax\bx - read and write file archives and copy directory hierarchies
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     p\bpa\bax\bx [-\b-c\bcd\bdn\bnv\bv] [-\b-f\bf _\ba_\br_\bc_\bh_\bi_\bv_\be] [-\b-s\bs _\br_\be_\bp_\bl_\bs_\bt_\br] _\b._\b._\b. [-\b-U\bU _\bu_\bs_\be_\br] _\b._\b._\b. [-\b-G\bG _\bg_\br_\bo_\bu_\bp] _\b._\b._\b.
+         [-\b-T\bT [_\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be] [_\b,_\bt_\bo_\b__\bd_\ba_\bt_\be]] _\b._\b._\b. [_\bp_\ba_\bt_\bt_\be_\br_\bn _\b._\b._\b.]
+     p\bpa\bax\bx -\b-r\br [-\b-c\bcd\bdi\bik\bkn\bnu\buv\bvD\bDY\bYZ\bZ] [-\b-f\bf _\ba_\br_\bc_\bh_\bi_\bv_\be] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\bs] _\b._\b._\b. [-\b-p\bp _\bs_\bt_\br_\bi_\bn_\bg] _\b._\b._\b.
+         [-\b-s\bs _\br_\be_\bp_\bl_\bs_\bt_\br] _\b._\b._\b. [-\b-E\bE _\bl_\bi_\bm_\bi_\bt] [-\b-U\bU _\bu_\bs_\be_\br] _\b._\b._\b. [-\b-G\bG _\bg_\br_\bo_\bu_\bp] _\b._\b._\b. [-\b-T\bT
+         [_\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be] [_\b,_\bt_\bo_\b__\bd_\ba_\bt_\be]] _\b._\b._\b. [_\bp_\ba_\bt_\bt_\be_\br_\bn _\b._\b._\b.]
+     p\bpa\bax\bx -\b-w\bw [-\b-d\bdi\bit\btu\buv\bvH\bHL\bLP\bPX\bX] [-\b-b\bb _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be] [[-\b-a\ba] [-\b-f\bf _\ba_\br_\bc_\bh_\bi_\bv_\be]] [-\b-x\bx _\bf_\bo_\br_\bm_\ba_\bt]
+         [-\b-s\bs _\br_\be_\bp_\bl_\bs_\bt_\br] _\b._\b._\b. [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\bs] _\b._\b._\b. [-\b-U\bU _\bu_\bs_\be_\br] _\b._\b._\b. [-\b-G\bG _\bg_\br_\bo_\bu_\bp] _\b._\b._\b.
+         [-\b-B\bB _\bb_\by_\bt_\be_\bs] [-\b-T\bT [_\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be] [_\b,_\bt_\bo_\b__\bd_\ba_\bt_\be] [_\b/_\b[_\bc_\b]_\b[_\bm_\b]]] _\b._\b._\b. [_\bf_\bi_\bl_\be _\b._\b._\b.]
+     p\bpa\bax\bx -\b-r\br -\b-w\bw [-\b-d\bdi\bik\bkl\bln\bnt\btu\buv\bvD\bDH\bHL\bLP\bPX\bXY\bYZ\bZ] [-\b-p\bp _\bs_\bt_\br_\bi_\bn_\bg] _\b._\b._\b. [-\b-s\bs _\br_\be_\bp_\bl_\bs_\bt_\br] _\b._\b._\b. [-\b-U\bU _\bu_\bs_\be_\br]
+         _\b._\b._\b. [-\b-G\bG _\bg_\br_\bo_\bu_\bp] _\b._\b._\b. [-\b-T\bT [_\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be] [_\b,_\bt_\bo_\b__\bd_\ba_\bt_\be] [_\b/_\b[_\bc_\b]_\b[_\bm_\b]]] _\b._\b._\b. [_\bf_\bi_\bl_\be
+         _\b._\b._\b.] _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     P\bPa\bax\bx will read, write, and list the members of an archive file, and will
+     copy directory hierarchies.  P\bPa\bax\bx operation is independent of the specific
+     archive format, and supports a wide variety of different archive formats.
+     A list of supported archive formats can be found under the description of
+     the -\b-x\bx option.
+
+     The presence of the -\b-r\br and the -\b-w\bw options specifies which of the follow-
+     ing functional modes p\bpa\bax\bx will operate under: _\bl_\bi_\bs_\bt, _\br_\be_\ba_\bd, _\bw_\br_\bi_\bt_\be, and _\bc_\bo_\bp_\by_\b.
+
+     <none>  _\bL_\bi_\bs_\bt. P\bPa\bax\bx will write to standard output a table of contents of
+             the members of the archive file read from standard input, whose
+             pathnames match the specified _\bp_\ba_\bt_\bt_\be_\br_\bn_\bs_\b. The table of contents
+             contains one filename per line and is written using single line
+             buffering.
+
+     -\b-r\br      _\bR_\be_\ba_\bd. P\bPa\bax\bx extracts the members of the archive file read from the
+             standard input, with pathnames matching the specified _\bp_\ba_\bt_\bt_\be_\br_\bn_\bs_\b.
+             The archive format and blocking is automatically determined on
+             input.  When an extracted file is a directory, the entire file
+             hierarchy rooted at that directory is extracted.  All extracted
+             files are created relative to the current file hierarchy.  The
+             setting of ownership, access and modification times, and file
+             mode of the extracted files are discussed in more detail under
+             the -\b-p\bp option.
+
+     -\b-w\bw      _\bW_\br_\bi_\bt_\be. P\bPa\bax\bx writes an archive containing the _\bf_\bi_\bl_\be operands to
+             standard output using the specified archive format.  When no _\bf_\bi_\bl_\be
+             operands are specified, a list of files to copy with one per line
+             is read from standard input. When a _\bf_\bi_\bl_\be operand is also a direc-
+             tory, the entire file hierarchy rooted at that directory will be
+             included.
+
+     -\b-r\br -\b-w\bw   _\bC_\bo_\bp_\by. P\bPa\bax\bx copies the _\bf_\bi_\bl_\be operands to the destination _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by.
+             When no _\bf_\bi_\bl_\be operands are specified, a list of files to copy with
+             one per line is read from the standard input. When a _\bf_\bi_\bl_\be operand
+             is also a directory the entire file hierarchy rooted at that di-
+             rectory will be included.  The effect of the _\bc_\bo_\bp_\by is as if the
+             copied files were written to an archive file and then subsequent-
+             ly extracted, except that there may be hard links between the
+             original and the copied files (see the -\b-l\bl option below).
+
+             _\bW_\ba_\br_\bn_\bi_\bn_\bg: The destination _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by must not be one of the _\bf_\bi_\bl_\be
+             operands or a member of a file hierarchy rooted at one of the
+             _\bf_\bi_\bl_\be operands.  The result of a _\bc_\bo_\bp_\by under these conditions is
+             unpredictable.
+
+
+     While processing a damaged archive during a _\br_\be_\ba_\bd or _\bl_\bi_\bs_\bt operation, p\bpa\bax\bx
+     will attempt to recover from media defects and will search through the
+     archive to locate and process the largest number of archive members pos-
+     sible (see the -\b-E\bE option for more details on error handling).
+
+O\bOP\bPE\bER\bRA\bAN\bND\bDS\bS
+     The _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by operand specifies a destination directory pathname.  If the
+     _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by operand does not exist, or it is not writable by the user, or
+     it is not of type directory, P\bPa\bax\bx will exit with a non-zero exit status.
+
+     The _\bp_\ba_\bt_\bt_\be_\br_\bn operand is used to select one or more pathnames of archive
+     members.  Archive members are selected using the pattern matching nota-
+     tion described by fnmatch(3).  When the _\bp_\ba_\bt_\bt_\be_\br_\bn operand is not supplied,
+     all members of the archive will be selected.  When a _\bp_\ba_\bt_\bt_\be_\br_\bn matches a
+     directory, the entire file hierarchy rooted at that directory will be se-
+     lected.  When a _\bp_\ba_\bt_\bt_\be_\br_\bn operand does not select at least one archive mem-
+     ber, p\bpa\bax\bx will write these _\bp_\ba_\bt_\bt_\be_\br_\bn operands in a diagnostic message to
+     standard error and then exit with a non-zero exit status.
+
+     The _\bf_\bi_\bl_\be operand specifies the pathname of a file to be copied or
+     archived.  When a _\bf_\bi_\bl_\be operand does not select at least one archive mem-
+     ber, p\bpa\bax\bx will write these _\bf_\bi_\bl_\be operand pathnames in a diagnostic message
+     to standard error and then exit with a non-zero exit status.
+
+O\bOP\bPT\bTI\bIO\bON\bNS\bS
+     The following options are supported:
+
+     -\b-r\br    Read an archive file from standard input and extract the specified
+           _\bf_\bi_\bl_\be_\bs. If any intermediate directories are needed in order to ex-
+           tract an archive member, these directories will be created as if
+           mkdir(2) was called with the bitwise inclusive OR of S_IRWXU,
+           S_IRWXG, and S_IRWXO as the mode argument.  When the selected
+           archive format supports the specification of linked files and these
+           files cannot be linked while the archive is being extracted, p\bpa\bax\bx
+           will write a diagnostic message to standard error and exit with a
+           non-zero exit status at the completion of operation.
+
+     -\b-w\bw    Write files to the standard output in the specified archive format.
+           When no _\bf_\bi_\bl_\be operands are specified, standard input is read for a
+           list of pathnames with one per line without any leading or trailing
+           <blanks>.
+
+     -\b-a\ba    Append _\bf_\bi_\bl_\be_\bs to the end of an archive that was previously written.
+           If an archive format is not specified with a -\b-x\bx option, the format
+           currently being used in the archive will be selected.  Any attempt
+           to append to an archive in a format different from the format al-
+           ready used in the archive will cause p\bpa\bax\bx to exit immediately with a
+           non-zero exit status.  The blocking size used in the archive volume
+           where writing starts will continue to be used for the remainder of
+           that archive volume.
+
+           _\bW_\ba_\br_\bn_\bi_\bn_\bg: Many storage devices are not able to support the opera-
+           tions necessary to perform an append operation.  Any attempt to ap-
+           pend to an archive stored on such a device may damage the archive
+           or have other unpredictable results.  Tape drives in particular are
+           more likely to not support an append operation.  An archive stored
+           in a regular file system file or on a disk device will usually sup-
+           port an append operation.
+
+     -\b-b\bb _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be
+           When _\bw_\br_\bi_\bt_\bi_\bn_\bg an archive, block the output at a positive decimal in-
+           teger number of bytes per write to the archive file.  The _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be
+           must be a multiple of 512 bytes with a maximum of 32256 bytes.  A
+           _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be can end with k or b to specify multiplication by 1024
+           (1K) or 512, respectively.  A pair of _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be_\bs can be separated
+           by x to indicate a product.  A specific archive device may impose
+           additional restrictions on the size of blocking it will support.
+           When blocking is not specified, the default _\bb_\bl_\bo_\bc_\bk_\bs_\bi_\bz_\be is dependent
+           on the specific archive format being used (see the -\b-x\bx option).
+
+     -\b-c\bc    Match all file or archive members _\be_\bx_\bc_\be_\bp_\bt those specified by the
+           _\bp_\ba_\bt_\bt_\be_\br_\bn and _\bf_\bi_\bl_\be operands.
+
+     -\b-d\bd    Cause files of type directory being copied or archived, or archive
+           members of type directory being extracted, to match only the direc-
+           tory file or archive member and not the file hierarchy rooted at
+           the directory.
+
+     -\b-f\bf _\ba_\br_\bc_\bh_\bi_\bv_\be
+           Specify _\ba_\br_\bc_\bh_\bi_\bv_\be as the pathname of the input or output archive,
+           overriding the default standard input (for _\bl_\bi_\bs_\bt and _\br_\be_\ba_\bd) or
+           standard output (for _\bw_\br_\bi_\bt_\be). A single archive may span multiple
+           files and different archive devices.  When required, p\bpa\bax\bx will
+           prompt for the pathname of the file or device of the next volume in
+           the archive.
+
+     -\b-i\bi    Interactively rename files or archive members.  For each archive
+           member matching a _\bp_\ba_\bt_\bt_\be_\br_\bn operand or each file matching a _\bf_\bi_\bl_\be
+           operand, p\bpa\bax\bx will prompt to _\b/_\bd_\be_\bv_\b/_\bt_\bt_\by giving the name of the file,
+           its file mode and its modification time.  P\bPa\bax\bx will then read a line
+           from _\b/_\bd_\be_\bv_\b/_\bt_\bt_\by. If this line is blank, the file or archive member is
+           skipped.  If this line consists of a single period, the file or
+           archive member is processed with no modification to its name.  Oth-
+           erwise, its name is replaced with the contents of the line.  P\bPa\bax\bx
+           will immediately exit with a non-zero exit status if <EOF> is en-
+           countered when reading a response or if _\b/_\bd_\be_\bv_\b/_\bt_\bt_\by cannot be opened
+           for reading and writing.
+
+     -\b-k\bk    Do not overwrite existing files.
+
+     -\b-l\bl    Link files. (The letter ell).  In the _\bc_\bo_\bp_\by mode ( -\b-r\br -\b-w\bw), hard
+           links are made between the source and destination file hierarchies
+           whenever possible.
+
+     -\b-n\bn    Select the first archive member that matches each _\bp_\ba_\bt_\bt_\be_\br_\bn operand.
+           No more than one archive member is matched for each _\bp_\ba_\bt_\bt_\be_\br_\bn. When
+           members of type directory are matched, the file hierarchy rooted at
+           that directory is also matched (unless -\b-d\bd is also specified).
+
+     -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\bs
+           Information to modify the algorithm for extracting or writing
+           archive files which is specific to the archive format specified by
+           -\b-x\bx. In general, _\bo_\bp_\bt_\bi_\bo_\bn_\bs take the form: n\bna\bam\bme\be=\b=v\bva\bal\blu\bue\be
+
+     -\b-p\bp _\bs_\bt_\br_\bi_\bn_\bg
+           Specify one or more file characteristic options (privileges).  The
+           _\bs_\bt_\br_\bi_\bn_\bg option-argument is a string specifying file characteristics
+           to be retained or discarded on extraction.  The string consists of
+           the specification characters a\ba, e\be, m\bm, o\bo, and p\bp. Multiple character-
+           istics can be concatenated within the same string and multiple -\b-p\bp
+           options can be specified.  The meaning of the specification charac-
+           ters are as follows:
+
+           a\ba   Do not preserve file access times.  By default, file access
+               times are preserved whenever possible.
+
+           e\be   `Preserve everything', the user ID, group ID, file mode bits,
+               file access time, and file modification time.  This is intended
+               to be used by _\br_\bo_\bo_\bt, someone with all the appropriate privi-
+               leges, in order to preserve all aspects of the files as they
+               are recorded in the archive.  The e\be flag is the sum of the o\bo
+
+               and p\bp flags.
+
+           m\bm   Do not preserve file modification times.  By default, file mod-
+               ification times are preserved whenever possible.
+
+           o\bo   Preserve the user ID and group ID.
+
+           p\bp   `Preserve' the file mode bits.  This intended to be used by a
+               _\bu_\bs_\be_\br with regular privileges who wants to preserve all aspects
+               of the file other than the ownership.  The file times are pre-
+               served by default, but two other flags are offered to disable
+               this and use the time of extraction instead.
+
+           In the preceding list, `preserve' indicates that an attribute
+           stored in the archive is given to the extracted file, subject to
+           the permissions of the invoking process.  Otherwise the attribute
+           of the extracted file is determined as part of the normal file cre-
+           ation action.  If neither the e\be nor the o\bo specification character
+           is specified, or the user ID and group ID are not preserved for any
+           reason, p\bpa\bax\bx will not set the S_ISUID (_\bs_\be_\bt_\bu_\bi_\bd) and S_ISGID (_\bs_\be_\bt_\bg_\bi_\bd)
+           bits of the file mode.  If the preservation of any of these items
+           fails for any reason, p\bpa\bax\bx will write a diagnostic message to
+           standard error. Failure to preserve these items will affect the fi-
+           nal exit status, but will not cause the extracted file to be delet-
+           ed.  If the file characteristic letters in any of the string op-
+           tion-arguments are duplicated or conflict with each other, the
+           one(s) given last will take precedence.  For example, if
+                 -\b-p\bp _\be_\bm_\be
+           is specified, file modification times are still preserved.
+
+     -\b-s\bs _\br_\be_\bp_\bl_\bs_\bt_\br
+           Modify the file or archive member names specified by the _\bp_\ba_\bt_\bt_\be_\br_\bn or
+           _\bf_\bi_\bl_\be operands according to the substitution expression _\br_\be_\bp_\bl_\bs_\bt_\br, us-
+           ing the syntax of the ed(1) utility regular expressions.  The for-
+           mat of these regular expressions are:
+                 /old/new/[gp]
+           As in ed(1),  o\bol\bld\bd is a basic regular expression and n\bne\bew\bw can contain
+           an ampersand (&), \n (where n is a digit) back-references, or
+           subexpression matching.  The o\bol\bld\bd string may also contain <newline>
+           characters.  Any non-null character can be used as a delimiter (/
+           is shown here).  Multiple -\b-s\bs expressions can be specified.  The ex-
+           pressions are applied in the order they are specified on the com-
+           mand line, terminating with the first successful substitution.  The
+           optional trailing g\bg continues to apply the substitution expression
+           to the pathname substring which starts with the first character
+           following the end of the last successful substitution. The first
+           unsuccessful substitution stops the operation of the g\bg option.  The
+           optional trailing p\bp will cause the final result of a successful
+           substitution to be written to standard error in the following for-
+           mat:
+                 <original pathname> >> <new pathname>
+           File or archive member names that substitute to the empty string
+           are not selected and will be skipped.
+
+     -\b-t\bt    Reset the access times of any file or directory read or accessed by
+           p\bpa\bax\bx to be the same as they were before being read or accessed by
+           p\bpa\bax\bx.
+
+     -\b-u\bu    Ignore files that are older (having a less recent file modification
+           time) than a pre-existing file or archive member with the same
+           name.  During _\br_\be_\ba_\bd, an archive member with the same name as a file
+           in the file system will be extracted if the archive member is newer
+           than the file.  During _\bw_\br_\bi_\bt_\be, a file system member with the same
+           name as an archive member will be written to the archive if it is
+           newer than the archive member.  During _\bc_\bo_\bp_\by, the file in the desti-
+           nation hierarchy is replaced by the file in the source hierarchy or
+           by a link to the file in the source hierarchy if the file in the
+           source hierarchy is newer.
+
+     -\b-v\bv    During a _\bl_\bi_\bs_\bt operation, produce a verbose table of contents using
+           the format of the ls(1) utility with the -\b-l\bl option.  For pathnames
+           representing a hard link to a previous member of the archive, the
+           output has the format:
+                 <ls -l listing> == <link name>
+           For pathnames representing a symbolic link, the output has the for-
+           mat:
+                 <ls -l listing> => <link name>
+           Where <ls -l listing> is the output format specified by the ls(1)
+           utility when used with the -\b-l\bl option.  Otherwise for all the other
+           operational modes ( _\br_\be_\ba_\bd, _\bw_\br_\bi_\bt_\be, and _\bc_\bo_\bp_\by), pathnames are written
+           and flushed to standard error without a trailing <newline> as soon
+           as processing begins on that file or archive member.  The trailing
+           <newline>, is not buffered, and is written only after the file has
+           been read or written.
+
+     -\b-x\bx _\bf_\bo_\br_\bm_\ba_\bt
+           Specify the output archive format, with the default format being
+           _\bu_\bs_\bt_\ba_\br. P\bPa\bax\bx currently supports the following formats:
+
+           _\bc_\bp_\bi_\bo     The extended cpio interchange format specified in the IEEE
+                    Std1003.2 (``POSIX'') standard.  The default blocksize for
+                    this format is 5120 bytes.  Inode and device information
+                    about a file (used for detecting file hard links by this
+                    format) which may be truncated by this format is detected
+                    by p\bpa\bax\bx and is repaired.
+
+           _\bb_\bc_\bp_\bi_\bo    The old binary cpio format.  The default blocksize for
+                    this format is 5120 bytes.  This format is not very
+                    portable and should not be used when other formats are
+                    available.  Inode and device information about a file
+                    (used for detecting file hard links by this format) which
+                    may be truncated by this format is detected by p\bpa\bax\bx and is
+                    repaired.
+
+           _\bs_\bv_\b4_\bc_\bp_\bi_\bo  The System V release 4 cpio.  The default blocksize for
+                    this format is 5120 bytes.  Inode and device information
+                    about a file (used for detecting file hard links by this
+                    format) which may be truncated by this format is detected
+                    by p\bpa\bax\bx and is repaired.
+
+           _\bs_\bv_\b4_\bc_\br_\bc   The System V release 4 cpio with file crc checksums.  The
+                    default blocksize for this format is 5120 bytes.  Inode
+                    and device information about a file (used for detecting
+                    file hard links by this format) which may be truncated by
+                    this format is detected by p\bpa\bax\bx and is repaired.
+
+           _\bt_\ba_\br      The old BSD tar format as found in BSD4.3.  The default
+                    blocksize for this format is 10240 bytes.  Pathnames
+                    stored by this format must be 100 characters or less in
+                    length.  Only _\br_\be_\bg_\bu_\bl_\ba_\br files, _\bh_\ba_\br_\bd _\bl_\bi_\bn_\bk_\bs, _\bs_\bo_\bf_\bt _\bl_\bi_\bn_\bk_\bs, and
+                    _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\bi_\be_\bs will be archived (other file system types are
+                    not supported).  For backwards compatibility with even
+                    older tar formats, a -\b-o\bo option can be used when writing an
+                    archive to omit the storage of directories.  This option
+                    takes the form:
+                          -\b-o\bo w\bwr\bri\bit\bte\be_\b_o\bop\bpt\bt=\b=n\bno\bod\bdi\bir\br
+
+           _\bu_\bs_\bt_\ba_\br    The extended tar interchange format specified in the IEEE
+                    Std1003.2 (``POSIX'') standard.  The default blocksize for
+                    this format is 10240 bytes.  Pathnames stored by this for-
+                    mat must be 250 characters or less in length.
+
+           P\bPa\bax\bx will detect and report any file that it is unable to store or
+           extract as the result of any specific archive format restrictions.
+           The individual archive formats may impose additional restrictions
+           on use.  Typical archive format restrictions include (but are not
+           limited to): file pathname length, file size, link pathname length
+           and the type of the file.
+
+     -\b-B\bB _\bb_\by_\bt_\be_\bs
+           Limit the number of bytes written to a single archive volume to
+           _\bb_\by_\bt_\be_\bs. The _\bb_\by_\bt_\be_\bs limit can end with m, k, or b to specify multipli-
+           cation by 1048576 (1M), 1024 (1K) or 512, respectively.  A pair of
+           _\bb_\by_\bt_\be_\bs limits can be separated by x to indicate a product.
+
+           _\bW_\ba_\br_\bn_\bi_\bn_\bg: Only use this option when writing an archive to a device
+           which supports an end of file read condition based on last (or
+           largest) write offset (such as a regular file or a tape drive).
+           The use of this option with a floppy or hard disk is not recommend-
+           ed.
+
+     -\b-D\bD    This option is the same as the -\b-u\bu option, except that the file in-
+           ode change time is checked instead of the file modification time.
+           The file inode change time can be used to select files whose inode
+           information (e.g. uid, gid, etc.) is newer than a copy of the file
+           in the destination _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by.
+
+     -\b-E\bE _\bl_\bi_\bm_\bi_\bt
+           Limit the number of consecutive read faults while trying to read a
+           flawed archives to _\bl_\bi_\bm_\bi_\bt. With a positive _\bl_\bi_\bm_\bi_\bt, p\bpa\bax\bx will attempt
+           to recover from an archive read error and will continue processing
+           starting with the next file stored in the archive.  A _\bl_\bi_\bm_\bi_\bt of 0
+           will cause p\bpa\bax\bx to stop operation after the first read error is de-
+           tected on an archive volume.  A _\bl_\bi_\bm_\bi_\bt of NONE will cause p\bpa\bax\bx to at-
+           tempt to recover from read errors forever.  The default _\bl_\bi_\bm_\bi_\bt is a
+           small positive number of retries.
+
+           _\bW_\ba_\br_\bn_\bi_\bn_\bg_\b: Using this option with NONE should be used with extreme
+           caution as p\bpa\bax\bx may get stuck in an infinite loop on a very badly
+           flawed archive.
+
+     -\b-G\bG _\bg_\br_\bo_\bu_\bp
+           Select a file based on its _\bg_\br_\bo_\bu_\bp name, or when starting with a #\b#, a
+           numeric gid.  A '\' can be used to escape the #\b#. Multiple -\b-G\bG op-
+           tions may be supplied and checking stops with the first match.
+
+     -\b-H\bH    Follow only command line symbolic links while performing a physical
+           file system traversal.
+
+     -\b-L\bL    Follow all symbolic links to perform a logical file system traver-
+           sal.
+
+     -\b-P\bP    Do not follow symbolic links, perform a physical file system
+           traversal.  This is the default mode.
+
+     -\b-T\bT _\b[_\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be_\b]_\b[_\b,_\bt_\bo_\b__\bd_\ba_\bt_\be_\b]_\b[_\b/_\b[_\bc_\b]_\b[_\bm_\b]_\b]
+           Allow files to be selected based on a file modification or inode
+           change time falling within a specified time range of _\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be to
+           _\bt_\bo_\b__\bd_\ba_\bt_\be (the dates are inclusive).  If only a _\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be is sup-
+           plied, all files with a modification or inode change time equal to
+           or younger are selected.  If only a _\bt_\bo_\b__\bd_\ba_\bt_\be is supplied, all files
+           with a modification or inode change time equal to or older will be
+           selected.  When the _\bf_\br_\bo_\bm_\b__\bd_\ba_\bt_\be is equal to the _\bt_\bo_\b__\bd_\ba_\bt_\be, only files
+           with a modification or inode change time of exactly that time will
+           be selected.
+
+
+           When p\bpa\bax\bx is in the _\bw_\br_\bi_\bt_\be or _\bc_\bo_\bp_\by mode, the optional trailing field
+           _\b[_\bc_\b]_\b[_\bm_\b] can be used to determine which file time (inode change, file
+           modification or both) are used in the comparison.  If neither is
+           specified, the default is to use file modification time only.  The
+           _\bm specifies the comparison of file modification time (the time when
+           the file was last written).  The _\bc specifies the comparison of in-
+           ode change time (the time when the file inode was last changed;
+           e.g. a change of owner, group, mode, etc).  When _\bc and _\bm are both
+           specified, then the modification and inode change times are both
+           compared.  The inode change time comparison is useful in selecting
+           files whose attributes were recently changed or selecting files
+           which were recently created and had their modification time reset
+           to an older time (as what happens when a file is extracted from an
+           archive and the modification time is preserved).  Time comparisons
+           using both file times is useful when p\bpa\bax\bx is used to create a time
+           based incremental archive (only files that were changed during a
+           specified time range will be archived).
+
+           A time range is made up of six different fields and each field must
+           contain two digits.  The format is:
+                 [yy[mm[dd[hh]]]]mm[.ss]
+           Where y\byy\by is the last two digits of the year, the first m\bmm\bm is the
+           month (from 01 to 12), d\bdd\bd is the day of the month (from 01 to 31),
+           h\bhh\bh is the hour of the day (from 00 to 23), the second m\bmm\bm is the
+           minute (from 00 to 59), and s\bss\bs is the seconds (from 00 to 59).  The
+           minute field m\bmm\bm is required, while the other fields are optional
+           and must be added in the following order:
+                 h\bhh\bh, d\bdd\bd, m\bmm\bm, y\byy\by.
+           The s\bss\bs field may be added independently of the other fields.  Time
+           ranges are relative to the current time, so
+                 -\b-T\bT _\b1_\b2_\b3_\b4_\b/_\bc_\bm
+           would select all files with a modification or inode change time of
+           12:34 PM today or later.  Multiple -\b-T\bT time range can be supplied
+           and checking stops with the first match.
+
+     -\b-U\bU _\bu_\bs_\be_\br
+           Select a file based on its _\bu_\bs_\be_\br name, or when starting with a #\b#, a
+           numeric uid.  A '\' can be used to escape the #\b#. Multiple -\b-U\bU op-
+           tions may be supplied and checking stops with the first match.
+
+     -\b-X\bX    When traversing the file hierarchy specified by a pathname, do not
+           descend into directories that have a different device ID.  See the
+           st_dev field as described in stat(2) for more information about de-
+           vice ID's.
+
+     -\b-Y\bY    This option is the same as the -\b-D\bD option, except that the inode
+           change time is checked using the pathname created after all the
+           file name modifications have completed.
+
+     -\b-Z\bZ    This option is the same as the -\b-u\bu option, except that the modifica-
+           tion time is checked using the pathname created after all the file
+           name modifications have completed.
+
+     The options that operate on the names of files or archive members ( -\b-c\bc,
+     -\b-i\bi, -\b-n\bn, -\b-s\bs, -\b-u\bu, -\b-v\bv, -\b-D\bD, -\b-G\bG, -\b-T\bT, -\b-U\bU, -\b-Y\bY, and -\b-Z\bZ) interact as follows.
+
+     When extracting files during a _\br_\be_\ba_\bd operation, archive members are
+     `selected', based only on the user specified pattern operands as modified
+     by the -\b-c\bc, -\b-n\bn, -\b-u\bu, -\b-D\bD, -\b-G\bG, -\b-T\bT, -\b-U\bU options.  Then any -\b-s\bs and -\b-i\bi options
+     will modify in that order, the names of these selected files.  Then the
+     -\b-Y\bY and -\b-Z\bZ options will be applied based on the final pathname.  Finally
+     the -\b-v\bv option will write the names resulting from these modifications.
+
+     When archiving files during a _\bw_\br_\bi_\bt_\be operation, or copying files during a
+     _\bc_\bo_\bp_\by operation, archive members are `selected', based only on the user
+     specified pathnames as modified by the -\b-n\bn, -\b-u\bu, -\b-D\bD, -\b-G\bG, -\b-T\bT, and -\b-U\bU options
+     (the -\b-D\bD option only applies during a copy operation).  Then any -\b-s\bs and -\b-i\bi
+     options will modify in that order, the names of these selected files.
+     Then during a _\bc_\bo_\bp_\by operation the -\b-Y\bY and the -\b-Z\bZ options will be applied
+     based on the final pathname.  Finally the -\b-v\bv option will write the names
+     resulting from these modifications.
+
+     When one or both of the -\b-u\bu or -\b-D\bD options are specified along with the -\b-n\bn
+     option, a file is not considered selected unless it is newer than the
+     file to which it is compared.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+     The command:
+           pax -w -f /dev/rst0 .
+     copies the contents of the current directory to the device _\b/_\bd_\be_\bv_\b/_\br_\bs_\bt_\b0.
+
+     The command:
+           pax -r -v -f filename
+     gives the verbose table of contents for an archive stored in _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+
+     The following commands:
+           mkdir newdir
+           cd olddir
+           pax -rw . newdir
+     will copy the entire _\bo_\bl_\bd_\bd_\bi_\br directory hierarchy to _\bn_\be_\bw_\bd_\bi_\br.
+
+     The command:
+           pax -r -s ',^//*usr//*,,' -f a.pax
+     reads the archive _\ba_\b._\bp_\ba_\bx, with all files rooted in ``/usr'' into the
+     archive extracted relative to the current directory.
+
+     The command:
+           pax -rw -i . dest_dir
+     can be used to interactively select the files to copy from the current
+     directory to _\bd_\be_\bs_\bt_\b__\bd_\bi_\br.
+
+     The command:
+           pax -r -pe -U root -G bin -f a.pax
+     will extract all files from the archive _\ba_\b._\bp_\ba_\bx which are owned by _\br_\bo_\bo_\bt
+     with group _\bb_\bi_\bn and will preserve all file permissions.
+
+     The command:
+           pax -r -w -v -Y -Z home /backup
+     will update (and list) only those files in the destination directory
+     _\b/_\bb_\ba_\bc_\bk_\bu_\bp which are older (less recent inode change or file modification
+     times) than files with the same name found in the source file tree _\bh_\bo_\bm_\be.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The p\bpa\bax\bx utility is a superset of the IEEE Std1003.2 (``POSIX'') standard.
+     The options -\b-B\bB, -\b-D\bD, -\b-E\bE, -\b-G\bG, -\b-H\bH, -\b-L\bL, -\b-P\bP, -\b-T\bT, -\b-U\bU, -\b-Y\bY, -\b-Z\bZ, the archive for-
+     mats _\bb_\bc_\bp_\bi_\bo, _\bs_\bv_\b4_\bc_\bp_\bi_\bo, _\bs_\bv_\b4_\bc_\br_\bc, _\bt_\ba_\br, and the flawed archive handling during
+     _\bl_\bi_\bs_\bt and _\br_\be_\ba_\bd operations are extensions to the POSIX standard.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     Keith Muller at the University of California, San Diego
+
+E\bER\bRR\bRO\bOR\bRS\bS
+     p\bpa\bax\bx will exit with one of the following values:
+
+     0   All files were processed successfully.
+
+     1   An error occurred.
+
+     Whenever p\bpa\bax\bx cannot create a file or a link when reading an archive or
+     cannot find a file when writing an archive, or cannot preserve the user
+     ID, group ID, or file mode when the -\b-p\bp option is specified, a diagnostic
+     message is written to standard error and a non-zero exit status will be
+     returned, but processing will continue.  In the case where pax cannot
+     create a link to a file, p\bpa\bax\bx will not create a second copy of the file.
+
+     If the extraction of a file from an archive is prematurely terminated by
+     a signal or error, p\bpa\bax\bx may have only partially extracted a file the user
+     wanted.  Additionally, the file modes of extracted files and directories
+     may have incorrect file bits, and the modification and access times may
+     be wrong.
+
+     If the creation of an archive is prematurely terminated by a signal or
+     error, p\bpa\bax\bx may have only partially created the archive which may violate
+     the specific archive format specification.
+
+     If while doing a _\bc_\bo_\bp_\by, p\bpa\bax\bx detects a file is about to overwrite itself,
+     the file is not copied, a diagnostic message is written to standard error
+     and when p\bpa\bax\bx completes it will exit with a non-zero exit status.
+
+4.4BSD                          April 18, 1994                               9
diff --git a/usr/share/man/cat1/popd.0 b/usr/share/man/cat1/popd.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/ps.0 b/usr/share/man/cat1/ps.0
new file mode 100644 (file)
index 0000000..e711710
--- /dev/null
@@ -0,0 +1,307 @@
+PS(1)                        BSD Reference Manual                        PS(1)
+
+N\bNA\bAM\bME\bE
+     p\bps\bs - process status
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     p\bps\bs [-\b-a\baC\bCe\beh\bhj\bjl\blm\bmr\brS\bST\bTu\buv\bvw\bwx\bx] [-\b-M\bM _\bc_\bo_\br_\be] [-\b-N\bN _\bs_\by_\bs_\bt_\be_\bm] [-\b-O\bO _\bf_\bm_\bt] [-\b-o\bo _\bf_\bm_\bt] [-\b-p\bp _\bp_\bi_\bd] [-\b-t\bt
+        _\bt_\bt_\by] [-\b-W\bW _\bs_\bw_\ba_\bp]
+     p\bps\bs [-\b-L\bL]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     P\bPs\bs displays a header line followed by lines containing information about
+     your processes that have controlling terminals.  This information is
+     sorted by process ID.
+
+     The information displayed is selected based on a set of keywords (see the
+     -\b-L\bL -\b-O\bO and -\b-o\bo options).  The default output format includes, for each pro-
+     cess, the process' ID, controlling terminal, cpu time (including both us-
+     er and system time), state, and associated command.
+
+     The options are as follows:
+
+     -\b-a\ba      Display information about other users' processes as well as your
+             own.
+
+     -\b-C\bC      Change the way the cpu percentage is calculated by using a
+             ``raw'' cpu calculation that ignores ``resident'' time (this nor-
+             mally has no effect).
+
+     -\b-e\be      Display the environment as well.
+
+     -\b-h\bh      Repeat the information header as often as necessary to guarantee
+             one header per page of information.
+
+     -\b-j\bj      Print information associated with the following keywords: user,
+             pid, ppid, pgid, sess, jobc, state, tt, time and command.
+
+     -\b-L\bL      List the set of available keywords.
+
+     -\b-l\bl      Display information associated with the following keywords: uid,
+             pid, ppid, cpu, pri, nice, vsz, rss, wchan, state, tt, time and
+             command.
+
+     -\b-M\bM      Extract values associated with the name list from the specified
+             core instead of the default ``_\b/_\bd_\be_\bv_\b/_\bk_\bm_\be_\bm''.
+
+     -\b-m\bm      Sort by memory usage, instead of by process ID.
+
+     -\b-N\bN      Extract the name list from the specified system instead of the
+             default ``_\b/_\bv_\bm_\bu_\bn_\bi_\bx''.
+
+     -\b-O\bO      Add the information associated with the space or comma separated
+             list of keywords specified, after the process ID, in the default
+             information display.  Keywords may be appended with an equals
+             (``='') sign and a string.  This causes the printed header to use
+             the specified string instead of the standard header.
+
+     -\b-o\bo      Display information associated with the space or comma separated
+             list of keywords specified.  Keywords may be appended with an
+             equals (``='') sign and a string.  This causes the printed header
+             to use the specified string instead of the standard header.
+
+     -\b-p\bp      Display information associated with the specified process ID.
+
+
+     -\b-r\br      Sort by current cpu usage, instead of by process ID.
+
+     -\b-S\bS      Change the way the process time is calculated by summing all ex-
+             ited children to their parent process.
+
+     -\b-T\bT      Display information about processes attached to the device asso-
+             ciated with the standard input.
+
+     -\b-t\bt      Display information about processes attached to the specified
+             terminal device.
+
+     -\b-u\bu      Display information associated with the following keywords: user,
+             pid, %cpu, %mem, vsz, rss, tt, state, start, time and command.
+             The -\b-u\bu option implies the -\b-r\br option.
+
+     -\b-v\bv      Display information associated with the following keywords: pid,
+             state, time, sl, re, pagein, vsz, rss, lim, tsiz, %cpu, %mem and
+             command.  The -\b-v\bv option implies the -\b-m\bm option.
+
+     -\b-W\bW      Extract swap information from the specified file instead of the
+             default ``_\b/_\bd_\be_\bv_\b/_\bs_\bw_\ba_\bp''.
+
+     -\b-w\bw      Use 132 columns to display information, instead of the default
+             which is your window size.  If the -\b-w\bw option is specified more
+             than once, p\bps\bs will use as many columns as necessary without re-
+             gard for your window size.
+
+     -\b-x\bx      Display information about processes without controlling termi-
+             nals.
+
+     A complete list of the available keywords are listed below.  Some of
+     these keywords are further specified as follows:
+
+     %cpu    The cpu utilization of the process; this is a decaying average
+             over up to a minute of previous (real) time.  Since the time base
+             over which this is computed varies (since processes may be very
+             young) it is possible for the sum of all %CPU fields to exceed
+             100%.
+
+     %mem    The percentage of real memory used by this process.
+
+     flags   The flags (in hexadecimal) associated with the process as in the
+             include file <_\bs_\by_\bs_\b/_\bp_\br_\bo_\bc_\b._\bh>:
+
+             SLOAD         0x0000001     in core
+             SSYS          0x0000002     swapper or pager process
+             SLOCK         0x0000004     process being swapped out
+             SSWAP         0x0000008     save area flag
+             STRC          0x0000010     process is being traced
+             SWTED         0x0000020     another tracing flag
+             SSINTR        0x0000040     sleep is interruptible
+             SKEEP         0x0000100     another flag to prevent swap out
+             SOMASK        0x0000200     restore old mask after taking signal
+             SWEXIT        0x0000400     working on exiting
+             SPHYSIO       0x0000800     doing physical I/O
+             SVFORK        0x0001000     process resulted from vfork(2)
+             SVFDONE       0x0002000     another vfork flag
+             SNOVM         0x0004000     no vm, parent in a vfork
+             SPAGV         0x0008000     init data space on demand, from vnode
+             SSEQL         0x0010000     user warned of sequential vm behavior
+             SUANOM        0x0020000     user warned of random vm behavior
+             STIMO         0x0040000     timing out during sleep
+             SNOCLDSTOP    0x0080000     no SIGCHLD when children stop
+             SCTTY         0x0100000     has a controlling terminal
+             SOWEUPC       0x0200000     owe process an addupc() call at next
+
+                                         ast
+             SSEL          0x0400000     selecting; wakeup/waiting danger
+             SEXEC         0x0800000     process called exec(2)
+             SHPUX         0x1000000     HP-UX process (HPUXCOMPAT)
+             SULOCK        0x2000000     locked in core after swap error
+             SPTECHG       0x4000000     pte's for process have changed
+
+     lim     The soft limit on memory used, specified via a call to
+             setrlimit(2).
+
+     lstart  The exact time the command started, using the ``%C'' format de-
+             scribed in strftime(3).
+
+     nice    The process scheduling increment (see setpriority(2)).
+
+     rss     the real memory (resident set) size of the process (in 1024 byte
+             units).
+
+     start   The time the command started.  If the command started less than
+             24 hours ago, the start time is displayed using the ``%l:ps.1p''
+             format described in strftime(3).  If the command started less
+             than 7 days ago, the start time is displayed using the
+             ``%a6.15p'' format.  Otherwise, the start time is displayed using
+             the ``%e%b%y'' format.
+
+     state   The state is given by a sequence of letters, for example,
+             ``RWNA''. The first letter indicates the run state of the pro-
+             cess:
+
+             D       Marks a process in disk (or other short term, uninter-
+                     ruptible) wait.
+             I       Marks a process that is idle (sleeping for longer than
+                     about 20 seconds).
+             R       Marks a runnable process.
+             S       Marks a process that is sleeping for less than about 20
+                     seconds.
+             T       Marks a stopped process.
+             Z       Marks a dead process (a ``zombie'').
+
+             Additional characters after these, if any, indicate additional
+             state information:
+
+             +       The process is in the foreground process group of its
+                     control terminal.
+             <       The process has raised CPU scheduling priority.
+             >       The process has specified a soft limit on memory require-
+                     ments and is currently exceeding that limit; such a pro-
+                     cess is (necessarily) not swapped.
+             A       the process has asked for random page replacement
+                     (VA_ANOM, from vadvise(2),  for example, lisp(1) in a
+                     garbage collect).
+             E       The process is trying to exit.
+             L       The process has pages locked in core (for example, for
+                     raw I/O).
+             N       The process has reduced CPU scheduling priority (see
+                     setpriority(2)).
+             S       The process has asked for FIFO page replacement (VA_SEQL,
+                     from vadvise(2),  for example, a large image processing
+                     program using virtual memory to sequentially address vo-
+                     luminous data).
+             s       The process is a session leader.
+             V       The process is suspended during a vfork.
+             W       The process is swapped out.
+             X       The process is being traced or debugged.
+
+
+
+     tt      An abbreviation for the pathname of the controlling terminal, if
+             any.  The abbreviation consists of the two letters following
+             ``_\b/_\bd_\be_\bv_\b/_\bt_\bt_\by'', or, for the console, ``co''.  This is followed by a
+             ``-'' if the process can no longer reach that controlling termi-
+             nal (i.e., it has been revoked).
+
+     wchan   The event (an address in the system) on which a process waits.
+             When printed numerically, the initial part of the address is
+             trimmed off and the result is printed in hex, for example,
+             0x80324000 prints as 324000.
+
+     When printing using the command keyword, a process that has exited and
+     has a parent that has not yet waited for the process (in other words, a
+     zombie) is listed as ``<defunct>'', and a process which is blocked while
+     trying to exit is listed as ``<exiting>''.  P\bPs\bs makes an educated guess as
+     to the file name and arguments given when the process was created by ex-
+     amining memory or the swap area.  The method is inherently somewhat unre-
+     liable and in any event a process is entitled to destroy this informa-
+     tion, so the names cannot be depended on too much.  The ucomm (account-
+     ing) keyword can, however, be depended on.
+
+K\bKE\bEY\bYW\bWO\bOR\bRD\bDS\bS
+     The following is a complete list of the available keywords and their
+     meanings.  Several of them have aliases (keywords which are synonyms).
+
+     %cpu       percentage cpu usage (alias pcpu)
+     %mem       percentage memory usage (alias pmem)
+     acflag     accounting flag (alias acflg)
+     command    command and arguments
+     cpu        short-term cpu usage factor (for scheduling)
+     flags      the process flags, in hexadecimal (alias f)
+     inblk      total blocks read (alias inblock)
+     jobc       job control count
+     ktrace     tracing flags
+     ktracep    tracing vnode
+     lim        memoryuse limit
+     logname    login name of user who started the process
+     lstart     time started
+     majflt     total page faults
+     minflt     total page reclaims
+     msgrcv     total messages received (reads from pipes/sockets)
+     msgsnd     total messages sent (writes on pipes/sockets)
+     nice       nice value (alias ni)
+     nivcsw     total involuntary context switches
+     nsigs      total signals taken (alias nsignals)
+     nswap      total swaps in/out
+     nvcsw      total voluntary context switches
+     nwchan     wait channel (as an address)
+     oublk      total blocks written (alias oublock)
+     p_ru       resource usage (valid only for zombie)
+     paddr      swap address
+     pagein     pageins (same as majflt)
+     pgid       process group number
+     pid        process ID
+     poip       pageouts in progress
+     ppid       parent process ID
+     pri        scheduling priority
+     re         core residency time (in seconds; 127 = infinity)
+     rgid       real group ID
+     rlink      reverse link on run queue, or 0
+     rss        resident set size
+     rsz        resident set size + (text size / text use count) (alias rs-
+                size)
+
+
+     ruid       real user ID
+     ruser      user name (from ruid)
+     sess       session pointer
+     sig        pending signals (alias pending)
+     sigcatch   caught signals (alias caught)
+     sigignore  ignored signals (alias ignored)
+     sigmask    blocked signals (alias blocked)
+     sl         sleep time (in seconds; 127 = infinity)
+     start      time started
+     state      symbolic process state (alias stat)
+     svgid      saved gid from a setgid executable
+     svuid      saved uid from a setuid executable
+     tdev       control terminal device number
+     time       accumulated cpu time, user + system (alias cputime)
+     tpgid      control terminal process group ID
+     tsess      control terminal session pointer
+     tsiz       text size (in Kbytes)
+     tt         control terminal name (two letter abbreviation)
+     tty        full name of control terminal
+     uprocp     process pointer
+     ucomm      name to be used for accounting
+     uid        effective user ID
+     upr        scheduling priority on return from system call (alias usrpri)
+     user       user name (from uid)
+     vsz        virtual size in Kbytes (alias vsize)
+     wchan      wait channel (as a symbolic name)
+     xstat      exit or stop status (valid only for stopped or zombie process)
+
+F\bFI\bIL\bLE\bES\bS
+     /dev                    special files and device names
+     /dev/drum               default swap device
+     /dev/kmem               default kernel memory
+     /var/run/dev.db         /dev name database
+     /var/run/kvm_vmunix.db  system namelist database
+     /vmunix                 default system namelist
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     kill(1),  w(1),  kvm(3),  strftime(3),  pstat(8)
+
+B\bBU\bUG\bGS\bS
+     Since p\bps\bs cannot run faster than the system and is run as any other sched-
+     uled process, the information it displays can never be exact.
+
+4th Berkeley Distribution       April 18, 1994                               5
diff --git a/usr/share/man/cat1/pushd.0 b/usr/share/man/cat1/pushd.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/pwd.0 b/usr/share/man/cat1/pwd.0
new file mode 100644 (file)
index 0000000..e92911e
--- /dev/null
@@ -0,0 +1,26 @@
+PWD(1)                       BSD Reference Manual                       PWD(1)
+
+N\bNA\bAM\bME\bE
+     p\bpw\bwd\bd - return working directory name
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     p\bpw\bwd\bd
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     P\bPw\bwd\bd writes the absolute pathname of the current working directory to the
+     standard output.
+
+     The pwd utility exits 0 on success, and >0 if an error occurs.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The p\bpw\bwd\bd command is expected to be IEEE Std1003.2 (``POSIX'') compatible .
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     cd(1),  csh(1),  getcwd(3)
+
+B\bBU\bUG\bGS\bS
+     In csh(1) the command d\bdi\bir\brs\bs is always faster (although it can give a dif-
+     ferent answer in the rare case that the current directory or a containing
+     directory was moved after the shell descended into it).
+
+4th Berkeley Distribution       April 28, 1995                               1
diff --git a/usr/share/man/cat1/rcp.0 b/usr/share/man/cat1/rcp.0
new file mode 100644 (file)
index 0000000..478cdab
--- /dev/null
@@ -0,0 +1,65 @@
+RCP(1)                       BSD Reference Manual                       RCP(1)
+
+N\bNA\bAM\bME\bE
+     r\brc\bcp\bp - remote file copy
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     r\brc\bcp\bp [-\b-K\bKp\bpx\bx] [-\b-k\bk _\br_\be_\ba_\bl_\bm] _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2
+     r\brc\bcp\bp [-\b-K\bKp\bpr\brx\bx] [-\b-k\bk _\br_\be_\ba_\bl_\bm] _\bf_\bi_\bl_\be _\b._\b._\b. _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     R\bRc\bcp\bp copies files between machines.  Each _\bf_\bi_\bl_\be or _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by argument is
+     either a remote file name of the form ``rname@rhost:path'', or a local
+     file name (containing no `:' characters, or a `/' before any `:'s).
+
+     -\b-K\bK    The -\b-K\bK option turns off all Kerberos authentication.
+
+     -\b-k\bk    The -\b-k\bk option requests r\brc\bcp\bp to obtain tickets for the remote host in
+           realm _\br_\be_\ba_\bl_\bm instead of the remote host's realm as determined by
+           krb_realmofhost(3).
+
+     -\b-p\bp    The -\b-p\bp option causes r\brc\bcp\bp to attempt to preserve (duplicate) in its
+           copies the modification times and modes of the source files, ignor-
+           ing the _\bu_\bm_\ba_\bs_\bk. By default, the mode and owner of _\bf_\bi_\bl_\be_\b2 are pre-
+           served if it already existed; otherwise the mode of the source file
+           modified by the umask(2) on the destination host is used.
+
+     -\b-r\br    If any of the source files are directories, r\brc\bcp\bp copies each subtree
+           rooted at that name; in this case the destination must be a direc-
+           tory.
+
+     -\b-x\bx    The -\b-x\bx option turns on DES encryption for all data passed by r\brc\bcp\bp.
+           This may impact response time and CPU utilization, but provides in-
+           creased security.
+
+     If _\bp_\ba_\bt_\bh is not a full path name, it is interpreted relative to the login
+     directory of the specified user _\br_\bu_\bs_\be_\br on _\br_\bh_\bo_\bs_\bt, or your current user name
+     if no other remote user name is specified.  A _\bp_\ba_\bt_\bh on a remote host may
+     be quoted (using \, ", or ') so that the metacharacters are interpreted
+     remotely.
+
+     R\bRc\bcp\bp does not prompt for passwords; it performs remote execution via
+     rsh(1),  and requires the same authorization.
+
+     R\bRc\bcp\bp handles third party copies, where neither source nor target files are
+     on the current machine.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     cp(1),  ftp(1),  rsh(1),  rlogin(1)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The r\brc\bcp\bp command appeared in 4.2BSD. The version of r\brc\bcp\bp described here has
+     been reimplemented with Kerberos in 4.3BSD-Reno.
+
+B\bBU\bUG\bGS\bS
+     Doesn't detect all cases where the target of a copy might be a file in
+     cases where only a directory should be legal.
+
+     Is confused by any output generated by commands in a _\b._\bl_\bo_\bg_\bi_\bn, _\b._\bp_\br_\bo_\bf_\bi_\bl_\be, or
+     _\b._\bc_\bs_\bh_\br_\bc file on the remote host.
+
+     The destination user and hostname may have to be specified as
+     ``rhost.rname'' when the destination machine is running the 4.2BSD ver-
+     sion of r\brc\bcp\bp.
+
+4.3-Reno Berkeley Distribution   May 31, 1993                                1
diff --git a/usr/share/man/cat1/rehash.0 b/usr/share/man/cat1/rehash.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/repeat.0 b/usr/share/man/cat1/repeat.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/rm.0 b/usr/share/man/cat1/rm.0
new file mode 100644 (file)
index 0000000..903e4fb
--- /dev/null
@@ -0,0 +1,74 @@
+RM(1)                        BSD Reference Manual                        RM(1)
+
+N\bNA\bAM\bME\bE
+     r\brm\bm - remove directory entries
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     r\brm\bm [-\b-f\bf | -\b-i\bi] [-\b-d\bdP\bPR\bRr\brW\bW] _\bf_\bi_\bl_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The r\brm\bm utility attempts to remove the non-directory type files specified
+     on the command line.  If the permissions of the file do not permit writ-
+     ing, and the standard input device is a terminal, the user is prompted
+     (on the standard error output) for confirmation.
+
+     The options are as follows:
+
+     -\b-d\bd    Attempt to remove directories as well as other types of files.
+
+     -\b-f\bf    Attempt to remove the files without prompting for confirmation, re-
+           gardless of the file's permissions.  If the file does not exist, do
+           not display a diagnostic message or modify the exit status to re-
+           flect an error.  The -\b-f\bf option overrides any previous -\b-i\bi options.
+
+     -\b-i\bi    Request confirmation before attempting to remove each file, regard-
+           less of the file's permissions, or whether or not the standard in-
+           put device is a terminal.  The -\b-i\bi option overrides any previous -\b-f\bf
+           options.
+
+     -\b-P\bP    Overwrite regular files before deleting them.  Files are overwrit-
+           ten three times, first with the byte pattern 0xff, then 0x00, and
+           then 0xff again, before they are deleted.
+
+     -\b-R\bR    Attempt to remove the file hierarchy rooted in each file argument.
+           The -\b-R\bR option implies the -\b-d\bd option.  If the -\b-i\bi option is speci-
+           fied, the user is prompted for confirmation before each directory's
+           contents are processed (as well as before the attempt is made to
+           remove the directory).  If the user does not respond affirmatively,
+           the file hierarchy rooted in that directory is skipped.
+
+     -\b-r\br    Equivalent to -\b-R\bR.
+
+     -\b-W\bW    Attempts to undelete the named files.  Currently, this option can
+           only be used to recover files covered by whiteouts.
+
+     The r\brm\bm utility removes symbolic links, not the files referenced by the
+     links.
+
+     It is an error to attempt to remove the files ``.'' and ``..''.
+
+     The r\brm\bm utility exits 0 if all of the named files or file hierarchies were
+     removed, or if the -\b-f\bf option was specified and all of the existing files
+     or file hierarchies were removed.  If an error occurs, r\brm\bm exits with a
+     value >0.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     rmdir(1),  undelete(2),  unlink(2),  fts(3),  symlink(7)
+
+B\bBU\bUG\bGS\bS
+     The -\b-P\bP option assumes that the underlying file system is a fixed-block
+     file system.  UFS is a fixed-block file system, LFS is not.  In addition,
+     only regular files are overwritten, other types of files are not.
+
+C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY
+     The r\brm\bm utility differs from historical implementations in that the -\b-f\bf op-
+     tion only masks attempts to remove non-existent files instead of masking
+     a large variety of errors.
+
+     Also, historical BSD implementations prompted on the standard output, not
+     the standard error output.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The r\brm\bm command is expected to be IEEE Std1003.2 (``POSIX'') compatible.
+
+4.4BSD                         December 5, 1994                              2
diff --git a/usr/share/man/cat1/rmdir.0 b/usr/share/man/cat1/rmdir.0
new file mode 100644 (file)
index 0000000..d399890
--- /dev/null
@@ -0,0 +1,32 @@
+RMDIR(1)                     BSD Reference Manual                     RMDIR(1)
+
+N\bNA\bAM\bME\bE
+     r\brm\bmd\bdi\bir\br - remove directories
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     r\brm\bmd\bdi\bir\br _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The rmdir utility removes the directory entry specified by each _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by
+     argument, provided it is empty.
+
+     Arguments are processed in the order given.  In order to remove both a
+     parent directory and a subdirectory of that parent, the subdirectory must
+     be specified first so the parent directory is empty when r\brm\bmd\bdi\bir\br tries to
+     remove it.
+
+     The r\brm\bmd\bdi\bir\br utility exits with one of the following values:
+
+     0     Each directory entry specified by a dir operand referred to an emp-
+           ty directory and was removed successfully.
+
+     >0    An error occurred.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     rm(1)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The r\brm\bmd\bdi\bir\br command is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+4.4BSD                           May 31, 1993                                1
diff --git a/usr/share/man/cat1/sleep.0 b/usr/share/man/cat1/sleep.0
new file mode 100644 (file)
index 0000000..7199987
--- /dev/null
@@ -0,0 +1,56 @@
+SLEEP(1)                     BSD Reference Manual                     SLEEP(1)
+
+N\bNA\bAM\bME\bE
+     s\bsl\ble\bee\bep\bp - suspend execution for an interval of time
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     s\bsl\ble\bee\bep\bp _\bs_\be_\bc_\bo_\bn_\bd_\bs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The s\bsl\ble\bee\bep\bp command suspends execution for a minimum of _\bs_\be_\bc_\bo_\bn_\bd_\bs. S\bSl\ble\bee\bep\bp is
+     used to schedule the execution of other commands (see _\bE_\bX_\bA_\bM_\bP_\bL_\bE_\bS below).
+
+     The S\bSl\ble\bee\bep\bp utility exits with one of the following values:
+
+     0     On successful completion, or if the signal SIGALRM was received.
+
+     >0    An error occurred.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+     To schedule the execution of a command for _\bx number seconds later:
+
+           (sleep 1800; sh command_file >& errors)&
+
+     This incantation would wait a half hour before running the script com-
+     mand_file. (See the at(1) utility.)
+
+     To reiteratively run a command (with the csh(1)):
+
+           while (1)
+                   if (! -r zzz.rawdata) then
+                           sleep 300
+                   else
+                           foreach i (`ls *.rawdata`)
+                                   sleep 70
+                                   awk -f collapse_data $i >> results
+                           end
+                           break
+                   endif
+           end
+
+     The scenario for a script such as this might be: a program currently run-
+     ning is taking longer than expected to process a series of files, and it
+     would be nice to have another program start processing the files created
+     by the first program as soon as it is finished (when zzz.rawdata is cre-
+     ated).  The script checks every five minutes for the file zzz.rawdata,
+     when the file is found, then another portion processing is done courte-
+     ously by sleeping for 70 seconds in between each awk job.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     setitimer(2),  alarm(3),  sleep(3),  at(1)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The s\bsl\ble\bee\bep\bp command is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+4.4BSD                          April 18, 1994                               1
diff --git a/usr/share/man/cat1/source.0 b/usr/share/man/cat1/source.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/stop.0 b/usr/share/man/cat1/stop.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/stty.0 b/usr/share/man/cat1/stty.0
new file mode 100644 (file)
index 0000000..ee5ff16
--- /dev/null
@@ -0,0 +1,414 @@
+STTY(1)                      BSD Reference Manual                      STTY(1)
+
+N\bNA\bAM\bME\bE
+     s\bst\btt\bty\by - set the options for a terminal device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     s\bst\btt\bty\by [-\b-a\ba | -\b-e\be | -\b-g\bg] [-\b-f\bf _\bf_\bi_\bl_\be] [operands]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The s\bst\btt\bty\by utility sets or reports on terminal characteristics for the de-
+     vice that is its standard input.  If no options or operands are speci-
+     fied, it reports the settings of a subset of characteristics as well as
+     additional ones if they differ from their default values.  Otherwise it
+     modifies the terminal state according to the specified arguments.  Some
+     combinations of arguments are mutually exclusive on some terminal types.
+
+     The following options are available:
+
+     -\b-a\ba      Display all the current settings for the terminal to standard
+             output as per IEEE Std1003.2 (``POSIX'').
+
+     -\b-e\be      Display all the current settings for the terminal to standard
+             output in the traditional BSD ``all'' and ``everything'' formats.
+
+     -\b-f\bf      Open and use the terminal named by _\bf_\bi_\bl_\be rather than using stan-
+             dard input.  The file is opened using the O_NONBLOCK flag of
+             o\bop\bpe\ben\bn(), making it possible to set or display settings on a termi-
+             nal that might otherwise block on the open.
+
+     -\b-g\bg      Display all the current settings for the terminal to standard
+             output in a form that may be used as an argument to a subsequent
+             invocation of s\bst\btt\bty\by to restore the current terminal state as per
+             IEEE Std1003.2 (``POSIX'').
+
+     The following arguments are available to set the terminal characteris-
+     tics:
+
+   C\bCo\bon\bnt\btr\bro\bol\bl M\bMo\bod\bde\bes\bs:\b:
+
+     Control mode flags affect hardware characteristics associated with the
+     terminal.  This corresponds to the c_cflag in the termios structure.
+
+     p\bpa\bar\bre\ben\bnb\bb (-\b-p\bpa\bar\bre\ben\bnb\bb)
+                 Enable (disable) parity generation and detection.
+
+     p\bpa\bar\bro\bod\bdd\bd (-\b-p\bpa\bar\bro\bod\bdd\bd)
+                 Select odd (even) parity.
+
+     c\bcs\bs5\b5 c\bcs\bs6\b6 c\bcs\bs7\b7 c\bcs\bs8\b8
+                 Select character size, if possible.
+
+     _\bn_\bu_\bm_\bb_\be_\br      Set terminal baud rate to the number given, if possible.  If
+                 the baud rate is set to zero, modem control is no longer as-
+                 serted.
+
+     i\bis\bsp\bpe\bee\bed\bd _\bn_\bu_\bm_\bb_\be_\br
+                 Set terminal input baud rate to the number given, if possi-
+                 ble.  If the input baud rate is set to zero, the input baud
+                 rate is set to the value of the output baud rate.
+
+     o\bos\bsp\bpe\bee\bed\bd _\bn_\bu_\bm_\bb_\be_\br
+                 Set terminal output baud rate to the number given, if possi-
+                 ble.  If the output baud rate is set to zero, modem control
+
+
+
+                 is no longer asserted.
+
+     s\bsp\bpe\bee\bed\bd _\bn_\bu_\bm_\bb_\be_\br
+                 This sets both i\bis\bsp\bpe\bee\bed\bd and o\bos\bsp\bpe\bee\bed\bd to _\bn_\bu_\bm_\bb_\be_\br.
+
+     h\bhu\bup\bpc\bcl\bl (-\b-h\bhu\bup\bpc\bcl\bl)
+                 Stop asserting modem control (do not stop asserting modem
+                 control) on last close.
+
+     h\bhu\bup\bp (-\b-h\bhu\bup\bp)  Same as hupcl (-\b-h\bhu\bup\bpc\bcl\bl).
+
+     c\bcs\bst\bto\bop\bpb\bb (-\b-c\bcs\bst\bto\bop\bpb\bb)
+                 Use two (one) stop bits per character.
+
+     c\bcr\bre\bea\bad\bd (-\b-c\bcr\bre\bea\bad\bd)
+                 Enable (disable) the receiver.
+
+     c\bcl\blo\boc\bca\bal\bl (-\b-c\bcl\blo\boc\bca\bal\bl)
+                 Assume a line without (with) modem control.
+
+     c\bcr\brt\bts\bsc\bct\bts\bs (-\b-c\bcr\brt\bts\bsc\bct\bts\bs)
+                 Enable RTS/CTS flow control.
+
+   I\bIn\bnp\bpu\but\bt M\bMo\bod\bde\bes\bs:\b:
+     This corresponds to the c_iflag in the termios structure.
+
+     i\big\bgn\bnb\bbr\brk\bk (-\b-i\big\bgn\bnb\bbr\brk\bk)
+                 Ignore (do not ignore) break on input.
+
+     b\bbr\brk\bki\bin\bnt\bt (-\b-b\bbr\brk\bki\bin\bnt\bt)
+                 Signal (do not signal) INTR on break.
+
+     i\big\bgn\bnp\bpa\bar\br (-\b-i\big\bgn\bnp\bpa\bar\br)
+                 Ignore (do not ignore) parity errors.
+
+     p\bpa\bar\brm\bmr\brk\bk (-\b-p\bpa\bar\brm\bmr\brk\bk)
+                 Mark (do not mark) parity errors.
+
+     i\bin\bnp\bpc\bck\bk (-\b-i\bin\bnp\bpc\bck\bk)
+                 Enable (disable) input parity checking.
+
+     i\bis\bst\btr\bri\bip\bp (-\b-i\bis\bst\btr\bri\bip\bp)
+                 Strip (do not strip) input characters to seven bits.
+
+     i\bin\bnl\blc\bcr\br (-\b-i\bin\bnl\blc\bcr\br)
+                 Map (do not map) NL to CR on input.
+
+     i\big\bgn\bnc\bcr\br (-\b-i\big\bgn\bnc\bcr\br)
+                 Ignore (do not ignore) CR on input.
+
+     i\bic\bcr\brn\bnl\bl (-\b-i\bic\bcr\brn\bnl\bl)
+                 Map (do not map) CR to NL on input.
+
+     i\bix\bxo\bon\bn (-\b-i\bix\bxo\bon\bn)
+                 Enable (disable) START/STOP output control.  Output from the
+                 system is stopped when the system receives STOP and started
+                 when the system receives START, or if i\bix\bxa\ban\bny\by is set, any char-
+                 acter restarts output.
+
+     i\bix\bxo\bof\bff\bf (-\b-i\bix\bxo\bof\bff\bf)
+                 Request that the system send (not send) START/STOP characters
+                 when the input queue is nearly empty/full.
+
+     i\bix\bxa\ban\bny\by (-\b-i\bix\bxa\ban\bny\by)
+
+                 Allow any character (allow only START) to restart output.
+
+     i\bim\bma\bax\bxb\bbe\bel\bl (-\b-i\bim\bma\bax\bxb\bbe\bel\bl)
+                 The system imposes a limit of MAX_INPUT (currently 255) char-
+                 acters in the input queue.  If i\bim\bma\bax\bxb\bbe\bel\bl is set and the input
+                 queue limit has been reached, subsequent input causes the
+                 system to send an ASCII BEL character to the output queue
+                 (the terminal beeps at you).  Otherwise, if i\bim\bma\bax\bxb\bbe\bel\bl is unset
+                 and the input queue is full, the next input character causes
+                 the entire input and output queues to be discarded.
+
+   O\bOu\but\btp\bpu\but\bt M\bMo\bod\bde\bes\bs:\b:
+     This corresponds to the c_oflag of the termios structure.
+
+     o\bop\bpo\bos\bst\bt (-\b-o\bop\bpo\bos\bst\bt)
+                 Post-process output (do not post-process output; ignore all
+                 other output modes).
+
+     o\bon\bnl\blc\bcr\br (-\b-o\bon\bnl\blc\bcr\br)
+                 Map (do not map) NL to on output.
+
+     o\box\bxt\bta\bab\bbs\bs (-\b-o\box\bxt\bta\bab\bbs\bs)
+                 Expand (do not expand) tabs to spaces on output.
+
+   L\bLo\boc\bca\bal\bl M\bMo\bod\bde\bes\bs:\b:
+
+     Local mode flags (lflags) affect various and sundry characteristics of
+     terminal processing.  Historically the term "local" pertained to new job
+     control features implemented by Jim Kulp on a Pdp 11/70 at IIASA. Later
+     the driver ran on the first VAX at Evans Hall, UC Berkeley, where the job
+     control details were greatly modified but the structure definitions and
+     names remained essentially unchanged.  The second interpretation of the
+     'l' in lflag is ``line discipline flag'' which corresponds to the _\bc_\b__\bl_\bf_\bl_\ba_\bg
+     of the _\bt_\be_\br_\bm_\bi_\bo_\bs structure.
+
+     i\bis\bsi\big\bg (-\b-i\bis\bsi\big\bg)
+                 Enable (disable) the checking of characters against the spe-
+                 cial control characters INTR, QUIT, and SUSP.
+
+     i\bic\bca\ban\bno\bon\bn (-\b-i\bic\bca\ban\bno\bon\bn)
+                 Enable (disable) canonical input (ERASE and KILL processing).
+
+     i\bie\bex\bxt\bte\ben\bn (-\b-i\bie\bex\bxt\bte\ben\bn)
+                 Enable (disable) any implementation defined special control
+                 characters not currently controlled by icanon, isig, or ixon.
+
+     e\bec\bch\bho\bo (-\b-e\bec\bch\bho\bo)
+                 Echo back (do not echo back) every character typed.
+
+     e\bec\bch\bho\boe\be (-\b-e\bec\bch\bho\boe\be)
+                 The ERASE character shall (shall not) visually erase the last
+                 character in the current line from the display, if possible.
+
+     e\bec\bch\bho\bok\bk (-\b-e\bec\bch\bho\bok\bk)
+                 Echo (do not echo) NL after KILL character.
+
+     e\bec\bch\bho\bok\bke\be (-\b-e\bec\bch\bho\bok\bke\be)
+                 The KILL character shall (shall not) visually erase the the
+                 current line from the display, if possible.
+
+     e\bec\bch\bho\bon\bnl\bl (-\b-e\bec\bch\bho\bon\bnl\bl)
+                 Echo (do not echo) NL, even if echo is disabled.
+
+     e\bec\bch\bho\boc\bct\btl\bl (-\b-e\bec\bch\bho\boc\bct\btl\bl)
+                 If e\bec\bch\bho\boc\bct\btl\bl is set, echo control characters as ^X.  Otherwise
+
+                 control characters echo as themselves.
+
+     e\bec\bch\bho\bop\bpr\brt\bt (-\b-e\bec\bch\bho\bop\bpr\brt\bt)
+                 For printing terminals. If set, echo erased characters back-
+                 wards within ``\'' and ``/''.  Otherwise, disable this fea-
+                 ture.
+
+     n\bno\bof\bfl\bls\bsh\bh (-\b-n\bno\bof\bfl\bls\bsh\bh)
+                 Disable (enable) flush after INTR, QUIT, SUSP.
+
+     t\bto\bos\bst\bto\bop\bp (-\b-t\bto\bos\bst\bto\bop\bp)
+                 Send (do not send) SIGTTOU for background output.  This caus-
+                 es background jobs to stop if they attempt terminal output.
+
+     a\bal\blt\btw\bwe\ber\bra\bas\bse\be (-\b-a\bal\blt\btw\bwe\ber\bra\bas\bse\be)
+                 Use (do not use) an alternate word erase algorithm when pro-
+                 cessing WERASE characters.  This alternate algorithm consid-
+                 ers sequences of alphanumeric/underscores as words.  It also
+                 skips the first preceding character in its classification (as
+                 a convenience since the one preceding character could have
+                 been erased with simply an ERASE character.)
+
+     m\bmd\bdm\bmb\bbu\buf\bf (-\b-m\bmd\bdm\bmb\bbu\buf\bf)
+                 If set, flow control output based on condition of Carrier De-
+                 tect.  Otherwise writes return an error if Carrier Detect is
+                 low (and Carrier is not being ignored with the CLOCAL flag.)
+
+     f\bfl\blu\bus\bsh\bho\bo (-\b-f\bfl\blu\bus\bsh\bho\bo)
+                 Indicates output is (is not) being discarded.
+
+     p\bpe\ben\bnd\bdi\bin\bn (-\b-p\bpe\ben\bnd\bdi\bin\bn)
+                 Indicates input is (is not) pending after a switch from non-
+                 canonical to canonical mode and will be re-input when a read
+                 becomes pending or more input arrives.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs:\b:
+
+     _\bc_\bo_\bn_\bt_\br_\bo_\bl_\b-_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bs_\bt_\br_\bi_\bn_\bg
+                 Set _\bc_\bo_\bn_\bt_\br_\bo_\bl_\b-_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br to _\bs_\bt_\br_\bi_\bn_\bg. If string is a single char-
+                 acter, the control character is set to that character.  If
+                 string is the two character sequence "^-" or the string "un-
+                 def" the control character is disabled (i.e. set to
+                 {_POSIX_VDISABLE}.)
+
+                 Recognized control-characters:
+
+
+                       control-
+                       character    Subscript    Description
+                       _________    _________    _______________
+                       eof          VEOF         EOF character
+                       eol          VEOL         EOL character
+                       eol2         VEOL2        EOL2 character
+                       erase        VERASE       ERASE character
+                       werase       VWERASE      WERASE character
+                       intr         VINTR        INTR character
+                       kill         VKILL        KILL character
+                       quit         VQUIT        QUIT character
+                       susp         VSUSP        SUSP character
+                       start        VSTART       START character
+                       stop         VSTOP        STOP character
+                       dsusp        VDSUSP       DSUSP character
+                       lnext        VLNEXT       LNEXT character
+                       reprint      VREPRINT     REPRINT character
+                       status       VSTATUS      STATUS character
+
+
+     m\bmi\bin\bn _\bn_\bu_\bm_\bb_\be_\br
+
+     t\bti\bim\bme\be _\bn_\bu_\bm_\bb_\be_\br
+                 Set the value of min or time to number.  MIN and TIME are
+                 used in Non-Canonical mode input processing (-icanon).
+
+   C\bCo\bom\bmb\bbi\bin\bna\bat\bti\bio\bon\bn M\bMo\bod\bde\bes\bs:\b:
+
+     _\bs_\ba_\bv_\be_\bd _\bs_\be_\bt_\bt_\bi_\bn_\bg_\bs
+                 Set the current terminal characteristics to the saved set-
+                 tings produced by the -\b-g\bg option.
+
+     e\bev\bve\ben\bnp\bp or p\bpa\bar\bri\bit\bty\by
+                 Enable parenb and cs7; disable parodd.
+
+     o\bod\bdd\bdp\bp        Enable parenb, cs7, and parodd.
+
+     -\b-p\bpa\bar\bri\bit\bty\by, -\b-e\bev\bve\ben\bnp\bp, -\b-o\bod\bdd\bdp\bp
+                 Disable parenb, and set cs8.
+
+     n\bnl\bl (-\b-n\bnl\bl)    Enable (disable) icrnl.  In addition -nl unsets inlcr and
+                 igncr.
+
+     e\bek\bk          Reset ERASE and KILL characters back to system defaults.
+
+     s\bsa\ban\bne\be        Resets all modes to reasonable values for interactive termi-
+                 nal use.
+
+     t\btt\bty\by         Set the line discipline to the standard terminal line disci-
+                 pline TTYDISC.
+
+     c\bcr\brt\bt (-\b-c\bcr\brt\bt)  Set (disable) all modes suitable for a CRT display device.
+
+     k\bke\ber\brn\bni\bin\bnf\bfo\bo (-\b-k\bke\ber\brn\bni\bin\bnf\bfo\bo)
+                 Enable (disable) the system generated status line associated
+                 with processing a STATUS character (usually set to ^T).  The
+                 status line consists of the system load average, the current
+                 command name, its process ID, the event the process is wait-
+                 ing on (or the status of the process), the user and system
+                 times, percent cpu, and current memory usage.
+
+     c\bco\bol\blu\bum\bmn\bns\bs _\bn_\bu_\bm_\bb_\be_\br
+                 The terminal size is recorded as having _\bn_\bu_\bm_\bb_\be_\br columns.
+
+     c\bco\bol\bls\bs _\bn_\bu_\bm_\bb_\be_\br
+                 is an alias for c\bco\bol\blu\bum\bmn\bns\bs.\b.
+
+     r\bro\bow\bws\bs _\bn_\bu_\bm_\bb_\be_\br
+                 The terminal size is recorded as having _\bn_\bu_\bm_\bb_\be_\br rows.
+
+     d\bde\bec\bc         Set modes suitable for users of Digital Equipment Corporation
+                 systems ( ERASE, KILL, and INTR characters are set to ^?, ^U,
+                 and ^C; ixany is disabled, and crt is enabled.)
+
+     e\bex\bxt\btp\bpr\bro\boc\bc (-\b-e\bex\bxt\btp\bpr\bro\boc\bc)
+                 If set, this flag indicates that some amount of terminal pro-
+                 cessing is being performed by either the terminal hardware or
+                 by the remote side connected to a pty.
+
+     r\bra\baw\bw (-\b-r\bra\baw\bw)  If set, change the modes of the terminal so that no input or
+                 output processing is performed. If unset, change the modes of
+                 the terminal to some reasonable state that performs input and
+                 output processing.  Note that since the terminal driver no
+                 longer has a single RAW bit, it is not possible to intuit
+                 what flags were set prior to setting r\bra\baw\bw. This means that un-
+                 setting r\bra\baw\bw may not put back all the setting that were previ-
+                 ously in effect.  To set the terminal into a raw state and
+                 then accurately restore it, the following shell code is rec-
+                 ommended:
+
+                 save_state=$(stty -g)
+                 stty raw
+                 ...
+                 stty "$save_state"
+
+
+     s\bsi\biz\bze\be        The size of the terminal is printed as two numbers on a sin-
+                 gle line, first rows, then columns.
+
+   C\bCo\bom\bmp\bpa\bat\bti\bib\bbi\bil\bli\bit\bty\by M\bMo\bod\bde\bes\bs:\b:
+
+     These modes remain for compatibility with the previous version of the
+     stty command.
+
+     a\bal\bll\bl         Reports all the terminal modes as with s\bst\btt\bty\by -\b-a\ba except that
+                 the control characters are printed in a columnar format.
+
+     e\bev\bve\ber\bry\byt\bth\bhi\bin\bng\bg  Same as a\bal\bll\bl.
+
+     c\bco\boo\bok\bke\bed\bd      Same as s\bsa\ban\bne\be.
+
+     c\bcb\bbr\bre\bea\bak\bk      If set, enables b\bbr\brk\bki\bin\bnt\bt, i\bix\bxo\bon\bn, i\bim\bma\bax\bxb\bbe\bel\bl, o\bop\bpo\bos\bst\bt, i\bis\bsi\big\bg, i\bie\bex\bxt\bte\ben\bn,
+                 and -\b-i\bic\bca\ban\bno\bon\bn. If unset, same as s\bsa\ban\bne\be.
+
+     n\bne\bew\bw         Same as t\btt\bty\by.
+
+     o\bol\bld\bd         Same as t\btt\bty\by.
+
+     n\bne\bew\bwc\bcr\brt\bt (-\b-n\bne\bew\bwc\bcr\brt\bt)
+                 Same as c\bcr\brt\bt.
+
+     p\bpa\bas\bss\bs8\b8       The converse of p\bpa\bar\bri\bit\bty\by.
+
+     t\bta\ban\bnd\bde\bem\bm (-\b-t\bta\ban\bnd\bde\bem\bm)
+                 Same as i\bix\bxo\bof\bff\bf.
+
+     d\bde\bec\bcc\bct\btl\blq\bq (-\b-d\bde\bec\bcc\bct\btl\blq\bq)
+                 The converse of i\bix\bxa\ban\bny\by.
+
+     c\bcr\brt\bte\ber\bra\bas\bse\be (-\b-c\bcr\brt\bte\ber\bra\bas\bse\be)
+                 Same as e\bec\bch\bho\boe\be.
+
+     c\bcr\brt\btb\bbs\bs (-\b-c\bcr\brt\btb\bbs\bs)
+                 Same as e\bec\bch\bho\boe\be.
+
+     c\bcr\brt\btk\bki\bil\bll\bl (-\b-c\bcr\brt\btk\bki\bil\bll\bl)
+                 Same as e\bec\bch\bho\bok\bke\be.
+
+     c\bct\btl\ble\bec\bch\bho\bo (-\b-c\bct\btl\ble\bec\bch\bho\bo)
+                 Same as e\bec\bch\bho\boc\bct\btl\bl.
+
+     p\bpr\brt\bte\ber\bra\bas\bse\be (-\b-p\bpr\brt\bte\ber\bra\bas\bse\be)
+                 Same as e\bec\bch\bho\bop\bpr\brt\bt.
+
+     l\bli\bit\bto\bou\but\bt (-\b-l\bli\bit\bto\bou\but\bt)
+                 The converse of o\bop\bpo\bos\bst\bt.
+
+     t\bta\bab\bbs\bs (-\b-t\bta\bab\bbs\bs)
+                 The converse of t\bta\bab\bbs\bs.
+
+
+     b\bbr\brk\bk _\bv_\ba_\bl_\bu_\be   Same as the control character e\beo\bol\bl.
+
+     f\bfl\blu\bus\bsh\bh _\bv_\ba_\bl_\bu_\be
+                 Same as the control character d\bdi\bis\bsc\bca\bar\brd\bd.
+
+     r\brp\bpr\brn\bnt\bt _\bv_\ba_\bl_\bu_\be
+                 Same as the control character r\bre\bep\bpr\bri\bin\bnt\bt.
+
+     The s\bst\btt\bty\by utility exits with a value of 0 if successful, and >0 if an er-
+     ror occurs.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     termios(4)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The s\bst\btt\bty\by function is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.  The flags -\b-e\be and -\b-f\bf are extensions to the standard.
+
+4.4BSD                           June 1, 1994                                7
diff --git a/usr/share/man/cat1/suspend.0 b/usr/share/man/cat1/suspend.0
new file mode 100644 (file)
index 0000000..d6db503
--- /dev/null
@@ -0,0 +1,1456 @@
+CSH(1)                       BSD Reference Manual                       CSH(1)
+
+N\bNA\bAM\bME\bE
+     c\bcs\bsh\bh - a shell (command interpreter) with C-like syntax
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     c\bcs\bsh\bh [-\b-b\bbc\bce\bef\bfi\bin\bns\bst\btv\bvV\bVx\bxX\bX] [arg ...]
+     c\bcs\bsh\bh [-\b-l\bl]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The c\bcs\bsh\bh is a command language interpreter incorporating a history mecha-
+     nism (see H\bHi\bis\bst\bto\bor\bry\by S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs), job control facilities (see J\bJo\bob\bbs\bs), in-
+     teractive file name and user name completion (see F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn),
+     and a C-like syntax. It is used both as an interactive login shell and a
+     shell script command processor.
+
+   A\bAr\brg\bgu\bum\bme\ben\bnt\bt l\bli\bis\bst\bt p\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+     If the first argument (argument 0) to the shell is `-\b-', then this is a
+     login shell.  A login shell also can be specified by invoking the shell
+     with the `-\b-l\bl' flag as the only argument.
+
+     The rest of the flag arguments are interpreted as follows:
+
+     -\b-b\bb     This flag forces a ``break'' from option processing, causing any
+            further shell arguments to be treated as non-option arguments.
+            The remaining arguments will not be interpreted as shell options.
+            This may be used to pass options to a shell script without confu-
+            sion or possible subterfuge.  The shell will not run a set-user ID
+            script without this option.
+
+     -\b-c\bc     Commands are read from the (single) following argument which must
+            be present.  Any remaining arguments are placed in _\ba_\br_\bg_\bv.
+
+     -\b-e\be     The shell exits if any invoked command terminates abnormally or
+            yields a non-zero exit status.
+
+     -\b-f\bf     The shell will start faster, because it will neither search for
+            nor execute commands from the file _\b._\bc_\bs_\bh_\br_\bc in the invoker's home
+            directory.
+
+     -\b-i\bi     The shell is interactive and prompts for its top-level input, even
+            if it appears not to be a terminal.  Shells are interactive with-
+            out this option if their inputs and outputs are terminals.
+
+     -\b-l\bl     The shell is a login shell (only applicable if -\b-l\bl is the only flag
+            specified).
+
+     -\b-n\bn     Commands are parsed, but not executed.  This aids in syntactic
+            checking of shell scripts.
+
+     -\b-s\bs     Command input is taken from the standard input.
+
+     -\b-t\bt     A single line of input is read and executed.  A `\' may be used to
+            escape the newline at the end of this line and continue onto an-
+            other line.
+
+     -\b-v\bv     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set, with the effect that com-
+            mand input is echoed after history substitution.
+
+     -\b-x\bx     Causes the _\be_\bc_\bh_\bo variable to be set, so that commands are echoed
+            immediately before execution.
+
+     -\b-V\bV     Causes the _\bv_\be_\br_\bb_\bo_\bs_\be variable to be set even before _\b._\bc_\bs_\bh_\br_\bc is exe-
+
+
+            cuted.
+
+     -\b-X\bX     Is to -\b-x\bx as -\b-V\bV is to -\b-v\bv.
+
+     After processing of flag arguments, if arguments remain but none of the
+     -\b-c\bc, -\b-i\bi, -\b-s\bs, or -\b-t\bt options were given, the first argument is taken as the
+     name of a file of commands to be executed.  The shell opens this file,
+     and saves its name for possible resubstitution by `$0'.  Since many sys-
+     tems use either the standard version 6 or version 7 shells whose shell
+     scripts are not compatible with this shell, the shell will execute such a
+     `standard' shell if the first character of a script is not a `#', i.e.,
+     if the script does not start with a comment.  Remaining arguments ini-
+     tialize the variable _\ba_\br_\bg_\bv.
+
+     An instance of c\bcs\bsh\bh begins by executing commands from the file
+     _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bc_\bs_\bh_\br_\bc and, if this is a login shell, _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bi_\bn. It then ex-
+     ecutes commands from _\b._\bc_\bs_\bh_\br_\bc in the _\bh_\bo_\bm_\be directory of the invoker, and, if
+     this is a login shell, the file _\b._\bl_\bo_\bg_\bi_\bn in the same location.  It is typi-
+     cal for users on crt's to put the command ``stty crt'' in their _\b._\bl_\bo_\bg_\bi_\bn
+     file, and to also invoke tset(1) there.
+
+     In the normal case, the shell will begin reading commands from the termi-
+     nal, prompting with `% '.  Processing of arguments and the use of the
+     shell to process files containing command scripts will be described lat-
+     er.
+
+     The shell repeatedly performs the following actions: a line of command
+     input is read and broken into _\bw_\bo_\br_\bd_\bs. This sequence of words is placed on
+     the command history list and parsed.  Finally each command in the current
+     line is executed.
+
+     When a login shell terminates it executes commands from the files _\b._\bl_\bo_\bg_\bo_\bu_\bt
+     in the user's _\bh_\bo_\bm_\be directory and _\b/_\be_\bt_\bc_\b/_\bc_\bs_\bh_\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+   L\bLe\bex\bxi\bic\bca\bal\bl s\bst\btr\bru\buc\bct\btu\bur\bre\be
+     The shell splits input lines into words at blanks and tabs with the fol-
+     lowing exceptions.  The characters `&' `|' `;' `<' `>' `(' `)' form sepa-
+     rate words.  If doubled in `&&', `||', `<<' or `>>' these pairs form sin-
+     gle words.  These parser metacharacters may be made part of other words,
+     or prevented their special meaning, by preceding them with `\'.  A new-
+     line preceded by a `\' is equivalent to a blank.
+
+     Strings enclosed in matched pairs of quotations, `'', ``' or `"', form
+     parts of a word; metacharacters in these strings, including blanks and
+     tabs, do not form separate words.  These quotations have semantics to be
+     described later.  Within pairs of `'' or `"' characters, a newline pre-
+     ceded by a `\' gives a true newline character.
+
+     When the shell's input is not a terminal, the character `#' introduces a
+     comment that continues to the end of the input line.  It is prevented
+     this special meaning when preceded by `\' and in quotations using ``',
+     `'', and `"'.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+     A simple command is a sequence of words, the first of which specifies the
+     command to be executed.  A simple command or a sequence of simple com-
+     mands separated by `|' characters forms a pipeline.  The output of each
+     command in a pipeline is connected to the input of the next.  Sequences
+     of pipelines may be separated by `;', and are then executed sequentially.
+     A sequence of pipelines may be executed without immediately waiting for
+     it to terminate by following it with an `&'.
+
+     Any of the above may be placed in `(' `)' to form a simple command (that
+     may be a component of a pipeline, etc.).  It is also possible to separate
+     pipelines with `||' or `&&' showing, as in the C language, that the sec-
+     ond is to be executed only if the first fails or succeeds respectively.
+     (See _\bE_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\bs.)
+
+   J\bJo\bob\bbs\bs
+     The shell associates a _\bj_\bo_\bb with each pipeline.  It keeps a table of cur-
+     rent jobs, printed by the _\bj_\bo_\bb_\bs command, and assigns them small integer
+     numbers.  When a job is started asynchronously with `&', the shell prints
+     a line that looks like:
+
+           [1] 1234
+
+     showing that the job which was started asynchronously was job number 1
+     and had one (top-level) process, whose process id was 1234.
+
+     If you are running a job and wish to do something else you may hit the
+     key ^\b^Z\bZ (control-Z) which sends a STOP signal to the current job.  The
+     shell will then normally show that the job has been `Stopped', and print
+     another prompt.  You can then manipulate the state of this job, putting
+     it in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd with the _\bb_\bg command, or run some other commands and
+     eventually bring the job back into the foreground with the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd
+     command _\bf_\bg. A ^\b^Z\bZ takes effect immediately and is like an interrupt in
+     that pending output and unread input are discarded when it is typed.
+     There is another special key ^\b^Y\bY that does not generate a STOP signal un-
+     til a program attempts to read(2) it.  This request can usefully be typed
+     ahead when you have prepared some commands for a job that you wish to
+     stop after it has read them.
+
+     A job being run in the background will stop if it tries to read from the
+     terminal.  Background jobs are normally allowed to produce output, but
+     this can be disabled by giving the command ``stty tostop''.  If you set
+     this tty option, then background jobs will stop when they try to produce
+     output like they do when they try to read input.
+
+     There are several ways to refer to jobs in the shell.  The character `%'
+     introduces a job name.  If you wish to refer to job number 1, you can
+     name it as `%1'.  Just naming a job brings it to the foreground; thus
+     `%1' is a synonym for `fg %1', bringing job number 1 back into the fore-
+     ground.  Similarly saying `%1 &' resumes job number 1 in the background.
+     Jobs can also be named by prefixes of the string typed in to start them,
+     if these prefixes are unambiguous, thus `%ex' would normally restart a
+     suspended ex(1) job, if there were only one suspended job whose name be-
+     gan with the string `ex'.  It is also possible to say `%?string' which
+     specifies a job whose text contains _\bs_\bt_\br_\bi_\bn_\bg, if there is only one such
+     job.
+
+     The shell maintains a notion of the current and previous jobs.  In output
+     about jobs, the current job is marked with a `+' and the previous job
+     with a `-'.  The abbreviation `%+' refers to the current job and `%-'
+     refers to the previous job.  For close analogy with the syntax of the
+     _\bh_\bi_\bs_\bt_\bo_\br_\by mechanism (described below), `%%' is also a synonym for the cur-
+     rent job.
+
+     The job control mechanism requires that the stty(1) option n\bne\bew\bw be set. It
+     is an artifact from a _\bn_\be_\bw implementation of the tty driver that allows
+     generation of interrupt characters from the keyboard to tell jobs to
+     stop.  See stty(1) for details on setting options in the new tty driver.
+
+   S\bSt\bta\bat\btu\bus\bs r\bre\bep\bpo\bor\brt\bti\bin\bng\bg
+     This shell learns immediately whenever a process changes state.  It nor-
+     mally informs you whenever a job becomes blocked so that no further
+     progress is possible, but only just before it prints a prompt.  This is
+     done so that it does not otherwise disturb your work.  If, however, you
+     set the shell variable _\bn_\bo_\bt_\bi_\bf_\by, the shell will notify you immediately of
+     changes of status in background jobs.  There is also a shell command
+     _\bn_\bo_\bt_\bi_\bf_\by that marks a single process so that its status changes will be im-
+     mediately reported.  By default _\bn_\bo_\bt_\bi_\bf_\by marks the current process; simply
+     say `notify' after starting a background job to mark it.
+
+     When you try to leave the shell while jobs are stopped, you will be
+     warned that `You have stopped jobs.'  You may use the _\bj_\bo_\bb_\bs command to see
+     what they are.  If you do this or immediately try to exit again, the
+     shell will not warn you a second time, and the suspended jobs will be
+     terminated.
+
+   F\bFi\bil\ble\be N\bNa\bam\bme\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+     When the file name completion feature is enabled by setting the shell
+     variable _\bf_\bi_\bl_\be_\bc (see s\bse\bet\bt), c\bcs\bsh\bh will interactively complete file names and
+     user names from unique prefixes, when they are input from the terminal
+     followed by the escape character (the escape key, or control-[) For exam-
+     ple, if the current directory looks like
+
+           DSC.OLD  bin      cmd      lib      xmpl.c
+           DSC.NEW  chaosnet cmtest   mail     xmpl.o
+           bench    class    dev      mbox     xmpl.out
+
+     and the input is
+
+           % vi ch<escape>
+
+     c\bcs\bsh\bh will complete the prefix ``ch'' to the only matching file name
+     ``chaosnet'', changing the input line to
+
+           % vi chaosnet
+
+     However, given
+
+           % vi D<escape>
+
+     c\bcs\bsh\bh will only expand the input to
+
+           % vi DSC.
+
+     and will sound the terminal bell to indicate that the expansion is incom-
+     plete, since there are two file names matching the prefix ``D''.
+
+     If a partial file name is followed by the end-of-file character (usually
+     control-D), then, instead of completing the name, c\bcs\bsh\bh will list all file
+     names matching the prefix.  For example, the input
+
+           % vi D<control-D>
+
+     causes all files beginning with ``D'' to be listed:
+
+           DSC.NEW   DSC.OLD
+
+     while the input line remains unchanged.
+
+     The same system of escape and end-of-file can also be used to expand par-
+     tial user names, if the word to be completed (or listed) begins with the
+     character ``~''.  For example, typing
+
+           cd ~ro<escape>
+
+     may produce the expansion
+
+           cd ~root
+
+     The use of the terminal bell to signal errors or multiple matches can be
+     inhibited by setting the variable _\bn_\bo_\bb_\be_\be_\bp.
+
+     Normally, all files in the particular directory are candidates for name
+     completion.  Files with certain suffixes can be excluded from considera-
+     tion by setting the variable _\bf_\bi_\bg_\bn_\bo_\br_\be to the list of suffixes to be ig-
+     nored.  Thus, if _\bf_\bi_\bg_\bn_\bo_\br_\be is set by the command
+
+           % set fignore = (.o .out)
+
+     then typing
+
+           % vi x<escape>
+
+     would result in the completion to
+
+           % vi xmpl.c
+
+     ignoring the files "xmpl.o" and "xmpl.out".  However, if the only comple-
+     tion possible requires not ignoring these suffixes, then they are not ig-
+     nored.  In addition, _\bf_\bi_\bg_\bn_\bo_\br_\be does not affect the listing of file names by
+     control-D.  All files are listed regardless of their suffixes.
+
+   S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     We now describe the various transformations the shell performs on the in-
+     put in the order in which they occur.
+
+   H\bHi\bis\bst\bto\bor\bry\by s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bns\bs
+     History substitutions place words from previous command input as portions
+     of new commands, making it easy to repeat commands, repeat arguments of a
+     previous command in the current command, or fix spelling mistakes in the
+     previous command with little typing and a high degree of confidence.
+     History substitutions begin with the character `!' and may begin _\ba_\bn_\by_\bw_\bh_\be_\br_\be
+     in the input stream (with the proviso that they d\bdo\bo n\bno\bot\bt nest.)  This `!'
+     may be preceded by a `\' to prevent its special meaning; for convenience,
+     an `!' is passed unchanged when it is followed by a blank, tab, newline,
+     `=' or `('.  (History substitutions also occur when an input line begins
+     with `^'.  This special abbreviation will be described later.)  Any input
+     line that contains history substitution is echoed on the terminal before
+     it is executed as it could have been typed without history substitution.
+
+     Commands input from the terminal that consist of one or more words are
+     saved on the history list.  The history substitutions reintroduce se-
+     quences of words from these saved commands into the input stream.  The
+     size of the history list is controlled by the _\bh_\bi_\bs_\bt_\bo_\br_\by variable; the pre-
+     vious command is always retained, regardless of the value of the history
+     variable.  Commands are numbered sequentially from 1.
+
+     For definiteness, consider the following output from the _\bh_\bi_\bs_\bt_\bo_\br_\by command:
+
+            9  write michael
+           10  ex write.c
+           11  cat oldwrite.c
+           12  diff *write.c
+
+     The commands are shown with their event numbers.  It is not usually nec-
+     essary to use event numbers, but the current event number can be made
+     part of the _\bp_\br_\bo_\bm_\bp_\bt by placing an `!' in the prompt string.
+
+     With the current event 13 we can refer to previous events by event number
+     `!11', relatively as in `!-2' (referring to the same event), by a prefix
+     of a command word as in `!d' for event 12 or `!wri' for event 9, or by a
+     string contained in a word in the command as in `!?mic?' also referring
+     to event 9.  These forms, without further change, simply reintroduce the
+     words of the specified events, each separated by a single blank.  As a
+     special case, `!!' refers to the previous command; thus `!!'  alone is a
+     _\br_\be_\bd_\bo.
+
+     To select words from an event we can follow the event specification by a
+     `:' and a designator for the desired words.  The words of an input line
+     are numbered from 0, the first (usually command) word being 0, the second
+     word (first argument) being 1, etc.  The basic word designators are:
+
+           0       first (command) word
+           _\bn       _\bn'th argument
+           ^       first argument,  i.e., `1'
+           $       last argument
+           %       word matched by (immediately preceding) ?_\bs? search
+           _\bx_\b-_\by     range of words
+           _\b-_\by      abbreviates _\b`_\b0_\b-_\by_\b'
+           *       abbreviates `^-$', or nothing if only 1 word in event
+           _\bx_\b*      abbreviates _\b`_\bx_\b-_\b$_\b'
+           _\bx_\b-      like _\b`_\bx_\b*_\b' but omitting word `$'
+
+     The `:' separating the event specification from the word designator can
+     be omitted if the argument selector begins with a `^', `$', `*' `-' or
+     `%'.  After the optional word designator can be placed a sequence of mod-
+     ifiers, each preceded by a `:'.  The following modifiers are defined:
+
+           h       Remove a trailing pathname component, leaving the head.
+           r       Remove a trailing `.xxx' component, leaving the root name.
+           e       Remove all but the extension `.xxx' part.
+           s_\b/_\bl_\b/_\br_\b/  Substitute _\bl for _\br
+           t       Remove all leading pathname components, leaving the tail.
+           &       Repeat the previous substitution.
+           g       Apply the change once on each word, prefixing the above,
+                   e.g., `g&'.
+           a       Apply the change as many times as possible on a single
+                   word, prefixing the above. It can be used together with `g'
+                   to apply a substitution globally.
+           p       Print the new command line but do not execute it.
+           q       Quote the substituted words, preventing further substitu-
+                   tions.
+           x       Like q, but break into words at blanks, tabs and newlines.
+
+     Unless preceded by a `g' the change is applied only to the first modifi-
+     able word.  With substitutions, it is an error for no word to be applica-
+     ble.
+
+     The left hand side of substitutions are not regular expressions in the
+     sense of the editors, but instead strings.  Any character may be used as
+     the delimiter in place of `/'; a `\' quotes the delimiter into the _\bl and
+     _\br strings.  The character `&' in the right hand side is replaced by the
+     text from the left.  A `\' also quotes `&'.  A null _\bl (`//') uses the
+     previous string either from an _\bl or from a contextual scan string _\bs in
+     `!?_\bs\?'. The trailing delimiter in the substitution may be omitted if a
+     newline follows immediately as may the trailing `?' in a contextual scan.
+
+     A history reference may be given without an event specification, e.g.,
+     `!$'.  Here, the reference is to the previous command unless a previous
+     history reference occurred on the same line in which case this form re-
+     peats the previous reference.  Thus `!?foo?^ !$' gives the first and last
+     arguments from the command matching `?foo?'.
+
+     A special abbreviation of a history reference occurs when the first non-
+     blank character of an input line is a `^'.  This is equivalent to `!:s^'
+     providing a convenient shorthand for substitutions on the text of the
+     previous line.  Thus `^lb^lib' fixes the spelling of `lib' in the previ-
+     ous command.  Finally, a history substitution may be surrounded with `{'
+     and `}' if necessary to insulate it from the characters that follow.
+     Thus, after `ls -ld ~paul' we might do `!{l}a' to do `ls -ld ~paula',
+     while `!la' would look for a command starting with `la'.
+
+   Q\bQu\buo\bot\bta\bat\bti\bio\bon\bns\bs w\bwi\bit\bth\bh '\b' a\ban\bnd\bd "\b"
+     The quotation of strings by `'' and `"' can be used to prevent all or
+     some of the remaining substitutions.  Strings enclosed in `'' are pre-
+     vented any further interpretation.  Strings enclosed in `"' may be ex-
+     panded as described below.
+
+     In both cases the resulting text becomes (all or part of) a single word;
+     only in one special case (see _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn below) does a `"'
+     quoted string yield parts of more than one word; `'' quoted strings never
+     do.
+
+   A\bAl\bli\bia\bas\bs s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a list of aliases that can be established, displayed
+     and modified by the _\ba_\bl_\bi_\ba_\bs and _\bu_\bn_\ba_\bl_\bi_\ba_\bs commands.  After a command line is
+     scanned, it is parsed into distinct commands and the first word of each
+     command, left-to-right, is checked to see if it has an alias.  If it
+     does, then the text that is the alias for that command is reread with the
+     history mechanism available as though that command were the previous in-
+     put line.  The resulting words replace the command and argument list.  If
+     no reference is made to the history list, then the argument list is left
+     unchanged.
+
+     Thus if the alias for `ls' is `ls -l' the command `ls /usr' would map to
+     `ls -l /usr', the argument list here being undisturbed.  Similarly if the
+     alias for `lookup' was `grep !^ /etc/passwd' then `lookup bill' would map
+     to `grep bill /etc/passwd'.
+
+     If an alias is found, the word transformation of the input text is per-
+     formed and the aliasing process begins again on the reformed input line.
+     Looping is prevented if the first word of the new text is the same as the
+     old by flagging it to prevent further aliasing.  Other loops are detected
+     and cause an error.
+
+     Note that the mechanism allows aliases to introduce parser metasyntax.
+     Thus, we can `alias print 'pr \!* | lpr'' to make a command that _\bp_\br's its
+     arguments to the line printer.
+
+   V\bVa\bar\bri\bia\bab\bbl\ble\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The shell maintains a set of variables, each of which has as value a list
+     of zero or more words.  Some of these variables are set by the shell or
+     referred to by it.  For instance, the _\ba_\br_\bg_\bv variable is an image of the
+     shell's argument list, and words of this variable's value are referred to
+     in special ways.
+
+     The values of variables may be displayed and changed by using the _\bs_\be_\bt and
+     _\bu_\bn_\bs_\be_\bt commands.  Of the variables referred to by the shell a number are
+     toggles; the shell does not care what their value is, only whether they
+     are set or not.  For instance, the _\bv_\be_\br_\bb_\bo_\bs_\be variable is a toggle that
+     causes command input to be echoed.  The setting of this variable results
+     from the -\b-v\bv command line option.
+
+     Other operations treat variables numerically.  The `@' command permits
+     numeric calculations to be performed and the result assigned to a vari-
+     able.  Variable values are, however, always represented as (zero or more)
+     strings.  For the purposes of numeric operations, the null string is con-
+     sidered to be zero, and the second and additional words of multiword val-
+     ues are ignored.
+
+     After the input line is aliased and parsed, and before each command is
+     executed, variable substitution is performed keyed by `$' characters.
+     This expansion can be prevented by preceding the `$' with a `\' except
+     within `"'s where it _\ba_\bl_\bw_\ba_\by_\bs occurs, and within `''s where it _\bn_\be_\bv_\be_\br oc-
+     curs.  Strings quoted by ``' are interpreted later (see C\bCo\bom\bmm\bma\ban\bnd\bd
+     s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn below) so `$' substitution does not occur there until later,
+     if at all.  A `$' is passed unchanged if followed by a blank, tab, or
+     end-of-line.
+
+     Input/output redirections are recognized before variable expansion, and
+     are variable expanded separately.  Otherwise, the command name and entire
+     argument list are expanded together.  It is thus possible for the first
+     (command) word (to this point) to generate more than one word, the first
+     of which becomes the command name, and the rest of which become argu-
+     ments.
+
+     Unless enclosed in `"' or given the `:q' modifier the results of variable
+     substitution may eventually be command and filename substituted.  Within
+     `"', a variable whose value consists of multiple words expands to a (por-
+     tion of) a single word, with the words of the variables value separated
+     by blanks.  When the `:q' modifier is applied to a substitution the vari-
+     able will expand to multiple words with each word separated by a blank
+     and quoted to prevent later command or filename substitution.
+
+     The following metasequences are provided for introducing variable values
+     into the shell input.  Except as noted, it is an error to reference a
+     variable that is not set.
+
+           $name
+           ${name}
+                   Are replaced by the words of the value of variable _\bn_\ba_\bm_\be,
+                   each separated by a blank.  Braces insulate _\bn_\ba_\bm_\be from fol-
+                   lowing characters that would otherwise be part of it.
+                   Shell variables have names consisting of up to 20 letters
+                   and digits starting with a letter.  The underscore charac-
+                   ter is considered a letter.  If _\bn_\ba_\bm_\be is not a shell vari-
+                   able, but is set in the environment, then that value is re-
+                   turned (but : modifiers and the other forms given below are
+                   not available here).
+           $name[selector]
+           ${name[selector] }
+                   May be used to select only some of the words from the value
+                   of _\bn_\ba_\bm_\be. The selector is subjected to `$' substitution and
+                   may consist of a single number or two numbers separated by
+                   a `-'.  The first word of a variables value is numbered
+                   `1'.  If the first number of a range is omitted it defaults
+                   to `1'.  If the last number of a range is omitted it de-
+                   faults to `$#name'.  The selector `*' selects all words.
+                   It is not an error for a range to be empty if the second
+                   argument is omitted or in range.
+           $#name
+           ${#name}
+                   Gives the number of words in the variable.  This is useful
+                   for later use in a `$argv[selector]'.
+           $0      Substitutes the name of the file from which command input
+                   is being read.  An error occurs if the name is not known.
+           $number
+           ${number}
+                   Equivalent to `$argv[number]'.
+           $*      Equivalent to `$argv[*]'.  The modifiers `:e', `:h', `:t',
+                   `:r', `:q' and `:x' may be applied to the substitutions
+                   above as may `:gh', `:gt' and `:gr'.  If braces `{' '}' ap-
+                   pear in the command form then the modifiers must appear
+                   within the braces.  The current implementation allows only
+                   one `:' modifier on each `$' expansion.
+
+     The following substitutions may not be modified with `:' modifiers.
+           $?name
+           ${?name}
+                   Substitutes the string `1' if name is set, `0' if it is
+                   not.
+           $?0     Substitutes `1' if the current input filename is known, `0'
+                   if it is not.
+           $$      Substitute the (decimal) process number of the (parent)
+                   shell.
+           $!      Substitute the (decimal) process number of the last back-
+                   ground process started by this shell.
+           $<      Substitutes a line from the standard input, with no further
+                   interpretation.  It can be used to read from the keyboard
+                   in a shell script.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd a\ban\bnd\bd f\bfi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     The remaining substitutions, command and filename substitution, are ap-
+     plied selectively to the arguments of builtin commands.  By selectively,
+     we mean that portions of expressions which are not evaluated are not sub-
+     jected to these expansions.  For commands that are not internal to the
+     shell, the command name is substituted separately from the argument list.
+     This occurs very late, after input-output redirection is performed, and
+     in a child of the main shell.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     Command substitution is shown by a command enclosed in ``'.  The output
+     from such a command is normally broken into separate words at blanks,
+     tabs and newlines, with null words being discarded; this text then re-
+     places the original string.  Within `"'s, only newlines force new words;
+     blanks and tabs are preserved.
+
+     In any case, the single final newline does not force a new word.  Note
+     that it is thus possible for a command substitution to yield only part of
+     a word, even if the command outputs a complete line.
+
+   F\bFi\bil\ble\ben\bna\bam\bme\be s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+     If a word contains any of the characters `*', `?', `[' or `{' or begins
+     with the character `~', then that word is a candidate for filename sub-
+     stitution, also known as `globbing'.  This word is then regarded as a
+     pattern, and replaced with an alphabetically sorted list of file names
+     that match the pattern.  In a list of words specifying filename substitu-
+     tion it is an error for no pattern to match an existing file name, but it
+     is not required for each pattern to match.  Only the metacharacters `*',
+     `?' and `[' imply pattern matching, the characters `~' and `{' being more
+     akin to abbreviations.
+
+     In matching filenames, the character `.' at the beginning of a filename
+     or immediately following a `/', as well as the character `/' must be
+     matched explicitly.  The character `*' matches any string of characters,
+     including the null string.  The character `?' matches any single charac-
+     ter.  The sequence `[...]' matches any one of the characters enclosed.
+     Within `[...]', a pair of characters separated by `-' matches any charac-
+     ter lexically between the two (inclusive).
+
+     The character `~' at the beginning of a filename refers to home directo-
+     ries.  Standing alone, i.e., `~' it expands to the invokers home directo-
+     ry as reflected in the value of the variable _\bh_\bo_\bm_\be. When followed by a
+     name consisting of letters, digits and `-' characters, the shell searches
+     for a user with that name and substitutes their home directory;  thus
+     `~ken' might expand to `/usr/ken' and `~ken/chmach' to `/usr/ken/chmach'.
+     If the character `~' is followed by a character other than a letter or
+     `/' or does not appear at the beginning of a word, it is left undis-
+     turbed.
+
+     The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'.  Left to
+     right order is preserved, with results of matches being sorted separately
+     at a low level to preserve this order.  This construct may be nested.
+     Thus, `~source/s1/{oldls,ls}.c' expands to `/usr/source/s1/oldls.c
+     /usr/source/s1/ls.c' without chance of error if the home directory for
+     `source' is `/usr/source'.  Similarly `../{memo,*box}' might expand to
+     `../memo ../box ../mbox'.  (Note that `memo' was not sorted with the re-
+     sults of the match to `*box'.)  As a special case `{', `}' and `{}' are
+     passed undisturbed.
+
+   I\bIn\bnp\bpu\but\bt/\b/o\bou\but\btp\bpu\but\bt
+     The standard input and the standard output of a command may be redirected
+     with the following syntax:
+
+
+
+           < name  Open file _\bn_\ba_\bm_\be (which is first variable, command and file-
+                   name expanded) as the standard input.
+           << word
+                   Read the shell input up to a line that is identical to
+                   _\bw_\bo_\br_\bd. _\bW_\bo_\br_\bd is not subjected to variable, filename or com-
+                   mand substitution, and each input line is compared to _\bw_\bo_\br_\bd
+                   before any substitutions are done on the input line.  Un-
+                   less a quoting `\', `"', `' or ``' appears in _\bw_\bo_\br_\bd, vari-
+                   able and command substitution is performed on the interven-
+                   ing lines, allowing `\' to quote `$', `\' and ``'.  Com-
+                   mands that are substituted have all blanks, tabs, and new-
+                   lines preserved, except for the final newline which is
+                   dropped.  The resultant text is placed in an anonymous tem-
+                   porary file that is given to the command as its standard
+                   input.
+           > name
+           >! name
+           >& name
+           >&! name
+                   The file _\bn_\ba_\bm_\be is used as the standard output.  If the file
+                   does not exist then it is created; if the file exists, it
+                   is truncated; its previous contents are lost.
+
+                   If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br is set, then the file must not
+                   exist or be a character special file (e.g., a terminal or
+                   `/dev/null') or an error results.  This helps prevent acci-
+                   dental destruction of files.  Here, the `!' forms can be
+                   used to suppress this check.
+
+                   The forms involving `&' route the standard error output in-
+                   to the specified file as well as the standard output.  _\bN_\ba_\bm_\be
+                   is expanded in the same way as `<' input filenames are.
+           >> name
+           >>& name
+           >>! name
+           >>&! name
+                   Uses file _\bn_\ba_\bm_\be as the standard output; like `>' but places
+                   output at the end of the file.  If the variable _\bn_\bo_\bc_\bl_\bo_\bb_\bb_\be_\br
+                   is set, then it is an error for the file not to exist un-
+                   less one of the `!' forms is given.  Otherwise similar to
+                   `>'.
+
+     A command receives the environment in which the shell was invoked as mod-
+     ified by the input-output parameters and the presence of the command in a
+     pipeline.  Thus, unlike some previous shells, commands run from a file of
+     shell commands have no access to the text of the commands by default; in-
+     stead they receive the original standard input of the shell.  The `<<'
+     mechanism should be used to present inline data.  This permits shell com-
+     mand scripts to function as components of pipelines and allows the shell
+     to block read its input.  Note that the default standard input for a com-
+     mand run detached is _\bn_\bo_\bt modified to be the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl; instead
+     the standard input remains as the original standard input of the shell.
+     If this is a terminal and if the process attempts to read from the termi-
+     nal, then the process will block and the user will be notified (see _\bJ_\bo_\bb_\bs
+     above).
+
+     The standard error output may be directed through a pipe with the stan-
+     dard output.  Simply use the form `|&' instead of just `|'.
+
+   E\bEx\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
+     Several of the builtin commands (to be described later) take expressions,
+     in which the operators are similar to those of C, with the same prece-
+     dence.  These expressions appear in the @\b@,\b, _\be_\bx_\bi_\bt, _\bi_\bf, and _\bw_\bh_\bi_\bl_\be commands.
+     The following operators are available:
+
+           ||  &&  | ^  &  ==  !=  =~  !~  <=  >= <  > <<  >>  +  -  *  /  %
+           !  ~  (  )
+
+     Here the precedence increases to the right, `==' `!=' `=~' and `!~', `<='
+     `>=' `<' and `>', `<<' and `>>', `+' and `-', `*' `/' and `%' being, in
+     groups, at the same level.  The `==' `!=' `=~' and `!~' operators compare
+     their arguments as strings; all others operate on numbers.  The operators
+     `=~' and `!~' are like `!=' and `==' except that the right hand side is a
+     _\bp_\ba_\bt_\bt_\be_\br_\bn (containing, e.g., `*'s, `?'s and instances of `[...]')  against
+     which the left hand operand is matched.  This reduces the need for use of
+     the _\bs_\bw_\bi_\bt_\bc_\bh statement in shell scripts when all that is really needed is
+     pattern matching.
+
+     Strings that begin with `0' are considered octal numbers.  Null or miss-
+     ing arguments are considered `0'.  The result of all expressions are
+     strings, which represent decimal numbers.  It is important to note that
+     no two components of an expression can appear in the same word; except
+     when adjacent to components of expressions that are syntactically signif-
+     icant to the parser (`&' `|' `<' `>' `(' `)'), they should be surrounded
+     by spaces.
+
+     Also available in expressions as primitive operands are command execu-
+     tions enclosed in `{' and `}' and file enquiries of the form -\b-l\bl _\bn_\ba_\bm_\be
+     where l\bl is one of:
+
+           r       read access
+           w       write access
+           x       execute access
+           e       existence
+           o       ownership
+           z       zero size
+           f       plain file
+           d       directory
+
+     The specified name is command and filename expanded and then tested to
+     see if it has the specified relationship to the real user.  If the file
+     does not exist or is inaccessible then all enquiries return false, i.e.,
+     `0'.  Command executions succeed, returning true, i.e., `1', if the com-
+     mand exits with status 0, otherwise they fail, returning false, i.e.,
+     `0'.  If more detailed status information is required then the command
+     should be executed outside an expression and the variable _\bs_\bt_\ba_\bt_\bu_\bs exam-
+     ined.
+
+   C\bCo\bon\bnt\btr\bro\bol\bl f\bfl\blo\bow\bw
+     The shell contains several commands that can be used to regulate the flow
+     of control in command files (shell scripts) and (in limited but useful
+     ways) from terminal input.  These commands all operate by forcing the
+     shell to reread or skip in its input and, because of the implementation,
+     restrict the placement of some of the commands.
+
+     The f\bfo\bor\bre\bea\bac\bch\bh, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be statements, as well as the i\bif\bf-\b-t\bth\bhe\ben\bn-\b-e\bel\bls\bse\be
+     form of the i\bif\bf statement require that the major keywords appear in a sin-
+     gle simple command on an input line as shown below.
+
+     If the shell's input is not seekable, the shell buffers up input whenever
+     a loop is being read and performs seeks in this internal buffer to accom-
+     plish the rereading implied by the loop.  (To the extent that this al-
+     lows, backward goto's will succeed on non-seekable inputs.)
+
+   B\bBu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bds\bs
+     Builtin commands are executed within the shell.  If a builtin command oc-
+     curs as any component of a pipeline except the last then it is executed
+     in a subshell.
+
+           a\bal\bli\bia\bas\bs
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be
+
+           a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The first form prints all aliases.  The second form prints
+                   the alias for name.  The final form assigns the specified
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt as the alias of _\bn_\ba_\bm_\be; _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is command and
+                   filename substituted.  _\bN_\ba_\bm_\be is not allowed to be _\ba_\bl_\bi_\ba_\bs or
+                   _\bu_\bn_\ba_\bl_\bi_\ba_\bs.
+
+           a\bal\bll\blo\boc\bc   Shows the amount of dynamic memory acquired, broken down
+                   into used and free memory.  With an argument shows the num-
+                   ber of free and used blocks in each size category.  The
+                   categories start at size 8 and double at each step.  This
+                   command's output may vary across system types, since sys-
+                   tems other than the VAX may use a different memory alloca-
+                   tor.
+
+           b\bbg\bg
+           b\bbg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Puts the current or specified jobs into the background,
+                   continuing them if they were stopped.
+
+           b\bbr\bre\bea\bak\bk   Causes execution to resume after the e\ben\bnd\bd of the nearest en-
+                   closing f\bfo\bor\bre\bea\bac\bch\bh or w\bwh\bhi\bil\ble\be. The remaining commands on the
+                   current line are executed.  Multi-level breaks are thus
+                   possible by writing them all on one line.
+
+           b\bbr\bre\bea\bak\bks\bsw\bw
+                   Causes a break from a s\bsw\bwi\bit\btc\bch\bh, resuming after the e\ben\bnd\bds\bsw\bw.
+
+           c\bca\bas\bse\be _\bl_\ba_\bb_\be_\bl:
+                   A label in a s\bsw\bwi\bit\btc\bch\bh statement as discussed below.
+
+           c\bcd\bd
+           c\bcd\bd _\bn_\ba_\bm_\be
+           c\bch\bhd\bdi\bir\br
+           c\bch\bhd\bdi\bir\br _\bn_\ba_\bm_\be
+                   Change the shell's working directory to directory _\bn_\ba_\bm_\be. If
+                   no argument is given then change to the home directory of
+                   the user.  If _\bn_\ba_\bm_\be is not found as a subdirectory of the
+                   current directory (and does not begin with `/', `./' or
+                   `../'), then each component of the variable c\bcd\bdp\bpa\bat\bth\bh is
+                   checked to see if it has a subdirectory _\bn_\ba_\bm_\be. Finally, if
+                   all else fails but _\bn_\ba_\bm_\be is a shell variable whose value be-
+                   gins with `/', then this is tried to see if it is a direc-
+                   tory.
+
+           c\bco\bon\bnt\bti\bin\bnu\bue\be
+                   Continue execution of the nearest enclosing w\bwh\bhi\bil\ble\be or
+                   f\bfo\bor\bre\bea\bac\bch\bh. The rest of the commands on the current line are
+                   executed.
+
+           d\bde\bef\bfa\bau\bul\blt\bt:
+                   Labels the default case in a s\bsw\bwi\bit\btc\bch\bh statement.  The default
+                   should come after all c\bca\bas\bse\be labels.
+
+           d\bdi\bir\brs\bs    Prints the directory stack; the top of the stack is at the
+                   left, the first directory in the stack being the current
+                   directory.
+
+           e\bec\bch\bho\bo _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+           e\bec\bch\bho\bo -\b-n\bn _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   The specified words are written to the shell's standard
+                   output, separated by spaces, and terminated with a newline
+                   unless the -\b-n\bn option is specified.
+
+           e\bel\bls\bse\be
+
+
+           e\ben\bnd\bd
+           e\ben\bnd\bdi\bif\bf
+           e\ben\bnd\bds\bsw\bw   See the description of the f\bfo\bor\bre\bea\bac\bch\bh, i\bif\bf, s\bsw\bwi\bit\btc\bch\bh, and w\bwh\bhi\bil\ble\be
+                   statements below.
+
+           e\bev\bva\bal\bl _\ba_\br_\bg _\b._\b._\b.
+                   (As in sh(1).)  The arguments are read as input to the
+                   shell and the resulting command(s) executed in the context
+                   of the current shell.  This is usually used to execute com-
+                   mands generated as the result of command or variable sub-
+                   stitution, since parsing occurs before these substitutions.
+                   See tset(1) for an example of using e\bev\bva\bal\bl.
+
+           e\bex\bxe\bec\bc _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified command is executed in place of the current
+                   shell.
+
+           e\bex\bxi\bit\bt
+           e\bex\bxi\bit\bt _\b(_\be_\bx_\bp_\br)
+                   The shell exits either with the value of the s\bst\bta\bat\btu\bus\bs vari-
+                   able (first form) or with the value of the specified e\bex\bxp\bpr\br
+                   (second form).
+
+           f\bfg\bg
+           f\bfg\bg %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Brings the current or specified jobs into the foreground,
+                   continuing them if they were stopped.
+
+           f\bfo\bor\bre\bea\bac\bch\bh _\bn_\ba_\bm_\be _\b(_\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt_\b)
+           ...
+           e\ben\bnd\bd     The variable n\bna\bam\bme\be is successively set to each member of
+                   w\bwo\bor\brd\bdl\bli\bis\bst\bt and the sequence of commands between this command
+                   and the matching e\ben\bnd\bd are executed.  (Both f\bfo\bor\bre\bea\bac\bch\bh and e\ben\bnd\bd
+                   must appear alone on separate lines.)  The builtin command
+                   c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to continue the loop prematurely and
+                   the builtin command b\bbr\bre\bea\bak\bk to terminate it prematurely.
+                   When this command is read from the terminal, the loop is
+                   read once prompting with `?' before any statements in the
+                   loop are executed.  If you make a mistake typing in a loop
+                   at the terminal you can rub it out.
+
+           g\bgl\blo\bob\bb _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                   Like e\bec\bch\bho\bo but no `\' escapes are recognized and words are
+                   delimited by null characters in the output.  Useful for
+                   programs that wish to use the shell to filename expand a
+                   list of words.
+
+           g\bgo\bot\bto\bo _\bw_\bo_\br_\bd
+                   The specified w\bwo\bor\brd\bd is filename and command expanded to
+                   yield a string of the form `label'.  The shell rewinds its
+                   input as much as possible and searches for a line of the
+                   form `label:' possibly preceded by blanks or tabs.  Execu-
+                   tion continues after the specified line.
+
+           h\bha\bas\bsh\bhs\bst\bta\bat\bt
+                   Print a statistics line showing how effective the internal
+                   hash table has been at locating commands (and avoiding
+                   e\bex\bxe\bec\bc's). An e\bex\bxe\bec\bc is attempted for each component of the
+                   _\bp_\ba_\bt_\bh where the hash function indicates a possible hit, and
+                   in each component that does not begin with a `/'.
+
+           h\bhi\bis\bst\bto\bor\bry\by
+           h\bhi\bis\bst\bto\bor\bry\by _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-r\br _\bn
+           h\bhi\bis\bst\bto\bor\bry\by -\b-h\bh _\bn
+                   Displays the history event list; if _\bn is given only the _\bn
+                   most recent events are printed.  The -\b-r\br option reverses the
+                   order of printout to be most recent first instead of oldest
+                   first.  The -\b-h\bh option causes the history list to be printed
+                   without leading numbers.  This format produces files suit-
+                   able for sourcing using the -h option to s\bso\bou\bur\brc\bce\be.
+
+           i\bif\bf (_\be_\bx_\bp_\br) command
+                   If the specified expression evaluates true, then the single
+                   _\bc_\bo_\bm_\bm_\ba_\bn_\bd with arguments is executed.  Variable substitution
+                   on _\bc_\bo_\bm_\bm_\ba_\bn_\bd happens early, at the same time it does for the
+                   rest of the i\bif\bf command.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd must be a simple command,
+                   not a pipeline, a command list, or a parenthesized command
+                   list.  Input/output redirection occurs even if _\be_\bx_\bp_\br is
+                   false, i.e., when command is n\bno\bot\bt executed (this is a bug).
+
+           i\bif\bf (_\be_\bx_\bp_\br) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be i\bif\bf (_\be_\bx_\bp_\br_\b2) t\bth\bhe\ben\bn
+           ...
+           e\bel\bls\bse\be
+           ...
+           e\ben\bnd\bdi\bif\bf   If the specified _\be_\bx_\bp_\br is true then the commands up to the
+                   first e\bel\bls\bse\be are executed; otherwise if _\be_\bx_\bp_\br_\b2 is true then
+                   the commands up to the second e\bel\bls\bse\be are executed, etc.  Any
+                   number of e\bel\bls\bse\be-\b-i\bif\bf pairs are possible; only one e\ben\bnd\bdi\bif\bf is
+                   needed.  The e\bel\bls\bse\be part is likewise optional.  (The words
+                   e\bel\bls\bse\be and e\ben\bnd\bdi\bif\bf must appear at the beginning of input lines;
+                   the i\bif\bf must appear alone on its input line or after an
+                   e\bel\bls\bse\be.)
+
+           j\bjo\bob\bbs\bs
+           j\bjo\bob\bbs\bs -\b-l\bl
+                   Lists the active jobs; the -\b-l\bl option lists process id's in
+                   addition to the normal information.
+
+           k\bki\bil\bll\bl %\b%_\bj_\bo_\bb
+           k\bki\bil\bll\bl _\bp_\bi_\bd
+           k\bki\bil\bll\bl -\b-s\bsi\big\bg _\bp_\bi_\bd _\b._\b._\b.
+           k\bki\bil\bll\bl -\b-l\bl
+                   Sends either the TERM (terminate) signal or the specified
+                   signal to the specified jobs or processes.  Signals are ei-
+                   ther given by number or by names (as given in
+                   _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh_\b, stripped of the prefix ``SIG'').
+                   The signal names are listed by ``kill -l''.  There is no
+                   default, just saying `kill' does not send a signal to the
+                   current job.  If the signal being sent is TERM (terminate)
+                   or HUP (hangup), then the job or process will be sent a
+                   CONT (continue) signal as well.
+
+           l\bli\bim\bmi\bit\bt
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           l\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be
+                   Limits the consumption by the current process and each pro-
+                   cess it creates to not individually exceed _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be on
+                   the specified _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be is given, then
+                   the current limit is printed; if no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is given, then
+                   all limitations are given.  If the -\b-h\bh flag is given, the
+                   hard limits are used instead of the current limits.  The
+                   hard limits impose a ceiling on the values of the current
+                   limits.  Only the super-user may raise the hard limits, but
+                   a user may lower or raise the current limits within the le-
+                   gal range.
+
+                   Resources controllable currently include _\bc_\bp_\bu_\bt_\bi_\bm_\be (the maxi-
+                   mum number of cpu-seconds to be used by each process),
+                   _\bf_\bi_\bl_\be_\bs_\bi_\bz_\be (the largest single file that can be created),
+                   _\bd_\ba_\bt_\ba_\bs_\bi_\bz_\be (the maximum growth of the data+stack region via
+                   sbrk(2) beyond the end of the program text), _\bs_\bt_\ba_\bc_\bk_\bs_\bi_\bz_\be (the
+                   maximum size of the automatically-extended stack region),
+                   and _\bc_\bo_\br_\be_\bd_\bu_\bm_\bp_\bs_\bi_\bz_\be (the size of the largest core dump that
+                   will be created).  (.ne 1i
+
+                   The _\bm_\ba_\bx_\bi_\bm_\bu_\bm_\b-_\bu_\bs_\be may be given as a (floating point or inte-
+                   ger) number followed by a scale factor.  For all limits
+                   other than _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `k' or `kilobytes'
+                   (1024 bytes); a scale factor of `m' or `megabytes' may also
+                   be used.  For _\bc_\bp_\bu_\bt_\bi_\bm_\be the default scale is `seconds'; a
+                   scale factor of `m' for minutes or `h' for hours, or a time
+                   of the form `mm:ss' giving minutes and seconds also may be
+                   used.
+
+                   For both _\br_\be_\bs_\bo_\bu_\br_\bc_\be names and scale factors, unambiguous pre-
+                   fixes of the names suffice.
+
+           l\blo\bog\bgi\bin\bn   Terminate a login shell, replacing it with an instance of
+                   _\b/_\bb_\bi_\bn_\b/_\bl_\bo_\bg_\bi_\bn_\b. This is one way to log off, included for com-
+                   patibility with sh(1).
+
+           l\blo\bog\bgo\bou\but\bt  Terminate a login shell.  Especially useful if i\big\bgn\bno\bor\bre\bee\beo\bof\bf is
+                   set.
+
+           n\bni\bic\bce\be
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br
+           n\bni\bic\bce\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+           n\bni\bic\bce\be _\b+_\bn_\bu_\bm_\bb_\be_\br _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form sets the scheduling priority for this shell
+                   to 4.  The second form sets the priority to the given
+                   _\bn_\bu_\bm_\bb_\be_\br. The final two forms run command at priority 4 and
+                   _\bn_\bu_\bm_\bb_\be_\br respectively.  The greater the number, the less cpu
+                   the process will get.  The super-user may specify negative
+                   priority by using `nice -number ...'.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is always
+                   executed in a sub-shell, and the restrictions placed on
+                   commands in simple i\bif\bf statements apply.
+
+           n\bno\boh\bhu\bup\bp
+           n\bno\boh\bhu\bup\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The first form can be used in shell scripts to cause
+                   hangups to be ignored for the remainder of the script.  The
+                   second form causes the specified command to be run with
+                   hangups ignored.  All processes detached with `&' are ef-
+                   fectively n\bno\boh\bhu\bup\bp'ed.
+
+           n\bno\bot\bti\bif\bfy\by
+           n\bno\bot\bti\bif\bfy\by %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Causes the shell to notify the user asynchronously when the
+                   status of the current or specified jobs change; normally
+                   notification is presented before a prompt.  This is auto-
+                   matic if the shell variable n\bno\bot\bti\bif\bfy\by is set.
+
+           o\bon\bni\bin\bnt\btr\br
+           o\bon\bni\bin\bnt\btr\br -\b-
+           o\bon\bni\bin\bnt\btr\br _\bl_\ba_\bb_\be_\bl
+                   Control the action of the shell on interrupts.  The first
+                   form restores the default action of the shell on interrupts
+                   which is to terminate shell scripts or to return to the
+                   terminal command input level.  The second form `onintr -'
+                   causes all interrupts to be ignored.  The final form causes
+                   the shell to execute a `goto label' when an interrupt is
+                   received or a child process terminates because it was in-
+                   terrupted.
+
+
+                   In any case, if the shell is running detached and inter-
+                   rupts are being ignored, all forms of o\bon\bni\bin\bnt\btr\br have no mean-
+                   ing and interrupts continue to be ignored by the shell and
+                   all invoked commands.  Finally o\bon\bni\bin\bnt\btr\br statements are ig-
+                   nored in the system startup files where interrupts are dis-
+                   abled (/etc/csh.cshrc, /etc/csh.login).
+
+           p\bpo\bop\bpd\bd
+           p\bpo\bop\bpd\bd _\b+_\bn
+                   Pops the directory stack, returning to the new top directo-
+                   ry.  With an argument `+ _\bn' discards the _\bn'th entry in the
+                   stack.  The members of the directory stack are numbered
+                   from the top starting at 0.
+
+           p\bpu\bus\bsh\bhd\bd
+           p\bpu\bus\bsh\bhd\bd _\bn_\ba_\bm_\be
+           p\bpu\bus\bsh\bhd\bd _\bn
+                   With no arguments, p\bpu\bus\bsh\bhd\bd exchanges the top two elements of
+                   the directory stack.  Given a _\bn_\ba_\bm_\be argument, p\bpu\bus\bsh\bhd\bd changes
+                   to the new directory (ala c\bcd\bd) and pushes the old current
+                   working directory (as in c\bcs\bsw\bw) onto the directory stack.
+                   With a numeric argument, p\bpu\bus\bsh\bhd\bd rotates the _\bn'th argument of
+                   the directory stack around to be the top element and
+                   changes to it.  The members of the directory stack are num-
+                   bered from the top starting at 0.
+
+           r\bre\beh\bha\bas\bsh\bh  Causes the internal hash table of the contents of the di-
+                   rectories in the p\bpa\bat\bth\bh variable to be recomputed.  This is
+                   needed if new commands are added to directories in the p\bpa\bat\bth\bh
+                   while you are logged in.  This should only be necessary if
+                   you add commands to one of your own directories, or if a
+                   systems programmer changes the contents of a system direc-
+                   tory.
+
+           r\bre\bep\bpe\bea\bat\bt _\bc_\bo_\bu_\bn_\bt _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   The specified _\bc_\bo_\bm_\bm_\ba_\bn_\bd which is subject to the same restric-
+                   tions as the _\bc_\bo_\bm_\bm_\ba_\bn_\bd in the one line i\bif\bf statement above, is
+                   executed _\bc_\bo_\bu_\bn_\bt times.  I/O redirections occur exactly once,
+                   even if _\bc_\bo_\bu_\bn_\bt is 0.
+
+           s\bse\bet\bt
+           s\bse\bet\bt _\bn_\ba_\bm_\be
+           s\bse\bet\bt _\bn_\ba_\bm_\be=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]=word
+           s\bse\bet\bt _\bn_\ba_\bm_\be=(wordlist)
+                   The first form of the command shows the value of all shell
+                   variables.  Variables that have other than a single word as
+                   their value print as a parenthesized word list.  The second
+                   form sets _\bn_\ba_\bm_\be to the null string.  The third form sets
+                   _\bn_\ba_\bm_\be to the single _\bw_\bo_\br_\bd. The fourth form sets the _\bi_\bn_\bd_\be_\bx'th
+                   component of _\bn_\ba_\bm_\be to _\bw_\bo_\br_\bd; this component must already ex-
+                   ist.  The final form sets _\bn_\ba_\bm_\be to the list of words in
+                   _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt. The value is always command and filename expand-
+                   ed.
+
+                   These arguments may be repeated to set multiple values in a
+                   single set command.  Note however, that variable expansion
+                   happens for all arguments before any setting occurs.
+
+           s\bse\bet\bte\ben\bnv\bv
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be
+           s\bse\bet\bte\ben\bnv\bv _\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+                   The first form lists all current environment variables.  It
+                   is equivalent to printenv(1).  The last form sets the value
+                   of environment variable _\bn_\ba_\bm_\be to be _\bv_\ba_\bl_\bu_\be, a single string.
+                   The second form sets _\bn_\ba_\bm_\be to an empty string.  The most
+                   commonly used environment variables USER, TERM, and PATH
+                   are automatically imported to and exported from the c\bcs\bsh\bh
+                   variables _\bu_\bs_\be_\br, _\bt_\be_\br_\bm, and _\bp_\ba_\bt_\bh; there is no need to use
+                   s\bse\bet\bte\ben\bnv\bv for these.
+
+           s\bsh\bhi\bif\bft\bt
+           s\bsh\bhi\bif\bft\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be
+                   The members of a\bar\brg\bgv\bv are shifted to the left, discarding
+                   a\bar\brg\bgv\bv[1]. It is an error for a\bar\brg\bgv\bv not to be set or to have
+                   less than one word as value.  The second form performs the
+                   same function on the specified variable.
+
+           s\bso\bou\bur\brc\bce\be _\bn_\ba_\bm_\be
+           s\bso\bou\bur\brc\bce\be -\b-h\bh _\bn_\ba_\bm_\be
+                   The shell reads commands from _\bn_\ba_\bm_\be. S\bSo\bou\bur\brc\bce\be commands may be
+                   nested; if they are nested too deeply the shell may run out
+                   of file descriptors.  An error in a s\bso\bou\bur\brc\bce\be at any level
+                   terminates all nested s\bso\bou\bur\brc\bce\be commands.  Normally input dur-
+                   ing s\bso\bou\bur\brc\bce\be commands is not placed on the history list; the
+                   -h option causes the commands to be placed on the history
+                   list without being executed.
+
+           s\bst\bto\bop\bp
+           s\bst\bto\bop\bp %\b%_\bj_\bo_\bb _\b._\b._\b.
+                   Stops the current or specified jobs that are executing in
+                   the background.
+
+           s\bsu\bus\bsp\bpe\ben\bnd\bd
+                   Causes the shell to stop in its tracks, much as if it had
+                   been sent a stop signal with ^\b^Z\bZ. This is most often used to
+                   stop shells started by su(1).
+
+           s\bsw\bwi\bit\btc\bch\bh _\b(_\bs_\bt_\br_\bi_\bn_\bg_\b)
+           c\bca\bas\bse\be _\bs_\bt_\br_\b1:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+               ...
+           d\bde\bef\bfa\bau\bul\blt\bt:
+               ...
+               b\bbr\bre\bea\bak\bks\bsw\bw
+           e\ben\bnd\bds\bsw\bw   Each case label is successively matched against the speci-
+                   fied _\bs_\bt_\br_\bi_\bn_\bg which is first command and filename expanded.
+                   The file metacharacters `*', `?' and `[...]'  may be used
+                   in the case labels, which are variable expanded.  If none
+                   of the labels match before the `default' label is found,
+                   then the execution begins after the default label.  Each
+                   case label and the default label must appear at the begin-
+                   ning of a line.  The command b\bbr\bre\bea\bak\bks\bsw\bw causes execution to
+                   continue after the e\ben\bnd\bds\bsw\bw. Otherwise control may fall
+                   through case labels and the default label as in C.  If no
+                   label matches and there is no default, execution continues
+                   after the e\ben\bnd\bds\bsw\bw.
+
+           t\bti\bim\bme\be
+           t\bti\bim\bme\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   With no argument, a summary of time used by this shell and
+                   its children is printed.  If arguments are given the speci-
+                   fied simple command is timed and a time summary as de-
+                   scribed under the t\bti\bim\bme\be variable is printed.  If necessary,
+                   an extra shell is created to print the time statistic when
+                   the command completes.
+
+           u\bum\bma\bas\bsk\bk
+           u\bum\bma\bas\bsk\bk _\bv_\ba_\bl_\bu_\be
+                   The file creation mask is displayed (first form) or set to
+                   the specified value (second form).  The mask is given in
+                   octal.  Common values for the mask are 002 giving all ac-
+                   cess to the group and read and execute access to others or
+                   022 giving all access except write access for users in the
+                   group or others.
+
+           u\bun\bna\bal\bli\bia\bas\bs _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All aliases whose names match the specified pattern are
+                   discarded.  Thus all aliases are removed by `unalias *'.
+                   It is not an error for nothing to be u\bun\bna\bal\bli\bia\bas\bse\bed\bd.
+
+           u\bun\bnh\bha\bas\bsh\bh  Use of the internal hash table to speed location of execut-
+                   ed programs is disabled.
+
+           u\bun\bnl\bli\bim\bmi\bit\bt
+           u\bun\bnl\bli\bim\bmi\bit\bt _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh
+           u\bun\bnl\bli\bim\bmi\bit\bt -\b-h\bh _\br_\be_\bs_\bo_\bu_\br_\bc_\be
+                   Removes the limitation on _\br_\be_\bs_\bo_\bu_\br_\bc_\be. If no _\br_\be_\bs_\bo_\bu_\br_\bc_\be is spec-
+                   ified, then all _\br_\be_\bs_\bo_\bu_\br_\bc_\be limitations are removed.  If -\b-h\bh is
+                   given, the corresponding hard limits are removed.  Only the
+                   super-user may do this.
+
+           u\bun\bns\bse\bet\bt _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   All variables whose names match the specified pattern are
+                   removed.  Thus all variables are removed by `unset *'; this
+                   has noticeably distasteful side-effects.  It is not an er-
+                   ror for nothing to be u\bun\bns\bse\bet\bt.
+
+           u\bun\bns\bse\bet\bte\ben\bnv\bv _\bp_\ba_\bt_\bt_\be_\br_\bn
+                   Removes all variables whose name match the specified pat-
+                   tern from the environment.  See also the s\bse\bet\bte\ben\bnv\bv command
+                   above and printenv(1).
+
+           w\bwa\bai\bit\bt    Wait for all background jobs.  If the shell is interactive,
+                   then an interrupt can disrupt the wait.  After the inter-
+                   rupt, the shell prints names and job numbers of all jobs
+                   known to be outstanding.
+           w\bwh\bhi\bic\bch\bh _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                   Displays the resolved command that will be executed by the
+                   shell.
+
+           w\bwh\bhi\bil\ble\be _\b(_\be_\bx_\bp_\br_\b)
+           ...
+           e\ben\bnd\bd     While the specified expression evaluates non-zero, the com-
+                   mands between the w\bwh\bhi\bil\ble\be and the matching e\ben\bnd\bd are evaluated.
+                   B\bBr\bre\bea\bak\bk and c\bco\bon\bnt\bti\bin\bnu\bue\be may be used to terminate or continue the
+                   loop prematurely.  (The w\bwh\bhi\bil\ble\be and e\ben\bnd\bd must appear alone on
+                   their input lines.)  Prompting occurs here the first time
+                   through the loop as for the f\bfo\bor\bre\bea\bac\bch\bh statement if the input
+                   is a terminal.
+
+           %\b%_\bj_\bo_\bb    Brings the specified job into the foreground.
+
+           %\b%_\bj_\bo_\bb &\b&  Continues the specified job in the background.
+
+           @\b@
+           @\b@_\bn_\ba_\bm_\be= expr
+           @\b@_\bn_\ba_\bm_\be_\b[_\bi_\bn_\bd_\be_\bx_\b]= expr
+                   The first form prints the values of all the shell vari-
+                   ables.  The second form sets the specified _\bn_\ba_\bm_\be to the val-
+                   ue of _\be_\bx_\bp_\br. If the expression contains `<', `>', `&' or `|'
+                   then at least this part of the expression must be placed
+                   within `(' `)'.  The third form assigns the value of _\be_\bx_\bp_\br
+                   to the _\bi_\bn_\bd_\be_\bx'th argument of _\bn_\ba_\bm_\be. Both _\bn_\ba_\bm_\be and its
+                   _\bi_\bn_\bd_\be_\bx'th component must already exist.
+
+
+     The operators `*=', `+=', etc are available as in C.  The space separat-
+     ing the name from the assignment operator is optional.  Spaces are, how-
+     ever, mandatory in separating components of _\be_\bx_\bp_\br which would otherwise be
+     single words.
+
+     Special postfix `++' and `--' operators increment and decrement _\bn_\ba_\bm_\be re-
+     spectively, i.e., `@  i++'.
+
+   P\bPr\bre\be-\b-d\bde\bef\bfi\bin\bne\bed\bd a\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+     The following variables have special meaning to the shell.  Of these,
+     _\ba_\br_\bg_\bv, _\bc_\bw_\bd_\b, _\bh_\bo_\bm_\be, _\bp_\ba_\bt_\bh_\b, _\bp_\br_\bo_\bm_\bp_\bt, _\bs_\bh_\be_\bl_\bl and _\bs_\bt_\ba_\bt_\bu_\bs are always set by the
+     shell.  Except for _\bc_\bw_\bd and _\bs_\bt_\ba_\bt_\bu_\bs, this setting occurs only at initial-
+     ization; these variables will not then be modified unless done explicitly
+     by the user.
+
+     The shell copies the environment variable USER into the variable _\bu_\bs_\be_\br,
+     TERM into _\bt_\be_\br_\bm, and HOME into _\bh_\bo_\bm_\be, and copies these back into the envi-
+     ronment whenever the normal shell variables are reset.  The environment
+     variable PATH is likewise handled; it is not necessary to worry about its
+     setting other than in the file _\b._\bc_\bs_\bh_\br_\bc as inferior c\bcs\bsh\bh processes will im-
+     port the definition of _\bp_\ba_\bt_\bh from the environment, and re-export it if you
+     then change it.
+
+     a\bar\brg\bgv\bv       Set to the arguments to the shell, it is from this variable
+                that positional parameters are substituted, i.e., `$1' is re-
+                placed by `$argv[1]', etc.
+
+     c\bcd\bdp\bpa\bat\bth\bh     Gives a list of alternate directories searched to find subdi-
+                rectories in _\bc_\bh_\bd_\bi_\br commands.
+
+     c\bcw\bwd\bd        The full pathname of the current directory.
+
+     e\bec\bch\bho\bo       Set when the -\b-x\bx command line option is given.  Causes each
+                command and its arguments to be echoed just before it is exe-
+                cuted.  For non-builtin commands all expansions occur before
+                echoing.  Builtin commands are echoed before command and file-
+                name substitution, since these substitutions are then done se-
+                lectively.
+
+     f\bfi\bil\ble\bec\bc      Enable file name completion.
+
+     h\bhi\bis\bst\btc\bch\bha\bar\brs\bs  Can be given a string value to change the characters used in
+                history substitution.  The first character of its value is
+                used as the history substitution character, replacing the de-
+                fault character `!'.  The second character of its value re-
+                places the character `|\b^' in quick substitutions.
+
+     h\bhi\bis\bst\btf\bfi\bil\ble\be   Can be set to the pathname where history is going to be
+                saved/restored.
+
+     h\bhi\bis\bst\bto\bor\bry\by    Can be given a numeric value to control the size of the histo-
+                ry list.  Any command that has been referenced in this many
+                events will not be discarded.  Too large values of _\bh_\bi_\bs_\bt_\bo_\br_\by may
+                run the shell out of memory.  The last executed command is al-
+                ways saved on the history list.
+
+     h\bho\bom\bme\be       The home directory of the invoker, initialized from the envi-
+                ronment.  The filename expansion of `_\b~' refers to this vari-
+                able.
+
+     i\big\bgn\bno\bor\bre\bee\beo\bof\bf  If set the shell ignores end-of-file from input devices which
+                are terminals.  This prevents shells from accidentally being
+                killed by control-D's.
+
+     m\bma\bai\bil\bl       The files where the shell checks for mail.  This checking is
+                done after each command completion that will result in a
+                prompt, if a specified interval has elapsed.  The shell says
+                `You have new mail.'  if the file exists with an access time
+                not greater than its modify time.
+
+                If the first word of the value of _\bm_\ba_\bi_\bl is numeric it specifies
+                a different mail checking interval, in seconds, than the de-
+                fault, which is 10 minutes.
+
+                If multiple mail files are specified, then the shell says `New
+                mail in _\bn_\ba_\bm_\be' when there is mail in the file _\bn_\ba_\bm_\be.
+
+     n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br  As described in the section on _\bi_\bn_\bp_\bu_\bt_\b/_\bo_\bu_\bt_\bp_\bu_\bt, restrictions are
+                placed on output redirection to insure that files are not ac-
+                cidentally destroyed, and that `>>' redirections refer to ex-
+                isting files.
+
+     n\bno\bog\bgl\blo\bob\bb     If set, filename expansion is inhibited.  This inhibition is
+                most useful in shell scripts that
+                 are not dealing with filenames, or after a list of filenames
+                has been obtained and further expansions are not desirable.
+
+     n\bno\bon\bno\bom\bma\bat\btc\bch\bh  If set, it is not an error for a filename expansion to not
+                match any existing files; instead the primitive pattern is re-
+                turned.  It is still an error for the primitive pattern to be
+                malformed, i.e., `echo [' still gives an error.
+
+     n\bno\bot\bti\bif\bfy\by     If set, the shell notifies asynchronously of job completions;
+                the default is to present job completions just before printing
+                a prompt.
+
+     p\bpa\bat\bth\bh       Each word of the path variable specifies a directory in which
+                commands are to be sought for execution.  A null word speci-
+                fies the current directory.  If there is no _\bp_\ba_\bt_\bh variable then
+                only full path names will execute.  The usual search path is
+                `.', `/bin' and `/usr/bin', but this may vary from system to
+                system.  For the super-user the default search path is `/etc',
+                `/bin' and `/usr/bin'.  A shell that is given neither the -\b-c\bc
+                nor the -\b-t\bt option will normally hash the contents of the di-
+                rectories in the _\bp_\ba_\bt_\bh variable after reading _\b._\bc_\bs_\bh_\br_\bc, and each
+                time the _\bp_\ba_\bt_\bh variable is reset.  If new commands are added to
+                these directories while the shell is active, it may be neces-
+                sary to do a r\bre\beh\bha\bas\bsh\bh or the commands may not be found.
+
+     p\bpr\bro\bom\bmp\bpt\bt     The string that is printed before each command is read from an
+                interactive terminal input.  If a `!' appears in the string it
+                will be replaced by the current event number unless a preced-
+                ing `\' is given.  Default is `% ', or `# ' for the super-
+                user.
+
+     s\bsa\bav\bve\beh\bhi\bis\bst\bt   Is given a numeric value to control the number of entries of
+                the history list that are saved in ~/.history when the user
+                logs out.  Any command that has been referenced in this many
+                events will be saved.  During start up the shell sources
+                ~/.history into the history list enabling history to be saved
+                across logins.  Too large values of _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt will slow down
+                the shell during start up.  If _\bs_\ba_\bv_\be_\bh_\bi_\bs_\bt is just set, the shell
+                will use the value of _\bh_\bi_\bs_\bt_\bo_\br_\by_\b.
+
+     s\bsh\bhe\bel\bll\bl      The file in which the shell resides.  This variable is used in
+                forking shells to interpret files that have execute bits set,
+                but which are not executable by the system.  (See the descrip-
+                tion of _\bN_\bo_\bn_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bE_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn below.)  Initialized to
+                the (system-dependent) home of the shell.
+
+     s\bst\bta\bat\btu\bus\bs     The status returned by the last command.  If it terminated ab-
+                normally, then 0200 is added to the status.  Builtin commands
+                that fail return exit status `1', all other builtin commands
+                set status to `0'.
+
+     t\bti\bim\bme\be       Controls automatic timing of commands.  If set, then any com-
+                mand that takes more than this many cpu seconds will cause a
+                line giving user, system, and real times and a utilization
+                percentage which is the ratio of user plus system times to re-
+                al time to be printed when it terminates.
+
+     v\bve\ber\brb\bbo\bos\bse\be    Set by the -\b-v\bv command line option, causes the words of each
+                command to be printed after history substitution.
+
+   N\bNo\bon\bn-\b-b\bbu\bui\bil\blt\bti\bin\bn c\bco\bom\bmm\bma\ban\bnd\bd e\bex\bxe\bec\bcu\but\bti\bio\bon\bn
+     When a command to be executed is found to not be a builtin command the
+     shell attempts to execute the command via execve(2).  Each word in the
+     variable _\bp_\ba_\bt_\bh names a directory from which the shell will attempt to exe-
+     cute the command.  If it is given neither a -\b-c\bc nor a -\b-t\bt option, the shell
+     will hash the names in these directories into an internal table so that
+     it will only try an e\bex\bxe\bec\bc in a directory if there is a possibility that
+     the command resides there.  This shortcut greatly speeds command location
+     when many directories are present in the search path.  If this mechanism
+     has been turned off (via u\bun\bnh\bha\bas\bsh\bh), or if the shell was given a -\b-c\bc or -\b-t\bt
+     argument, and in any case for each directory component of _\bp_\ba_\bt_\bh that does
+     not begin with a `/', the shell concatenates with the given command name
+     to form a path name of a file which it then attempts to execute.
+
+     Parenthesized commands are always executed in a subshell.  Thus
+
+           (cd; pwd); pwd
+
+     prints the _\bh_\bo_\bm_\be directory; leaving you where you were (printing this af-
+     ter the home directory), while
+
+           cd; pwd
+
+     leaves you in the _\bh_\bo_\bm_\be directory.  Parenthesized commands are most often
+     used to prevent c\bch\bhd\bdi\bir\br from affecting the current shell.
+
+     If the file has execute permissions but is not an executable binary to
+     the system, then it is assumed to be a file containing shell commands and
+     a new shell is spawned to read it.
+
+     If there is an a\bal\bli\bia\bas\bs for s\bsh\bhe\bel\bll\bl then the words of the alias will be
+     prepended to the argument list to form the shell command.  The first word
+     of the a\bal\bli\bia\bas\bs should be the full path name of the shell (e.g., `$shell').
+     Note that this is a special, late occurring, case of a\bal\bli\bia\bas\bs substitution,
+     and only allows words to be prepended to the argument list without
+     change.
+
+   S\bSi\big\bgn\bna\bal\bl h\bha\ban\bnd\bdl\bli\bin\bng\bg
+     The shell normally ignores _\bq_\bu_\bi_\bt signals.  Jobs running detached (either
+     by &\b& or the b\bbg\bg or %\b%.\b..\b..\b. &\b& commands) are immune to signals generated from
+     the keyboard, including hangups.  Other signals have the values which the
+     shell inherited from its parent.  The shell's handling of interrupts and
+     terminate signals in shell scripts can be controlled by o\bon\bni\bin\bnt\btr\br. Login
+     shells catch the _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be signal; otherwise this signal is passed on to
+     children from the state in the shell's parent.  Interrupts are not al-
+     lowed when a login shell is reading the file _\b._\bl_\bo_\bg_\bo_\bu_\bt.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+     William Joy.  Job control and directory stack features first implemented
+     by J.E. Kulp of IIASA, Laxenburg, Austria, with different syntax than
+     that used now.  File name completion code written by Ken Greer, HP Labs.
+     Eight-bit implementation Christos S. Zoulas, Cornell University.
+
+F\bFI\bIL\bLE\bES\bS
+
+
+     ~/.cshrc     Read at beginning of execution by each shell.
+     ~/.login     Read by login shell, after `.cshrc' at login.
+     ~/.logout    Read by login shell, at logout.
+     /bin/sh      Standard shell, for shell scripts not starting with a `#'.
+     /tmp/sh*     Temporary file for `<<'.
+     /etc/passwd  Source of home directories for `~name'.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+     Word lengths - Words can be no longer than 1024 characters.  The system
+     limits argument lists to 10240 characters.  The number of arguments to a
+     command that involves filename expansion is limited to 1/6'th the number
+     of characters allowed in an argument list.  Command substitutions may
+     substitute no more characters than are allowed in an argument list.  To
+     detect looping, the shell restricts the number of a\bal\bli\bia\bas\bs substitutions on
+     a single line to 20.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sh(1),  access(2),  execve(2),  fork(2),  killpg(2),  pipe(2),
+     sigvec(2),  umask(2),  setrlimit(2),  wait(2),  tty(4),  a.out(5),
+     environ(7),
+     introduction to the C shell
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     C\bCs\bsh\bh appeared in 3BSD. It was a first implementation of a command language
+     interpreter incorporating a history mechanism (see _\bH_\bi_\bs_\bt_\bo_\br_\by
+     _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn_\bs), job control facilities (see _\bJ_\bo_\bb_\bs), interactive file name
+     and user name completion (see _\bF_\bi_\bl_\be _\bN_\ba_\bm_\be _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn), and a C-like syntax.
+     There are now many shells that also have these mechanisms, plus a few
+     more (and maybe some bugs too), which are available through the usenet.
+
+B\bBU\bUG\bGS\bS
+     When a command is restarted from a stop, the shell prints the directory
+     it started in if this is different from the current directory; this can
+     be misleading (i.e., wrong) as the job may have changed directories in-
+     ternally.
+
+     Shell builtin functions are not stoppable/restartable.  Command sequences
+     of the form `a ; b ; c' are also not handled gracefully when stopping is
+     attempted.  If you suspend `b', the shell will immediately execute `c'.
+     This is especially noticeable if this expansion results from an _\ba_\bl_\bi_\ba_\bs. It
+     suffices to place the sequence of commands in ()'s to force it to a sub-
+     shell, i.e., `( a ; b ; c )'.
+
+     Control over tty output after processes are started is primitive; perhaps
+     this will inspire someone to work on a good virtual terminal interface.
+     In a virtual terminal interface much more interesting things could be
+     done with output control.
+
+     Alias substitution is most often used to clumsily simulate shell proce-
+     dures; shell procedures should be provided instead of aliases.
+
+     Commands within loops, prompted for by `?', are not placed on the h\bhi\bis\bst\bto\bor\bry\by
+     list.  Control structure should be parsed instead of being recognized as
+     built-in commands.  This would allow control commands to be placed any-
+     where, to be combined with `|', and to be used with `&' and `;' metasyn-
+     tax.
+
+     It should be possible to use the `:' modifiers on the output of command
+     substitutions.
+
+     The way the f\bfi\bil\ble\bec\bc facility is implemented is ugly and expensive.
+
+4th Berkeley Distribution        June 1, 1994                               22
diff --git a/usr/share/man/cat1/test.0 b/usr/share/man/cat1/test.0
new file mode 100644 (file)
index 0000000..ef7df51
--- /dev/null
@@ -0,0 +1,114 @@
+TEST(1)                      BSD Reference Manual                      TEST(1)
+
+N\bNA\bAM\bME\bE
+     t\bte\bes\bst\bt - condition evaluation utility
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     t\bte\bes\bst\bt _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The t\bte\bes\bst\bt utility evaluates the expression and, if it evaluates to true,
+     returns a zero (true) exit status; otherwise it returns 1 (false).  If
+     there is no expression, test also returns 1 (false).
+
+     All operators and flags are separate arguments to the t\bte\bes\bst\bt utility.
+
+     The following primaries are used to construct expression:
+
+     -\b-b\bb _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a block special file.
+
+     -\b-c\bc _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a character special file.
+
+     -\b-d\bd _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a directory.
+
+     -\b-e\be _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists (regardless of type).
+
+     -\b-f\bf _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a regular file.
+
+     -\b-g\bg _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and its set group ID flag is set.
+
+     -\b-h\bh _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is a symbolic link.
+
+     -\b-n\bn _\bs_\bt_\br_\bi_\bn_\bg     True if the length of _\bs_\bt_\br_\bi_\bn_\bg is nonzero.
+
+     -\b-p\bp _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be is a named pipe (FIFO).
+
+     -\b-r\br _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be _\be_\bx_\bi_\bs_\bt_\bs _\ba_\bn_\bd _\bi_\bs _\br_\be_\ba_\bd_\ba_\bb_\bl_\be_\b.
+
+     -\b-s\bs _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and has a size greater than zero.
+
+     -\b-t\bt _\b[_\bf_\bi_\bl_\be_\b__\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bo_\br_\b]
+                   True if the file whose file descriptor number is
+                   _\bf_\bi_\bl_\be_\b__\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bo_\br (default 1) is open and is associated with
+                   a terminal.
+
+     -\b-u\bu _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and its set user ID flag is set.
+
+     -\b-w\bw _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is writable.  True indicates only
+                   that the write flag is on.  The file is not writable on a
+                   read-only file system even if this test indicates true.
+
+     -\b-x\bx _\bf_\bi_\bl_\be       True if _\bf_\bi_\bl_\be exists and is executable.  True indicates only
+                   that the execute flag is on.  If _\bf_\bi_\bl_\be is a directory, true
+                   indicates that _\bf_\bi_\bl_\be can be searched.
+
+     -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg     True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
+
+     _\bs_\bt_\br_\bi_\bn_\bg        True if _\bs_\bt_\br_\bi_\bn_\bg is not the null string.
+
+     _\bs_\b1 =\b= _\bs_\b2       True if the strings _\bs_\b1 and _\bs_\b2 are identical.
+
+     _\bs_\b1 !\b!=\b= _\bs_\b2      True if the strings _\bs_\b1 and _\bs_\b2 are not identical.
+
+     _\bn_\b1 -\b-e\beq\bq _\bn_\b2     True if the integers _\bn_\b1 and _\bn_\b2 are algebraically equal.
+
+     _\bn_\b1 -\b-n\bne\be _\bn_\b2     True if the integers _\bn_\b1 and _\bn_\b2 are not algebraically equal.
+
+
+     _\bn_\b1 -\b-g\bgt\bt _\bn_\b2     True if the integer _\bn_\b1 is algebraically greater than the
+                   integer _\bn_\b2.
+
+     _\bn_\b1 -\b-g\bge\be _\bn_\b2     True if the integer _\bn_\b1 is algebraically greater than or
+                   equal to the integer _\bn_\b2.
+
+     _\bn_\b1 -\b-l\blt\bt _\bn_\b2     True if the integer _\bn_\b1 is algebraically less than the inte-
+                   ger _\bn_\b2.
+
+     _\bn_\b1 -\b-l\ble\be _\bn_\b2     True if the integer _\bn_\b1 is algebraically less than or equal
+                   to the integer _\bn_\b2.
+
+     These primaries can be combined with the following operators:
+
+     !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn  True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
+
+     _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 -\b-a\ba _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                   True if both _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 and _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
+
+     _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 -\b-o\bo _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                   True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
+
+     (\b(_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn)\b)  True if expression is true.
+
+     The -\b-a\ba operator has higher precedence than the -\b-o\bo operator.
+
+G\bGR\bRA\bAM\bMM\bMA\bAR\bR A\bAM\bMB\bBI\bIG\bGU\bUI\bIT\bTY\bY
+     The t\bte\bes\bst\bt grammar is inherently ambiguous.  In order to assure a degree of
+     consistency, the cases described in the IEEE Std1003.2 (``POSIX''), sec-
+     tion D11.2/4.62.4, standard are evaluated consistently according to the
+     rules specified in the standards document.  All other cases are subject
+     to the ambiguity in the command semantics.
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+     The t\bte\bes\bst\bt utility exits with one of the following values:
+
+     0       expression evaluated to true.
+
+     1       expression evaluated to false or expression was missing.
+
+     >1      An error occurred.
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+     The t\bte\bes\bst\bt function is expected to be IEEE Std1003.2 (``POSIX'') compati-
+     ble.
+
+4.4BSD                           May 31, 1993                                2
diff --git a/usr/share/man/cat7/symlink.0 b/usr/share/man/cat7/symlink.0
new file mode 100644 (file)
index 0000000..830313c
--- /dev/null
@@ -0,0 +1,198 @@
+SYMLINK(7)                   BSD Reference Manual                   SYMLINK(7)
+
+N\bNA\bAM\bME\bE
+     s\bsy\bym\bml\bli\bin\bnk\bk - symbolic link handling
+
+S\bSY\bYM\bMB\bBO\bOL\bLI\bIC\bC L\bLI\bIN\bNK\bK H\bHA\bAN\bND\bDL\bLI\bIN\bNG\bG
+     Symbolic links are files that act as pointers to other files.  To under-
+     stand their behavior, you must first understand how hard links work.  A
+     hard link to a file is indistinguishable from the original file because
+     it is a reference to the object underlying the original file name.
+     Changes to a file are independent of the name used to reference the file.
+     Hard links may not refer to directories and may not reference files on
+     different file systems.  A symbolic link contains the name of the file to
+     which it is linked, i.e. it is a pointer to another name, and not to an
+     underlying object.  For this reason, symbolic links may reference direc-
+     tories and may span file systems.
+
+     Because a symbolic link and its referenced object coexist in the filesys-
+     tem name space, confusion can arise in distinguishing between the link
+     itself and the referenced object.  Historically, commands and system
+     calls have adopted their own link following conventions in a somewhat ad-
+     hoc fashion.  Rules for more a uniform approach, as they are implemented
+     in this system, are outlined here.  It is important that local applica-
+     tions conform to these rules, too, so that the user interface can be as
+     consistent as possible.
+
+     Symbolic links are handled either by operating on the link itself, or by
+     operating on the object referenced by the link.  In the latter case, an
+     application or system call is said to ``follow'' the link.  Symbolic
+     links may reference other symbolic links, in which case the links are
+     dereferenced until an object that is not a symbolic link is found, a sym-
+     bolic link which references a file which doesn't exist is found, or a
+     loop is detected.  (Loop detection is done by placing an upper limit on
+     the number of links that may be followed, and an error results if this
+     limit is exceeded.)
+
+     There are three separate areas that need to be discussed.  They are as
+     follows:
+
+           1.   Symbolic links used as file name arguments for system calls.
+           2.   Symbolic links specified as command line arguments to utili-
+                ties that are not traversing a file tree.
+           3.   Symbolic links encountered by utilities that are traversing a
+                file tree (either specified on the command line or encountered
+                as part of the file hierarchy walk).
+
+   S\bSy\bys\bst\bte\bem\bm c\bca\bal\bll\bls\bs.\b.
+     The first area is symbolic links used as file name arguments for system
+     calls.
+
+     Except as noted below, all system calls follow symbolic links.  For exam-
+     ple, if there were a symbolic link ``slink'' which pointed to a file
+     named ``afile'', the system call ``open("slink" ...)'' would return a
+     file descriptor to the file ``afile''.
+
+     There are four system calls that do not follow links, and which operate
+     on the symbolic link itself.  They are: lstat(2),  readlink(2),
+     rename(2),  and unlink(2).  Because remove(3) is an alias for unlink(2),
+     it also does not follow symbolic links.
+
+     Unlike other filesystem objects, symbolic links do not have an owner,
+     group, permissions, access and modification times, etc.  The only at-
+     tributes returned from an lstat(2) that refer to the symbolic link itself
+     are the file type (S_IFLNK), size, blocks, and link count (always 1).
+     The other attributes are filled in from the directory that contains the
+     link.  For portability reasons, you should be aware that other implemen-
+     tations (including historic implementations of 4BSD), implement symbolic
+     links such that they have the same attributes as any other file.
+
+     The 4.4BSD system differs from historical 4BSD systems in that the system
+     call chown(2) has been changed to follow symbolic links.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs n\bno\bot\bt t\btr\bra\bav\bve\ber\brs\bsi\bin\bng\bg a\ba f\bfi\bil\ble\be t\btr\bre\bee\be.\b.
+     The second area is symbolic links, specified as command line file name
+     arguments, to commands which are not traversing a file tree.
+
+     Except as noted below, commands follow symbolic links named as command
+     line arguments.  For example, if there were a symbolic link ``slink''
+     which pointed to a file named ``afile'', the command ``cat slink'' would
+     display the contents of the file ``afile''.
+
+     It is important to realize that this rule includes commands which may op-
+     tionally traverse file trees, e.g. the command ``chown file'' is included
+     in this rule, while the command ``chown -R file'' is not.  (The latter is
+     described in the third area, below.)
+
+     If it is explicitly intended that the command operate on the symbolic
+     link instead of following the symbolic link, e.g., it is desired that
+     ``file slink'' display the type of file that ``slink'' is, whether it is
+     a symbolic link or not, the -\b-h\bh option should be used.  In the above exam-
+     ple, ``file slink'' would report the type of the file referenced by
+     ``slink'', while ``file -h slink'' would report that ``slink'' was a sym-
+     bolic link.
+
+     There are three exceptions to this rule.  The mv(1) and rm(1) commands do
+     not follow symbolic links named as arguments, but respectively attempt to
+     rename and delete them.  (Note, if the symbolic link references a file
+     via a relative path, moving it to another directory may very well cause
+     it to stop working, since the path may no longer be correct.)
+
+     The ls(1) command is also an exception to this rule.  For compatibility
+     with historic systems (when l\bls\bs is not doing a tree walk, i.e. the -\b-R\bR op-
+     tion is not specified), the l\bls\bs command follows symbolic links named as
+     arguments if the -\b-L\bL option is specified, or if the -\b-F\bF, -\b-d\bd or -\b-l\bl options
+     are not specified.  (If the -\b-L\bL option is specified, l\bls\bs always follows
+     symbolic links.  L\bLs\bs is the only command where the -\b-L\bL option affects its
+     behavior even though it is not doing a walk of a file tree.)
+
+     The 4.4BSD system differs from historical 4BSD systems in that the c\bch\bho\bow\bwn\bn,
+     c\bch\bhg\bgr\brp\bp and f\bfi\bil\ble\be commands follow symbolic links specified on the command
+     line.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs t\btr\bra\bav\bve\ber\brs\bsi\bin\bng\bg a\ba f\bfi\bil\ble\be t\btr\bre\bee\be.\b.
+     The following commands either optionally or always traverse file trees:
+     chflags(1),  chgrp(1),  chmod(1),  cp(1),  du(1),  find(1),  ls(1),
+     pax(1),  rm(1),  tar(1) and chown(8).
+
+     It is important to realize that the following rules apply equally to sym-
+     bolic links encountered during the file tree traversal and symbolic links
+     listed as command line arguments.
+
+     The first rule applies to symbolic links that reference files that are
+     not of type directory.  Operations that apply to symbolic links are per-
+     formed on the links themselves, but otherwise the links are ignored.
+
+     For example, the command ``chown -R user slink directory'' will ignore
+     ``slink'', because symbolic links in this system do not have owners.  Any
+     symbolic links encountered during the tree traversal will also be ig-
+     nored.  The command ``rm -r slink directory'' will remove ``slink'', as
+     well as any symbolic links encountered in the tree traversal of
+     ``directory'', because symbolic links may be removed.  In no case will
+     either c\bch\bho\bow\bwn\bn or r\brm\bm affect the file which ``slink'' references in any way.
+
+     The second rule applies to symbolic links that reference files of type
+     directory.  Symbolic links which reference files of type directory are
+     never ``followed'' by default.  This is often referred to as a
+     ``physical'' walk, as opposed to a ``logical'' walk (where symbolic links
+     referencing directories are followed).
+
+     As consistently as possible, you can make commands doing a file tree walk
+     follow any symbolic links named on the command line, regardless of the
+     type of file they reference, by specifying the -\b-H\bH (for ``half-logical'')
+     flag.  This flag is intended to make the command line name space look
+     like the logical name space.  (Note, for commands that do not always do
+     file tree traversals, the -\b-H\bH flag will be ignored if the -\b-R\bR flag is not
+     also specified.)
+
+     For example, the command ``chown -HR user slink'' will traverse the file
+     hierarchy rooted in the file pointed to by ``slink''. Note, the -\b-H\bH is not
+     the same as the previously discussed -\b-h\bh flag.  The -\b-H\bH flag causes symbol-
+     ic links specified on the command line to be dereferenced both for the
+     purposes of the action to be performed and the tree walk, and it is as if
+     the user had specified the name of the file to which the symbolic link
+     pointed.
+
+     As consistently as possible, you can make commands doing a file tree walk
+     follow any symbolic links named on the command line, as well as any sym-
+     bolic links encountered during the traversal, regardless of the type of
+     file they reference, by specifying the -\b-L\bL (for ``logical'') flag.  This
+     flag is intended to make the entire name space look like the logical name
+     space.  (Note, for commands that do not always do file tree traversals,
+     the -\b-L\bL flag will be ignored if the -\b-R\bR flag is not also specified.)
+
+     For example, the command ``chown -LR user slink'' will change the owner
+     of the file referenced by ``slink''. If ``slink'' references a directory,
+     c\bch\bho\bow\bwn\bn will traverse the file hierarchy rooted in the directory that it
+     references.  In addition, if any symbolic links are encountered in any
+     file tree that c\bch\bho\bow\bwn\bn traverses, they will be treated in the same fashion
+     as ``slink''.
+
+     As consistently as possible, you can specify the default behavior by
+     specifying the -\b-P\bP (for ``physical'') flag.  This flag is intended to make
+     the entire name space look like the physical name space.
+
+     For commands that do not by default do file tree traversals, the -\b-H\bH, -\b-L\bL
+     and -\b-P\bP flags are ignored if the -\b-R\bR flag is not also specified.  In addi-
+     tion, you may specify the -\b-H\bH, -\b-L\bL and -\b-P\bP options more than once; the last
+     one specified determines the command's behavior.  This is intended to
+     permit you to alias commands to behave one way or the other, and then
+     override that behavior on the command line.
+
+     The ls(1) and rm(1) commands have exceptions to these rules.  The r\brm\bm com-
+     mand operates on the symbolic link, and not the file it references, and
+     therefore never follows a symbolic link.  The r\brm\bm command does not support
+     the -\b-H\bH, -\b-L\bL or -\b-P\bP options.
+
+     To maintain compatibility with historic systems, the l\bls\bs command never
+     follows symbolic links unless the -\b-L\bL flag is specified.  If the -\b-L\bL flag
+     is specified, l\bls\bs follows all symbolic links, regardless of their type,
+     whether specified on the command line or encountered in the tree walk.
+     The l\bls\bs command does not support the -\b-H\bH or -\b-P\bP options.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     chflags(1),  chgrp(1),  chmod(1),  cp(1),  du(1),  find(1),  ln(1),
+     ls(1),  mv(1),  pax(1),  rm(1),  tar(1),  lstat(2),  readlink(2),
+     rename(2),  unlink(2),  fts(3),  remove(3),  chown(8)
+
+4th Berkeley Distribution       March 31, 1994                               3
diff --git a/usr/share/man/cat8/rmail.0 b/usr/share/man/cat8/rmail.0
new file mode 100644 (file)
index 0000000..92b7dd7
--- /dev/null
@@ -0,0 +1,26 @@
+RMAIL(8)                  BSD System Manager's Manual                 RMAIL(8)
+
+N\bNA\bAM\bME\bE
+     r\brm\bma\bai\bil\bl - handle remote mail received via uucp
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     r\brm\bma\bai\bil\bl _\bu_\bs_\be_\br _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     R\bRm\bma\bai\bil\bl interprets incoming mail received via uucp(1),  collapsing ``From''
+     lines in the form generated by mail.local(8) into a single line of the
+     form ``return-path!sender'', and passing the processed mail on to
+     sendmail(8).
+
+     R\bRm\bma\bai\bil\bl is explicitly designed for use with uucp and sendmail.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     uucp(1),  mail.local(8),  sendmail(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The r\brm\bma\bai\bil\bl program appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+     R\bRm\bma\bai\bil\bl should not reside in _\b/_\bb_\bi_\bn.
+
+4.2 Berkeley Distribution       April 29, 1993                               1
diff --git a/usr/share/man/cat8/sync.0 b/usr/share/man/cat8/sync.0
new file mode 100644 (file)
index 0000000..6274ff1
--- /dev/null
@@ -0,0 +1,25 @@
+SYNC(8)                   BSD System Manager's Manual                  SYNC(8)
+
+N\bNA\bAM\bME\bE
+     s\bsy\byn\bnc\bc - force completion of pending disk writes (flush cache)
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     s\bsy\byn\bnc\bc
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     S\bSy\byn\bnc\bc can be called to insure that all disk writes have been completed be-
+     fore the processor is halted in a way not suitably done by reboot(8) or
+     halt(8).  Generally, it is preferable to use reboot or halt to shut down
+     the system, as they may perform additional actions such as resynchroniz-
+     ing the hardware clock and flushing internal caches before performing a
+     final s\bsy\byn\bnc\bc.
+
+     S\bSy\byn\bnc\bc utilizes the sync(2) function call.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     sync(2),  fsync(2),  halt(8),  reboot(8),  update(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     A s\bsy\byn\bnc\bc command appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution        May 31, 1993                                1