add directory Minix

This commit is contained in:
gohigh
2024-02-19 00:21:39 -05:00
parent 56596ada90
commit 5a46ddb732
2923 changed files with 1764412 additions and 0 deletions

84
Minix/2.0.0/README Normal file
View File

@@ -0,0 +1,84 @@
HOW TO GET AND INSTALL MINIX 2.0.0
This directory and subdirectories contains Minix version 2.0.0, a small
educational UNIX-like system for IBM PC's and compatibles.
Note: The files here are the same as found on the MINIX 2.0 CDROM
in the MINIX directory, except that the surrounding fluff, README's
and such, is more suited to FTP or WWW users.
Before installing Minix, do the unthinkable and read the installation
manual usage(8). It is in the following files in various forms:
install.ps - Postscript
install.t - Troff -man source
install.txt - Flat ASCII text
manuals/ - All other Minix manual pages
Alternatively, with a web browser you can view the whole manual
page set. The page to start with is usage(8).
Before fetching Minix, you should get the checksum list (to verify
correct transmission and unpacking). If you do not already have it,
you will need the program to compute the checksums on your
machine, crc.c:
crclist - CRC's of all the files here
crc.c - Command to make CRC checksums
Eventually, you may also want these files:
changes-2.0.0 - List of changes between 1.7.4 and 2.0.0
upgrade-2.0.0 - How to upgrade from 1.7.4 to 2.0.0
bugs - List of bugs in 2.0.0
fixes/ - Fixes to bugs in 2.0.0
misc/ - Additional documents: installation example,
network config, XT installation.
ack/ - ACK Modula-2 and Pascal compilers
Minix for the Intel architecture comes in three flavors:
- Regular (for 386, 486, and Pentium machines)
- Small (for 8086 and 286 machines)
- Tiny (for 8086 and 286 machines with small memories and/or 360K
diskette drives)
For the regular distribution, use the i386 directory. For the small
distribution, use the i86 directory. For the tiny distribution, use the
both the i86 and xt directories. All these directories contain the
executable programs of Minix. In addition, the src directory contains
the full Minix source code, which is identical for all three flavors (the
code contains #ifdef's where the difference matters). The following
files can be found in these directories:
i386: ROOT USR USR.TAZ
i86: ROOT USR USR.TAZ
xt: README TINYROOT TINYUSR1 TINYUSR2 (360K images)
src: SYS.TAZ CMD.TAZ
The files with names ending in .TAZ are compressed tar archives, the
other files are diskette images of the installation boot floppies.
The two installation floppies ROOT and USR can be combined on a
1.2 Mb or 1.44 Mb diskette. The .TAZ files must be distributed over
several floppies. Example for UNIX:
cat ROOT USR >/dev/floppy
dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=0
dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=1
dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=2
Increase the "skip" count until dd writes a diskette partially.
/dev/floppy should be the name of the floppy device. You have to
find out what your Operating System names it today. Under MS-DOS
you can use the FDVOL command found in the ../dosutil directory to
write the floppy images.
Be careful when you install Minix, many of the commands are
potentionally dangerous in a way that a simple typing mistake may
destroy all other data on your system. So make backups first!
Kees J. Bot (kjb@cs.vu.nl)

102
Minix/2.0.0/README.html Normal file
View File

@@ -0,0 +1,102 @@
<html><head><title>Minix 2.0.0</title></head>
<body>
<h2>HOW TO GET AND INSTALL MINIX 2.0.0</h2>
This directory and subdirectories contains Minix version 2.0.0, a small
educational UNIX-like system for IBM PC's and compatibles.
<p>
<em>Note:</em> The files here are the same as found on the
<a href="../CD-ROM-2.0/">MINIX 2.0 CDROM</a> in the
<a href="../CD-ROM-2.0/MINIX/">MINIX</a> directory, except that the
surrounding fluff, README's and such, is more suited to FTP or WWW users.
<p>
Before installing Minix, do the unthinkable and read the installation manual
in the file <b>usage.8</b>. It is in the following files in various forms:
<p>
<pre>
<a href="install.ps">install.ps</a> - Postscript
<a href="install.t">install.t</a> - Troff -man source
<a href="install.txt">install.txt</a> - Flat ASCII text
<a href="manuals/">manuals/</a> - All other Minix manual pages
</pre>
Alternatively, with a web browser you can view the
<a href="wwwman/whatis.html">whole manual page set</a>.
The page to start with is
<a href="wwwman/man8/usage.8.html">usage(8)</a>.
<hr>
Before fetching Minix, you should get the checksum list (to verify correct
transmission and unpacking). If you do not already have it, you will need
the program to compute the checksums on your machine, crc.c:
<pre>
<a href="crclist">crclist</a> - CRC's of all the files here
<a href="crc.c">crc.c</a> - Command to make CRC checksums
</pre>
Eventually, you may also want these files:
<pre>
<a href="changes-2.0.0">changes-2.0.0</a> - List of changes between 1.7.4 and 2.0.0
<a href="upgrade-2.0.0">upgrade-2.0.0</a> - How to upgrade from 1.7.4 to 2.0.0
<a href="bugs">bugs</a> - List of bugs in 2.0.0
<a href="fixes/">fixes/</a> - Fixes to bugs in 2.0.0
<a href="misc/">misc/</a> - Additional documents: installation example,
network config, XT installation.
<a href="ack/README.html">ack/</a> - ACK Modula-2 and Pascal compilers
</pre>
<hr>
Minix for the Intel architecture comes in three flavors:
<pre>
- Regular (for 386, 486, and Pentium machines)
- Small (for 8086 and 286 machines)
- Tiny (for 8086 and 286 machines with small memories and/or 360K
diskette drives)
</pre>
For the regular distribution, use the <b>i386</b> directory. For the small
distribution, use the <b>i86</b> directory. For the tiny distribution, use
the both the <b>i86</b> and <b>xt</b> directories. All these directories
contain the executable programs of Minix. In addition, the <b>src</b>
directory contains the full Minix source code, which is identical for all
three flavors (the code contains #ifdef's where the difference matters).
The following files can be found in these directories:
<pre>
<a href="i386/">i386</a>: ROOT USR USR.TAZ
<a href="i86/">i86</a>: ROOT USR USR.TAZ
<a href="xt/">xt</a>: README TINYROOT TINYUSR1 TINYUSR2 (360K images)
<a href="src/">src</a>: SYS.TAZ CMD.TAZ
</pre>
The files with names ending in <b>.TAZ</b> are compressed tar archives,
the other files are diskette images of the installation boot floppies.
<p>
The two installation floppies <b>ROOT</b> and <b>USR</b> can be combined on
a 1.2 Mb or 1.44 Mb diskette. The <b>.TAZ</b> files must be distributed over
several floppies. Example for UNIX:
<pre>
<b>cat ROOT USR &gt;/dev/floppy</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=0</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=1</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=2</b>
</pre>
Increase the "skip" count until <b>dd</b> writes a diskette partially.
<b>/dev/floppy</b> should be the name of the floppy device. You have to
find out what your Operating System names it today. Under MS-DOS you can
use the <b>FDVOL</b> command found in the <a href="../dosutil/">../dosutil</a>
directory to write the floppy images.
<p>
Be careful when you install Minix, many of the commands are potentionally
dangerous in a way that a simple typing mistake may destroy all other data
on your system. So make backups first!
<pre>
Kees J. Bot (kjb@cs.vu.nl)
</pre></body></html>

45
Minix/2.0.0/ack/README Normal file
View File

@@ -0,0 +1,45 @@
ACK Modula-2 and Pascal compilers for Minix 2.0.0
This directory contains the binaries and library sources for the ACK
Modula-2 and Pascal compilers that can be added to Minix 2.0.0.
(And to Minix 1.7.2 and inbetween versions, although that has not
been tested well.)
Minix already has a C compiler derived from the Amsterdam Compiler
Kit, but thanks to a misunderstanding the Modula-2 and Pascal
compilers were not added to the distribution. The next distribution of
Minix will have them by default.
Two packages are available for the 16 and 32-bit versions of Minix:
ack_i86.taz - 16-bit version.
ack_i386.taz - 32-bit version.
Installation
To install use FDVOL to place the proper file on a floppy, and run
setup /usr under Minix to load the files onto your system. The
binaries of the new compiler passes will be installed, several
Makefiles replaced, and library sources for the Modula-2 and Pascal
compilers added. (The 32-bit version also contains all other compiler
passes to make sure that you have the latest binaries in case you
source-upgraded all the way up from 1.7.0.)
Compilation
Log in as bin. If your system runs in 16-bit mode then run make
install in src/commands/i86/ to recompile the 16-bit compiler driver.
On either kind of system, run make install in src/lib/ to compile the
Modula-2 and Pascal additions to the library. The compilers are now
ready for use.
Manual pages.
The manual page cc(1) will be renewed. It now focuses on the 32-bit
driver, with differences with the 16-bit compiler noted where
necessary. A new manual page ACK(7) is added that contains a large
amount of additional information on the ACK compilers. Use
makewhatis /usr/man to allow the man command to find it.
Kees J. Bot (kjb@cs.vu.nl)

View File

@@ -0,0 +1,50 @@
<head>
<title>ACK Modula-2 and Pascal compilers</title>
</head>
<body>
<h2>ACK Modula-2 and Pascal compilers for Minix 2.0.0</h2>
This directory contains the binaries and library sources for the ACK
Modula-2 and Pascal compilers that can be added to Minix 2.0.0. (And to
Minix 1.7.2 and inbetween versions, although that has not been tested
well.)
<p>
Minix already has a C compiler derived from the Amsterdam Compiler Kit,
but thanks to a misunderstanding the Modula-2 and Pascal compilers were
not added to the distribution. The next distribution of Minix will have
them by default.
<p>
Two packages are available for the 16 and 32-bit versions of Minix:
<pre>
<a href="ack_i86.taz">ack_i86.taz</a> - 16-bit version.
<a href="ack_i386.taz">ack_i386.taz</a> - 32-bit version.
</pre>
<h3>Installation</h3>
To install use <b>FDVOL</b> to place the proper file on a floppy, and
run <b>setup /usr</b> under Minix to load the files onto your system.
The binaries of the new compiler passes will be installed, several
Makefiles replaced, and library sources for the Modula-2 and Pascal
compilers added.
(The 32-bit version also contains all other compiler passes to make
sure that you have the latest binaries in case you source-upgraded all
the way up from 1.7.0.)
<h3>Compilation</h3>
Log in as <b>bin</b>. If your system runs in 16-bit mode then run
<b>make install</b> in <b>src/commands/i86/</b> to recompile the 16-bit
compiler driver.
<p>
On either kind of system, run <b>make install</b> in <b>src/lib/</b> to
compile the Modula-2 and Pascal additions to the library. The compilers
are now ready for use.
<h3>Manual pages.</h3>
The manual page <b>cc</b>(1) will be renewed. It now focuses on the
32-bit driver, with differences with the 16-bit compiler noted where
appropriate. A new manual page <b>ACK</b>(7) is added that contains a
large amount of additional information on the ACK compilers. Use
<b>makewhatis /usr/man</b> to allow the <b>man</b> command to find it.
<pre>
Kees J. Bot (kjb@cs.vu.nl)

Binary file not shown.

BIN
Minix/2.0.0/ack/ack_i86.taz Normal file

Binary file not shown.

View File

@@ -0,0 +1,50 @@
<head>
<title>ACK Modula-2 and Pascal compilers</title>
</head>
<body>
<h2>ACK Modula-2 and Pascal compilers for Minix 2.0.0</h2>
This directory contains the binaries and library sources for the ACK
Modula-2 and Pascal compilers that can be added to Minix 2.0.0. (And to
Minix 1.7.2 and inbetween versions, although that has not been tested
well.)
<p>
Minix already has a C compiler derived from the Amsterdam Compiler Kit,
but thanks to a misunderstanding the Modula-2 and Pascal compilers were
not added to the distribution. The next distribution of Minix will have
them by default.
<p>
Two packages are available for the 16 and 32-bit versions of Minix:
<pre>
<a href="ack_i86.taz">ack_i86.taz</a> - 16-bit version.
<a href="ack_i386.taz">ack_i386.taz</a> - 32-bit version.
</pre>
<h3>Installation</h3>
To install use <b>FDVOL</b> to place the proper file on a floppy, and
run <b>setup /usr</b> under Minix to load the files onto your system.
The binaries of the new compiler passes will be installed, several
Makefiles replaced, and library sources for the Modula-2 and Pascal
compilers added.
(The 32-bit version also contains all other compiler passes to make
sure that you have the latest binaries in case you source-upgraded all
the way up from 1.7.0.)
<h3>Compilation</h3>
Log in as <b>bin</b>. If your system runs in 16-bit mode then run
<b>make install</b> in <b>src/commands/i86/</b> to recompile the 16-bit
compiler driver.
<p>
On either kind of system, run <b>make install</b> in <b>src/lib/</b> to
compile the Modula-2 and Pascal additions to the library. The compilers
are now ready for use.
<h3>Manual pages.</h3>
The manual page <b>cc</b>(1) will be renewed. It now focuses on the
32-bit driver, with differences with the 16-bit compiler noted where
appropriate. A new manual page <b>ACK</b>(7) is added that contains a
large amount of additional information on the ACK compilers. Use
<b>makewhatis /usr/man</b> to allow the <b>man</b> command to find it.
<pre>
Kees J. Bot (kjb@cs.vu.nl)

20
Minix/2.0.0/bugs Normal file
View File

@@ -0,0 +1,20 @@
List of bugs discovered in 2.0.0. Please report more bugs to kjb@cs.vu.nl.
1 The code handling the resetting of an Adaptec does not work on some
adapters, notably the old 1540A type. A fix to this bug can be found
in fixes/fix-1.
2 A huge "ping" packet crashes the TCP/IP server. (The so-called "Ping
of Death".) For 32-bit Minix this problem can be circumvented by
increasing the number of input buffers. See fixes/fix-2.
3 The isoread command contains a bug in the name matching code.
Repaired by fixes/fix-3.
4 The make command contains an insidious bug that plagues people with
fast machines. (Where "fast" is defined as "better than a 486/66".)
A patch can be found in fixes/fix-4. As a bonus this fix also adds an
"include some-file" statement to the makefile syntax.
5 The Mitsumi CD-ROM driver interprets the "MCD" boot variable wrong.
Use fixes/fix-5 to repair.

205
Minix/2.0.0/changes-2.0.0 Normal file
View File

@@ -0,0 +1,205 @@
Short list of differences between 1.7.4 and 2.0.0:
- Lots of manual pages replaced or added to describe the system and
library calls better (manual sections 2, and 3).
- Little bug fixes so that the CD-ROM doesn't look too bad. :-)
Contributions:
Will Rose <cwr@cts.com>
Changes to postmort and a manual pages.
Various bug reports and comments.
Albert S. Woodhull <awoodhull@hampshire.edu>
Speling error fixes, extra code comments, code rearrangements.
Source of late changes just before putting Minix 2.0 together.
Michael Temari <temari@ix.netcom.com>
Updates to his network programs. Scanf() fix.
The VU students that tried the 1.7.5 test CD-ROM.
Lots of comments on the manual pages and the installation procedure.
Long list of differences between 1.7.4 and 2.0.0:
(Warning: This list is riddled with lame jokes and other silly things that
happen to sneak in when doing something as boring as compiling this list.)
man/cat[23]/
Removed in favour of real manual pages in man[23].
man/man0/
Most of these manual pages are transformed to normal man(7) style
and put into section 1 or 8. Leftovers are put in section 9.
man/man*/
Lots of old BSD4.3 manual pages checked and changed for use under
Minix.
./src/boot/boot.c
Bug fixed where the menu hangs if you type an odd key like an
arrow key.
./src/commands/ash/
Files echo.o, errmsg.c, errmsg.h, and expr.o removed. They were
sitting there doing nothing.
Type warnings fixed.
./src/commands/cawf/dumb.dev
Paper size changed from 11 inch (66 lines) to 10 inch (60 lines),
because they don't make good printers anymore.
./src/commands/cawf/man.mac
\*(lq and \*(rq added for left and right double quote.
./src/commands/flex-2.3.7/
Warnings on flex.l suppressed.
./src/commands/ftp/
./src/commands/ftpd/
Updated to Michael's latest code.
./src/commands/ibm/part.c
More changes in the ongoing attempt to make part a wee bit
user-friendlier.
./src/commands/ibm/postmort.c
Changes from Will Rose to "increase its functionality".
./src/commands/scripts/DESCRIBE.sh
./src/commands/scripts/MAKEDEV.sh
Allow 7 virtual console devices to be made/described.
./src/commands/scripts/checkhier.sh
Add /usr/spool/lpd, remove lpr, check lpd, kludge around a shell
memory leak.
./src/commands/scripts/makewhatis.sh
Don't look into cat pages anymore, only do man[1-8] and man9.
./src/commands/scripts/mkdist.sh
Add more command to USR, install /etc/issue on ROOT that tells you
to login as root and run 'setup'.
./src/commands/scripts/setup.sh
Upgrade capability removed, too confusing for a first time user
that wants to retry the installation. Some bits of text adapted.
Change /etc/issue on first run, remove on second run.
./src/commands/simple/expr.c
Two fencepost errors fixed. Amazing it ever did the things I like
to do with it.
./src/commands/simple/in.rshd.c
Set PATH=:/bin:/usr/bin for the command to run. "Read failed", and
"killing %d with %d" messages removed.
./src/commands/simple/leave.c
Carriage returns added to the messages to put them on the screen
better.
./src/commands/simple/lp.c
./src/commands/simple/lpd.c
Replacements for lpr that do spooling.
./src/commands/simple/lpr.c
Removed.
./src/commands/simple/man.c
Search path changed from sections 0-8 to 1-9, where 9 now contains
"book style" manual pages. Too early exit bug fixed.
./src/commands/simple/synctree.c
Problems on a sync between a systems with and without symlinks
fixed by properly complaining about the weird file and continuing on.
./src/commands/simple/tar.c
Error messages changed from things like "Can't make directory bin"
to "Can't make directory bin: File exists".
./src/commands/simple/tcpd.c
Added comment that -DPARANOID requires 8kw stack.
./src/commands/simple/term.c
Command added to hang up the phone (+++ ATH).
./src/commands/talk
./src/commands/talkd
New network commands by Michael.
./src/commands/yap/keys.c
Allow one to move up or down with the arrow keys. (Yap == more).
/etc/rc
./src/etc/rc
Start a shell if mounting /usr fails.
Start talkd if networking enabled.
Clean up /usr/spool/lpd/ and /usr/spool/locks/.
Show /etc/issue.
./src/fs/cache.c
./src/fs/device.c
./src/fs/filedes.c
./src/fs/link.c
./src/fs/main.c
./src/fs/misc.c
./src/fs/open.c
./src/fs/read.c
./src/fs/stadir.c
./src/fs/table.c
./src/kernel/console.c
./src/kernel/dmp.c
./src/kernel/driver.c
./src/kernel/keyboard.c
Rearrangements by Al.
./src/kernel/keymaps/scandinavn.src
New "Scandinavian" keymap.
./src/kernel/printer.c
Changed to report the number of bytes printed just before the printer
runs out of paper. Next write returns EAGAIN.
./src/kernel/proc.c
./src/kernel/protect.c
./src/kernel/pty.c
./src/kernel/tty.c
./src/kernel/tty.h
./src/kernel/type.h
Rearrangements by Al.
./src/lib/Makefile
Attempt to fix a library rebuild problem by properly removing any
leftover .o files on a 'make clean'. The attempt failed, you
sometimes have to type 'make install' twice to get the library
to rebuild completely.
./src/lib/ansi/errlist.c
EAGAIN error string changed from "No more processes", to "Resource
temporarily unavailable."
./src/lib/i86/rts/setjmp.s
Excessive .extern's removed that made setjmp pull in printf, etc.
./src/lib/other/bcmp.c
./src/lib/other/bcopy.c
./src/lib/other/bzero.c
Type errors fixed.
./src/lib/stdio/doscan.c
Fix for scanf("%[^ \t\n]", input) reading one character too many.
./src/mm/break.c
./src/mm/const.h
./src/mm/glo.h
./src/mm/main.c
./src/mm/signal.c
./src/mm/table.c
./src/mm/trace.c
Rearrangements by Al.
./src/test/
I changed something that may fix problems with leftover test
directories. I have again resisted the temptation to remove
the tests entirely. (The tests mostly test my patience.)

115
Minix/2.0.0/crc.c Normal file
View File

@@ -0,0 +1,115 @@
/* Compute checksum Author: Johan W. Stevenson */
/* Copyright 1988 by Johan W. Stevenson */
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int errs;
#if __STDC__
int main(int argc, char **argv);
void crc(char *fname);
#else
void crc();
#endif
int main(argc, argv)
int argc;
char **argv;
{
char line[256];
if (argc <= 1)
crc((char *) 0);
else if (argc == 2 && strcmp(argv[1], "-") == 0)
while (fgets(line, sizeof line, stdin) != NULL) {
if (line[strlen(line) - 1] == '\n')
line[strlen(line) - 1] = '\0';
crc(line);
}
else
do {
crc(argv[1]);
argv++;
argc--;
} while (argc > 1);
return(errs != 0);
}
/* Crctab calculated by Mark G. Mendel, Network Systems Corporation */
static unsigned short crctab[256] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};
/* Updcrc macro derived from article Copyright (C) 1986 Stephen Satchell.
* NOTE: First argument must be in range 0 to 255.
* Second argument is referenced twice.
*
* Programmers may incorporate any or all code into their programs,
* giving proper credit within the source. Publication of the
* source routines is permitted so long as proper credit is given
* to Stephen Satchell, Satchell Evaluations and Chuck Forsberg,
* Omen Technology.
*/
#define updcrc(cp, crc) ( crctab[((crc >> 8) & 255)] ^ (crc << 8) ^ cp)
void crc(fname)
char *fname;
{
register int c;
register long len = 0;
register unsigned short crc = 0;
register FILE *fp;
if (fname == NULL)
fp = stdin;
else if ((fp = fopen(fname, "r")) == NULL) {
fprintf(stderr, "crc: cannot open %s\n", fname);
errs++;
return;
}
while ((c = getc(fp)) != EOF) {
len++;
crc = updcrc(c, crc);
}
printf("%05u %6ld", crc, len);
if (fname) {
printf(" %s", fname);
fclose(fp);
}
printf("\n");
}

12
Minix/2.0.0/crclist Normal file
View File

@@ -0,0 +1,12 @@
17311 4026 crc.c
09977 491520 i386/ROOT
04005 737280 i386/USR
03146 3725387 i386/USR.TAZ
25679 491520 i86/ROOT
27111 737280 i86/USR
00408 3677052 i86/USR.TAZ
18814 3297111 src/CMD.TAZ
14047 2313832 src/SYS.TAZ
11224 297472 xt/TINYROOT
61873 368640 xt/TINYUSR1
50528 368640 xt/TINYUSR2

57
Minix/2.0.0/fixes/fix-1 Normal file
View File

@@ -0,0 +1,57 @@
This fix repairs a bug in the code handling the resetting of an Adaptec
host adapter. Some adapters, notably the old 1540A type, do not set all
the expected status bits immediately after the reset is done. This will
keep the driver from recognizing the card.
To apply this fix do the following as bin:
! cd /usr
! patch -p0 < "this-file"
And build a new kernel normally. You will find the original aha_scsi.c
file renamed to aha_scsi.c~ in src/kernel/. You may wish to delete it
to clean things up.
diff -c -r /save/std/2.0.0/src/kernel/aha_scsi.c ./src/kernel/aha_scsi.c
*** /save/std/2.0.0/src/kernel/aha_scsi.c Sun Apr 21 21:54:49 1996
--- ./src/kernel/aha_scsi.c Wed Oct 23 22:09:08 1996
***************
*** 1852,1872 ****
/* Reset controller, wait for self test to complete. */
out_byte(AHA_CNTLREG, AHA_HRST);
milli_start(&ms);
! while ((stat = in_byte(AHA_STATREG)) & AHA_STST) {
if (milli_elapsed(&ms) >= AHA_TIMEOUT) {
! printf("aha0: AHA154x controller not responding\n");
return(0);
}
}
-
- /* Check for self-test failure. */
- if ((stat & (AHA_DIAGF | AHA_INIT | AHA_IDLE | AHA_CDF | AHA_DF))
- != (AHA_INIT | AHA_IDLE)) {
- printf("aha0: AHA154x controller failed self-test\n");
- return(0);
- }
-
- /* !! maybe a santity check here: make sure IDLE and INIT are set? */
/* Get information about controller type and configuration. */
cmd[0] = AHACOM_HAINQUIRY;
--- 1852,1867 ----
/* Reset controller, wait for self test to complete. */
out_byte(AHA_CNTLREG, AHA_HRST);
milli_start(&ms);
! while (((stat = in_byte(AHA_STATREG)) & (AHA_STST | AHA_DIAGF | AHA_INIT
! | AHA_IDLE | AHA_CDF | AHA_DF)) != (AHA_INIT | AHA_IDLE))
! {
if (milli_elapsed(&ms) >= AHA_TIMEOUT) {
! printf(
! "aha0: AHA154x controller not responding, status = 0x%02x\n",
! stat);
return(0);
}
}
/* Get information about controller type and configuration. */
cmd[0] = AHACOM_HAINQUIRY;

37
Minix/2.0.0/fixes/fix-2 Normal file
View File

@@ -0,0 +1,37 @@
This fix avoids a crash of the TCP/IP server if it is sent a huge "ping"
packet. This only works for Minix in 32-bit mode, because we simply
increase the number of buffers inside inet to allow it to handle a big
packet. 16-bit Minix can't have more buffers.
To apply this fix do the following as bin:
! cd /usr
! patch -p0 < "this-file"
And build a new kernel normally. You will find the original buf.c
file renamed to buf.c~ in src/inet/. You may wish to delete it
to clean things up.
Note that it is much quicker and easier to simple change "128" in "192"
in buf.c with an editor.
diff -c -r /save/std/2.0.0/src/inet/buf.c ./src/inet/buf.c
*** /save/std/2.0.0/src/inet/buf.c Fri Dec 29 18:08:10 1995
--- ./src/inet/buf.c Thu Oct 24 19:26:02 1996
***************
*** 20,26 ****
#define USE_MALLOCS 0
#ifndef BUF512_NR
! #define BUF512_NR (sizeof(int) == 2 ? 40 : 128)
#endif
#define ACC_NR 200
--- 20,26 ----
#define USE_MALLOCS 0
#ifndef BUF512_NR
! #define BUF512_NR (sizeof(int) == 2 ? 40 : 192)
#endif
#define ACC_NR 200

50
Minix/2.0.0/fixes/fix-3 Normal file
View File

@@ -0,0 +1,50 @@
This fix repairs a bug in a routine in the isoread command that matches
filenames. The exact nature of the bug has been lost in the mist of time,
but it is for certain that isoread works badly without this fix.
To apply this this do the following as bin:
! cd /usr
! patch -p0 < "this-file"
! cd src/commands/simple
! make install
You will find the original isoread.c file renamed to isoread.c~ in
src/commands/simple/. You may wish to delete it to clean things up.
diff -c -r /save/std/2.0.0/src/commands/simple/isoread.c ./src/commands/simple/isoread.c
*** /save/std/2.0.0/src/commands/simple/isoread.c Mon Aug 07 20:33:32 1995
--- ./src/commands/simple/isoread.c Sat Nov 16 12:15:41 1996
***************
*** 175,187 ****
int dir_flag;
{
int i;
/* First match the filename */
! for (i = 0; (i < strlen(name) && i < iso_711(dir_ptr->name_length)); i++)
{
! if (dir_ptr->name[i] == ';') break;
if (name[i] != LOWER_CASE(dir_ptr->name[i])) return 1;
}
/* The filename is ok, now look at the file type */
if (dir_flag && !IS_DIR(dir_ptr)) return 1; /* File type not correct */
--- 175,191 ----
int dir_flag;
{
int i;
+ int len;
/* First match the filename */
! len = strlen(name);
! if (len > iso_711(dir_ptr->name_length)) return 1;
! for (i = 0; i < len; i++)
{
! if (dir_ptr->name[i] == ';') return 1;
if (name[i] != LOWER_CASE(dir_ptr->name[i])) return 1;
}
+ if (dir_ptr->name[i] != ';' && dir_ptr->name[i] != 0) return 1;
/* The filename is ok, now look at the file type */
if (dir_flag && !IS_DIR(dir_ptr)) return 1; /* File type not correct */

329
Minix/2.0.0/fixes/fix-4 Normal file
View File

@@ -0,0 +1,329 @@
This fix repairs an insidious problem with the make command that plagues
people with fast machines. ("Fast" being defined as faster than what
KJB has been using until now, i.e. better than a 486/66.) The problem
is that make doesn't add everything to the library if 'make install' is
run to rebuild /usr/src/lib/ from scratch. It may happen that the next
bit of the library is compiled in the same second as a previous bit.
The new bit doesn't look new (same timestamp), and is thus not added.
This fix also adds an "include some-file" statement to the makefile
syntax that allows one to include the contents of one makefile into
another. KJB happened to have implemented this feature when he fixed
the time bug.
To apply this fix and recompile make do the following as bin:
! cd /usr
! patch -p0 < "this-file"
! cp -p /usr/bin/make /usr/bin/make.old # Just in case.
! cd src/commands/make
! make install
You will find several files in the make directory that end in ~ that are
the originals of the patched files. You can delete them, and the
make.old binary once you have verified that the new make works. (That
make is needed to remake make should ring your "be careful" bells.)
diff -c -r /save/std/2.0.0/src/commands/make/h.h ./src/commands/make/h.h
*** /save/std/2.0.0/src/commands/make/h.h Sat Nov 13 14:37:40 1993
--- ./src/commands/make/h.h Sat Jan 18 15:52:02 1997
***************
*** 28,33 ****
--- 28,34 ----
#include <time.h>
#include <utime.h>
#include <stdio.h>
+ #include <limits.h>
#endif
#ifdef eon
***************
*** 221,227 ****
EXTERN bool quest INIT(FALSE); /* Question up-to-dateness of file */
EXTERN bool useenv INIT(FALSE); /* Env. macro def. overwrite makefile def.*/
EXTERN bool dbginfo INIT(FALSE); /* Print lot of debugging information */
! EXTERN bool ambigmac INIT(FALSE); /* guess undef. ambiguous macros (*,<) */
EXTERN struct name *firstname;
EXTERN char *str1;
EXTERN char *str2;
--- 222,228 ----
EXTERN bool quest INIT(FALSE); /* Question up-to-dateness of file */
EXTERN bool useenv INIT(FALSE); /* Env. macro def. overwrite makefile def.*/
EXTERN bool dbginfo INIT(FALSE); /* Print lot of debugging information */
! EXTERN bool ambigmac INIT(TRUE); /* guess undef. ambiguous macros (*,<) */
EXTERN struct name *firstname;
EXTERN char *str1;
EXTERN char *str2;
***************
*** 232,237 ****
--- 233,239 ----
EXTERN int maxsuffarray INIT(0); /* last used entry in suffarray */
EXTERN struct macro *macrohead;
EXTERN bool expmake; /* TRUE if $(MAKE) has been expanded */
+ EXTERN char *makefile; /* The make file */
EXTERN int lineno;
#ifdef tos
diff -c -r /save/std/2.0.0/src/commands/make/input.c ./src/commands/make/input.c
*** /save/std/2.0.0/src/commands/make/input.c Mon Dec 21 18:56:29 1992
--- ./src/commands/make/input.c Sat Nov 23 12:08:22 1996
***************
*** 346,351 ****
--- 346,380 ----
expand(&str1s);
p = str1;
+ while (isspace(*p)) p++;
+
+ /* include? */
+ if (strncmp(p, "include", 7) == 0 && isspace(p[7])) {
+ char *old_makefile = makefile;
+ int old_lineno = lineno;
+ FILE *ifd;
+
+ if ((q = malloc(strlen(p+8)+1)) == (char *)0)
+ fatal("No memory for include",(char *)0,0);
+
+ strcpy(q, p+8);
+ p = q;
+ while ((makefile = gettok(&q)) != (char *)0) {
+ if ((ifd = fopen(makefile, "r")) == (FILE *)0)
+ fatal("Can't open %s: %s", makefile, errno);
+ lineno = 0;
+ input(ifd);
+ fclose(ifd);
+ }
+ free(p);
+ makefile = old_makefile;
+ lineno = old_lineno;
+
+ if (getline(&str1s, fd))
+ return;
+ continue;
+ }
+
while (((q = strchr(p, ':')) != (char *)0) &&
(p != q) && (q[-1] == '\\')) /* Find dependents */
{
diff -c -r /save/std/2.0.0/src/commands/make/main.c ./src/commands/make/main.c
*** /save/std/2.0.0/src/commands/make/main.c Wed Mar 09 12:39:05 1994
--- ./src/commands/make/main.c Sat Nov 23 12:07:25 1996
***************
*** 44,50 ****
static char version[]= "2.0";
- static char *makefile; /* The make file */
static FILE *ifd; /* Input file desciptor */
static char *ptrmakeflags;
--- 44,49 ----
***************
*** 141,153 ****
else if (!makefile) { /* If no file, then use default */
if ((ifd = fopen(DEFN1, "r")) == (FILE *)0) {
if (errno != MNOENT || !DEFN2)
! fatal("Can't open %s; error %02x", DEFN1, errno);
else if ((ifd = fopen(DEFN2, "r")) == (FILE *)0)
! fatal("Can't open %s; error %02x", DEFN2, errno);
}
}
else if ((ifd = fopen(makefile, "r")) == (FILE *)0)
! fatal("Can't open %s; error %2x", makefile, errno);
init();
--- 140,152 ----
else if (!makefile) { /* If no file, then use default */
if ((ifd = fopen(DEFN1, "r")) == (FILE *)0) {
if (errno != MNOENT || !DEFN2)
! fatal("Can't open %s: %s", DEFN1, errno);
else if ((ifd = fopen(DEFN2, "r")) == (FILE *)0)
! fatal("Can't open %s: %s", DEFN2, errno);
}
}
else if ((ifd = fopen(makefile, "r")) == (FILE *)0)
! fatal("Can't open %s: %s", makefile, errno);
init();
***************
*** 283,289 ****
int a2;
{
fprintf(stderr, "%s: ", myname);
! fprintf(stderr, msg, a1, a2);
fputc('\n', stderr);
exit(1);
}
--- 282,288 ----
int a2;
{
fprintf(stderr, "%s: ", myname);
! fprintf(stderr, msg, a1, strerror(a2));
fputc('\n', stderr);
exit(1);
}
diff -c -r /save/std/2.0.0/src/commands/make/make.c ./src/commands/make/make.c
*** /save/std/2.0.0/src/commands/make/make.c Tue Feb 13 19:52:22 1996
--- ./src/commands/make/make.c Sat Jan 18 15:50:59 1997
***************
*** 24,29 ****
--- 24,32 ----
#include "h.h"
+ /* Files made with a make rule newer than the youngest file. */
+ #define NEWER ((time_t) -1 < 0 ? (time_t) LONG_MAX : (time_t) -1)
+
static bool execflag;
/*
***************
*** 68,74 ****
#ifdef unix
/*
* Make a file look very outdated after an error trying to make it.
! * This keeps hard links intact. (kjb)
*/
int makeold(name) char *name;
{
--- 71,77 ----
#ifdef unix
/*
* Make a file look very outdated after an error trying to make it.
! * Don't remove, this keeps hard links intact. (kjb)
*/
int makeold(name) char *name;
{
***************
*** 390,396 ****
}
if (r < 0) {
if (errno != ENOENT)
! fatal("Can't open %s; error %d", np->n_name, errno);
np->n_time = 0L;
} else {
--- 393,399 ----
}
if (r < 0) {
if (errno != ENOENT)
! fatal("Can't open %s: %s", np->n_name, errno);
np->n_time = 0L;
} else {
***************
*** 418,429 ****
if ((fd = open(np->n_name, 0)) < 0) {
if (errno != ER_NOTF)
! fatal("Can't open %s; error %02x", np->n_name, errno);
np->n_time = 0L;
}
else if (getstat(fd, &info) < 0)
! fatal("Can't getstat %s; error %02x", np->n_name, errno);
else {
np->n_time = info.st_mod;
np->n_flag |= N_EXISTS;
--- 421,432 ----
if ((fd = open(np->n_name, 0)) < 0) {
if (errno != ER_NOTF)
! fatal("Can't open %s: %s", np->n_name, errno);
np->n_time = 0L;
}
else if (getstat(fd, &info) < 0)
! fatal("Can't getstat %s: %s", np->n_name, errno);
else {
np->n_time = info.st_mod;
np->n_flag |= N_EXISTS;
***************
*** 437,448 ****
if ((fd = open(np->n_name, 0)) < 0) {
if (errno != E_PNNF)
! fatal("Can't open %s; error %02x", np->n_name, errno);
np->n_time = 0L;
}
else if (getmdate(fd, &info) < 0)
! fatal("Can't getstat %s; error %02x", np->n_name, errno);
else {
np->n_time = cnvtime(&info);
np->n_flag |= N_EXISTS;
--- 440,451 ----
if ((fd = open(np->n_name, 0)) < 0) {
if (errno != E_PNNF)
! fatal("Can't open %s: %s", np->n_name, errno);
np->n_time = 0L;
}
else if (getmdate(fd, &info) < 0)
! fatal("Can't getstat %s: %s", np->n_name, errno);
else {
np->n_time = cnvtime(&info);
np->n_flag |= N_EXISTS;
***************
*** 584,601 ****
time_t t;
t = np->n_time;
! time(&np->n_time);
return (t < dtime);
}
else if ((np->n_time < dtime || !( np->n_flag & N_EXISTS))
&& !(np->n_flag & N_DOUBLE)) {
execflag = FALSE;
make1(np, (struct line *)0, qdp, basename, inputname); /* free()'s qdp */
! time(&np->n_time);
if ( execflag) np->n_flag |= N_EXEC;
}
else if ( np->n_flag & N_EXEC ) {
! time(&np->n_time);
}
if (dbginfo) {
--- 587,604 ----
time_t t;
t = np->n_time;
! np->n_time = NEWER;
return (t < dtime);
}
else if ((np->n_time < dtime || !( np->n_flag & N_EXISTS))
&& !(np->n_flag & N_DOUBLE)) {
execflag = FALSE;
make1(np, (struct line *)0, qdp, basename, inputname); /* free()'s qdp */
! np->n_time = NEWER;
if ( execflag) np->n_flag |= N_EXEC;
}
else if ( np->n_flag & N_EXEC ) {
! np->n_time = NEWER;
}
if (dbginfo) {
diff -c -r /save/std/2.0.0/src/commands/make/reader.c ./src/commands/make/reader.c
*** /save/std/2.0.0/src/commands/make/reader.c Mon Nov 15 20:12:14 1993
--- ./src/commands/make/reader.c Sat Nov 23 11:37:41 1996
***************
*** 28,34 ****
{
fprintf(stderr, "%s: ", myname);
fprintf(stderr, msg, a1);
! if (lineno) fprintf(stderr, " near line %d", lineno);
fputc('\n', stderr);
exit(1);
}
--- 28,34 ----
{
fprintf(stderr, "%s: ", myname);
fprintf(stderr, msg, a1);
! if (lineno) fprintf(stderr, " in %s near line %d", makefile, lineno);
fputc('\n', stderr);
exit(1);
}

35
Minix/2.0.0/fixes/fix-5 Normal file
View File

@@ -0,0 +1,35 @@
This fix repairs a bug in the interpretation of the "MCD" boot variable.
Right now it simply doesn't work, so the Mitsumi driver is locked to
I/O 300, IRQ 10. (Note that this is a driver for the old and obsolete
proprietary Mitsumi interface. Newer Mitsumi devices are IDE, so don't
go to the trouble to patch mcd.c to find out that it won't work anyway.)
To apply this fix do the following as bin:
! cd /usr
! patch -p0 < "this-file"
And build a new kernel normally. You will find the original mcd.c file
renamed to mcd.c~ in src/kernel/. You may wish to delete it to clean
things up.
diff -c -r /save/std/2.0.0/src/kernel/mcd.c ./src/kernel/mcd.c
*** /save/std/2.0.0/src/kernel/mcd.c Fri Dec 08 17:23:23 1995
--- ./src/kernel/mcd.c Thu Dec 12 20:35:58 1996
***************
*** 199,205 ****
mcd_io_base = v;
v = MCD_IRQ;
! (void) env_parse(var, fmt, 0, &v, 0L, (long) NR_IRQ_VECTORS - 1);
mcd_irq = v;
driver_task(&mcd_dtab); /* Start driver task for cdrom */
--- 199,205 ----
mcd_io_base = v;
v = MCD_IRQ;
! (void) env_parse(var, fmt, 1, &v, 0L, (long) NR_IRQ_VECTORS - 1);
mcd_irq = v;
driver_task(&mcd_dtab); /* Start driver task for cdrom */

BIN
Minix/2.0.0/i386/ROOT.gz Normal file

Binary file not shown.

BIN
Minix/2.0.0/i386/USR.TAZ Normal file

Binary file not shown.

BIN
Minix/2.0.0/i386/USR.gz Normal file

Binary file not shown.

View File

@@ -0,0 +1,9 @@
<HEAD><TITLE>Index of /ftp/minix/2.0.0/i386</TITLE></HEAD><BODY>
<H1>Index of /ftp/minix/2.0.0/i386</H1>
<PRE><IMG SRC="/icons/blank.gif" ALT=" "> Name Last modified Size Description
<HR>
<IMG SRC="/icons/back.gif" ALT="[DIR]"> <A HREF="/ftp/minix/2.0.0/">Parent Directory</A> 19-Dec-96 10:48 -
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="/cgi-bin/raw/ftp/minix/2.0.0/i386/ROOT">ROOT</A> 22-Sep-96 14:04 480k
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="/cgi-bin/raw/ftp/minix/2.0.0/i386/USR">USR</A> 22-Sep-96 14:04 720k
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="USR.TAZ">USR.TAZ</A> 22-Sep-96 14:04 3M
</PRE></BODY>

BIN
Minix/2.0.0/i86/ROOT.gz Normal file

Binary file not shown.

BIN
Minix/2.0.0/i86/USR.TAZ Normal file

Binary file not shown.

BIN
Minix/2.0.0/i86/USR.gz Normal file

Binary file not shown.

View File

@@ -0,0 +1,9 @@
<HEAD><TITLE>Index of /ftp/minix/2.0.0/i86</TITLE></HEAD><BODY>
<H1>Index of /ftp/minix/2.0.0/i86</H1>
<PRE><IMG SRC="/icons/blank.gif" ALT=" "> Name Last modified Size Description
<HR>
<IMG SRC="/icons/back.gif" ALT="[DIR]"> <A HREF="/ftp/minix/2.0.0/">Parent Directory</A> 19-Dec-96 10:48 -
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="/cgi-bin/raw/ftp/minix/2.0.0/i86/ROOT">ROOT</A> 22-Sep-96 14:04 480k
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="/cgi-bin/raw/ftp/minix/2.0.0/i86/USR">USR</A> 22-Sep-96 14:04 720k
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="USR.TAZ">USR.TAZ</A> 22-Sep-96 14:04 3M
</PRE></BODY>

104
Minix/2.0.0/index.html Normal file
View File

@@ -0,0 +1,104 @@
<html><head><title>Minix 2.0.0</title></head>
<body>
<h2>HOW TO GET AND INSTALL MINIX 2.0.0</h2>
This directory and subdirectories contains Minix version 2.0.0, a small
educational UNIX-like system for IBM PC's and compatibles.
<p>
<em>Note:</em> The files here are the same as found on the
<a href="/cgi-bin/raw/ftp/minix/CD-ROM-2.0/">MINIX 2.0 CDROM</a> in the
<a href="/cgi-bin/raw/ftp/minix/CD-ROM-2.0/MINIX/">MINIX</a> directory,
except that the surrounding fluff, README's and such, is more suited to
FTP or WWW users.
<p>
Before installing Minix, do the unthinkable and read the installation manual
<a href="wwwman/man8/usage.8.html"><b>usage</b>(8)</a>.
It is in the following files in various forms:
<p>
<pre>
<a href="install.ps">install.ps</a> - Postscript
<a href="install.t">install.t</a> - Troff -man source
<a href="install.txt">install.txt</a> - Flat ASCII text
<a href="manuals/">manuals/</a> - All other Minix manual pages
</pre>
Alternatively, with a web browser you can view the
<a href="wwwman/whatis.html">whole manual page set</a>.
The page to start with is
<a href="wwwman/man8/usage.8.html"><b>usage</b>(8)</a>.
<hr>
Before fetching Minix, you should get the checksum list (to verify correct
transmission and unpacking). If you do not already have it, you will need
the program to compute the checksums on your machine, crc.c:
<pre>
<a href="crclist">crclist</a> - CRC's of all the files here
<a href="crc.c">crc.c</a> - Command to make CRC checksums
</pre>
Eventually, you may also want these files:
<pre>
<a href="changes-2.0.0">changes-2.0.0</a> - List of changes between 1.7.4 and 2.0.0
<a href="upgrade-2.0.0">upgrade-2.0.0</a> - How to upgrade from 1.7.4 to 2.0.0
<a href="bugs">bugs</a> - List of bugs in 2.0.0
<a href="fixes/">fixes/</a> - Fixes to bugs in 2.0.0
<a href="misc/">misc/</a> - Additional documents: installation example,
network config, XT installation.
<a href="ack/">ack/</a> - ACK Modula-2 and Pascal compilers
</pre>
<hr>
Minix for the Intel architecture comes in three flavors:
<pre>
- Regular (for 386, 486, and Pentium machines)
- Small (for 8086 and 286 machines)
- Tiny (for 8086 and 286 machines with small memories and/or 360K
diskette drives)
</pre>
For the regular distribution, use the <b>i386</b> directory. For the small
distribution, use the <b>i86</b> directory. For the tiny distribution, use
both the <b>i86</b> and <b>xt</b> directories. All these directories
contain the executable programs of Minix. In addition, the <b>src</b>
directory contains the full Minix source code, which is identical for all
three flavors (the code contains #ifdef's where the difference matters).
The following files can be found in these directories:
<pre>
<a href="i386/">i386</a>: <a href="/cgi-bin/raw/ftp/minix/2.0.0/i386/ROOT">ROOT</a> <a href="/cgi-bin/raw/ftp/minix/2.0.0/i386/USR">USR</a> <a href="i386/USR.TAZ">USR.TAZ</a>
<a href="i86/">i86</a>: <a href="/cgi-bin/raw/ftp/minix/2.0.0/i86/ROOT">ROOT</a> <a href="/cgi-bin/raw/ftp/minix/2.0.0/i86/USR">USR</a> <a href="i86/USR.TAZ">USR.TAZ</a>
<a href="xt/">xt</a>: <a href="xt/README">README</a> <a href="/cgi-bin/raw/ftp/minix/2.0.0/xt/TINYROOT">TINYROOT</a> <a href="/cgi-bin/raw/ftp/minix/2.0.0/xt/TINYUSR1">TINYUSR1</a> <a href="/cgi-bin/raw/ftp/minix/2.0.0/xt/TINYUSR2">TINYUSR2</a> (360K images)
<a href="src/">src</a>: <a href="src/SYS.TAZ">SYS.TAZ</a> <a href="src/CMD.TAZ">CMD.TAZ</a>
</pre>
The files with names ending in <b>.TAZ</b> are compressed tar archives,
the other files are diskette images of the installation boot floppies.
<p>
The two installation floppies <b>ROOT</b> and <b>USR</b> can be combined on
a 1.2 Mb or 1.44 Mb diskette. The <b>.TAZ</b> files must be distributed over
several floppies. Example for UNIX:
<pre>
<b>cat ROOT USR &gt;/dev/floppy</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=0</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=1</b>
<b>dd if=USR.TAZ of=/dev/floppy bs=1440k count=1 skip=2</b>
</pre>
Increase the "skip" count until <b>dd</b> writes a diskette partially.
<b>/dev/floppy</b> should be the name of the floppy device. You have to
find out what your Operating System names it today. Under MS-DOS you can
use the <b>FDVOL</b> command found in the <a href="../dosutil/">../dosutil</a>
directory to write the floppy images.
<p>
Be careful when you install Minix, many of the commands are potentionally
dangerous in a way that a simple typing mistake may destroy all other data
on your system. So make backups first!
<pre>
Kees J. Bot (kjb@cs.vu.nl)
</pre></body></html>

BIN
Minix/2.0.0/install.ps.gz Normal file

Binary file not shown.

BIN
Minix/2.0.0/install.t.gz Normal file

Binary file not shown.

BIN
Minix/2.0.0/install.txt.gz Normal file

Binary file not shown.

View File

@@ -0,0 +1,47 @@
Using Minix in 640K RAM
modified: Sun Sep 1 10:43:20 EDT 1996
_________________________________________________________________
Q: I installed Minix on a 640K XT and get a lot of error messages when
I try to do real work.
A: The problem is probably lack of memory. When you run out of memory
errors multiply, and the error message that is printed sometimes isn't
a good indicator of what caused the problem in the first place.
Here are some hints for using Minix on a 640K machine:
1. 640K just doesn't leave much space for Minix plus other stuff. Don't
try to use the RAM disk unless you absolutely must (i.e., one floppy
drive). If you have two floppies put the root on one of them. This is
only temporary until you can have the root on the hard drive. To
prevent a RAM disk from being created at startup make sure the ramsize
boot parameter is 0 and change the rootdev parameter to "rootdev=bootdev".
2. The ash shell is very big for use on the XT. It is nice, but you may
want to change the default shell to sh in /etc/passwd. Alternatively, you
can type "exec sh" when you are about to do something that strains memory.
3. If you want to network an XT it can be done, but you need to streamline
things. The default /etc/rc starts daemons you don't really need. Also,
you should have a separate non-networked small kernel you can boot as an
alternate when you want to do something memory intensive, like recompiling
the kernel.
4. When things are desperate use exec, i.e, "exec make". When the task
finishes you have to log in again, but this method gives you more memory.
5. It is possible to recompile the system by issuing "make" in
/usr/src/tools, but you need a small kernel. It may be easier just to go
into each directory (kernel, mm, etc.), and do a make in each.
Albert S. Woodhull
Hampshire College, Amherst, MA
awoodhull@hamp.hampshire.edu
http://minix1.hampshire.edu/asw

Binary file not shown.

View File

@@ -0,0 +1,77 @@
Compiling and using Minix network support
modified: Sun Sep 1 11:20:02 EDT 1996
_________________________________________________________________
Q: How do I build TCP/IP support into the kernel?
A: Actually, the changes to the kernel itself are small. The ethernet
driver code is compiled and the kernel is enabled to communicate with
the INET server, which runs outside of the kernel with the same
priority as the MM and FS servers.
To compile a network-capable Minix system you must edit
/usr/include/minix/config.h. as described below and then cd to
/usr/src/tools and type "make". A new Minix system will be created as
/usr/src/tools/image. The new system will include the inet server.
The minimum change to config.h is to set ENABLE_NETWORKING to 1. If
you want to be able to do remote logins with rlogin or telnet you need
to change NR_PTYS to a value greater than zero. If two or more users
are likely to be active at once you may need to increase NR_PROCS
from its default value of 32. NR_PTYS 8 and NR_PROCS 64 seems to work
well for a system that has two or three users logged in at the same
time. These changes will increase the size of the kernel, and if you
are compiling for a system with limited memory you might want to first
try a system with no ptys and only the default 32 processes.
Once the new system image is compiled you can move it to the root
directory as /minix.net. Then you can test it by specifying
image=minix.net at the boot manager prompt. If it works correctly you
can either rename it as /minix or save the image boot parameter. If
you have limited memory you may want to keep the original system image
available to boot when you want to do something that requires a lot of
memory, like recompiling a system.
Q. Having compiled a networking kernel, how do I use it?
A. There are a few more steps after compiling before you can use the
network capabilities.
1. In /dev you probably already have /dev/eth, /dev/ip, /dev/tcp, and
/dev/udp defined, but if they are missing you need to create them with
MAKEDEV. If you have set NR_PTYS to a number greater than 0 you should
also create /dev/ttyp0, /dev/ptyp0, etc., with MAKEDEV.
2. In order for the ethernet driver to be enabled you must add to the
boot parameters a line like DPETH0=on or DPETH0=I/O-addr:irq:mem-addr.
The first form can be used if the ethernet adapter uses the default
settings of 280:3:d0000. If the defaults are used serial line two will
be disabled, since it also needs IRQ 3. A setting of 280:5:d0000 is
recommended if IRQ 5 is free, which is usually the case on AT-class
machines. Of course the ethernet card must be set up for the
parameters you tell Minix.
3. Finally, you may want to review the network initialization
performed by /etc/rc. The default /etc/rc is suitable for a Minix
system running on a large network with sophisticated servers
available, and in this context it allows a Minix system to discover
its own name and address without any editing of the configuration
files. This is very useful for a university laboratory where a large
number of Minix systems may be in use, but it is not optimal for a
small network with a few small systems, all of which may not be
operating all the time. On a system with limited memory it is also
useful to reduce the number of network daemons that are started.
Copies of various configuration files I use on minix1.hampshire.edu
are in that system's anonymous ftp area, in /pub/mx.config.samp.
--------------------------------
Albert S. Woodhull
Hampshire College, Amherst, MA
awoodhull@hampshire.edu
http://minix1.hampshire.edu/asw

BIN
Minix/2.0.0/src/CMD.TAZ Normal file

Binary file not shown.

BIN
Minix/2.0.0/src/SYS.TAZ Normal file

Binary file not shown.

View File

@@ -0,0 +1,8 @@
<HEAD><TITLE>Index of /ftp/minix/2.0.0/src</TITLE></HEAD><BODY>
<H1>Index of /ftp/minix/2.0.0/src</H1>
<PRE><IMG SRC="/icons/blank.gif" ALT=" "> Name Last modified Size Description
<HR>
<IMG SRC="/icons/back.gif" ALT="[DIR]"> <A HREF="/ftp/minix/2.0.0/">Parent Directory</A> 19-Dec-96 10:48 -
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="CMD.TAZ">CMD.TAZ</A> 22-Sep-96 14:04 3M
<IMG SRC="/icons/binary.gif" ALT="[BIN]"> <A HREF="SYS.TAZ">SYS.TAZ</A> 22-Sep-96 14:04 2M
</PRE></BODY>

25
Minix/2.0.0/upgrade-2.0.0 Normal file
View File

@@ -0,0 +1,25 @@
How to upgrade from 1.7.4 (or 1.7.5) to 2.0.0.
Note: Things you have to do as root are marked with a # sign. The ! sign
marks the actions of bin.
# Replace the sources, that's /usr/include, /usr/man, and /usr/src, with
the 2.0.0 sources by extracting the SYS.nn images in the normal way.
(Don't forget to move or remove the 1.7.4 stuff.)
! Move to /usr/src/lib and type 'make install'. You need new libraries
for the new kernel.
! Customize /usr/include/minix/config.h to add or remove drivers. In
/usr/src/tools type 'make hdboot'. Reboot.
! Your system should now be running 2.0.0. Install the commands from CMD.nn
and use 'make install' in /usr/src to recompile the rest of the system.
# Run 'checkhier' to check your top level directory tree. It suggest
commands to execute to fix descrepancies in the top level directory
tree.
# Compare all files in /usr/src/etc with those in /etc. Some may have
changed and should be replaced. Be careful not to lose changes you
have made to files in /etc.

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>M(1)</TITLE>
</HEAD>
<BODY>
<H1>M(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
M, U - conveniently mount and unmount
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>M</STRONG> <EM>device</EM> [<STRONG>-r</STRONG>]
<STRONG>U</STRONG> <EM>device</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-r</STRONG> Mount read-only
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>M</STRONG> <STRONG>root</STRONG> # Mount the RAM image on /root
<STRONG>M</STRONG> <STRONG>0</STRONG> # Mount /dev/fd0 on /fd0
<STRONG>U</STRONG> <STRONG>fd1</STRONG> # Unmount /dev/fd1 from /fd1
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>M</EM> and <EM>U</EM> allow easy mounting and unmounting of a device by using only an
abbreviated device name or keyword. Special keywords are <STRONG>root</STRONG>, <STRONG>tmp</STRONG>, and
<STRONG>usr</STRONG> for the three hard disk partitions Minix runs in. Floppy devices are
mounted on <STRONG>/fd0</STRONG> or <STRONG>/fd1</STRONG>. You can use <STRONG>0</STRONG> and <STRONG>1</STRONG> instead of <STRONG>fd0</STRONG> and <STRONG>fd1</STRONG>. A
device it doesn't know about is mounted on <STRONG>/mnt</STRONG>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/mount.1.html">mount(1)</A></STRONG>, <STRONG><A HREF="../man1/umount.1.html">umount(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>M(1)</TITLE>
</HEAD>
<BODY>
<H1>M(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
M, U - conveniently mount and unmount
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>M</STRONG> <EM>device</EM> [<STRONG>-r</STRONG>]
<STRONG>U</STRONG> <EM>device</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-r</STRONG> Mount read-only
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>M</STRONG> <STRONG>root</STRONG> # Mount the RAM image on /root
<STRONG>M</STRONG> <STRONG>0</STRONG> # Mount /dev/fd0 on /fd0
<STRONG>U</STRONG> <STRONG>fd1</STRONG> # Unmount /dev/fd1 from /fd1
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>M</EM> and <EM>U</EM> allow easy mounting and unmounting of a device by using only an
abbreviated device name or keyword. Special keywords are <STRONG>root</STRONG>, <STRONG>tmp</STRONG>, and
<STRONG>usr</STRONG> for the three hard disk partitions Minix runs in. Floppy devices are
mounted on <STRONG>/fd0</STRONG> or <STRONG>/fd1</STRONG>. You can use <STRONG>0</STRONG> and <STRONG>1</STRONG> instead of <STRONG>fd0</STRONG> and <STRONG>fd1</STRONG>. A
device it doesn't know about is mounted on <STRONG>/mnt</STRONG>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/mount.1.html">mount(1)</A></STRONG>, <STRONG><A HREF="../man1/umount.1.html">umount(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>test(1)</TITLE>
</HEAD>
<BODY>
<H1>test(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
test, [ - test for a condition
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>test</STRONG> <EM>expr</EM>
<STRONG>[</STRONG> <EM>expr</EM> <STRONG>]</STRONG>
</PRE>
<H2>OPTIONS</H2><PRE>
(none)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>test</STRONG> <STRONG>-r</STRONG> <STRONG>file</STRONG> # See if file is readable
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Test</EM> checks to see if files exist, are readable, etc. and returns an exit
status of zero if true and nonzero if false. The legal operators are
-r file true if the file is readable
-w file true if the file is writable
-x file true if the file is executable
-f file true if the file is not a directory
-d file true if the file is a directory
-s file true if the file exists and has a size &gt; 0
-t fd true if file descriptor fd (default 1) is a terminal
-z s true if the string s has zero length
-n s true if the string s has nonzero length
s1 = s2 true if the strings s1 and s2 are identical
s1 != s2 true if the strings s1 and s2 are different
m -eq m true if the integers m and n are numerically equal
The operators <STRONG>-gt</STRONG>, <STRONG>-ge</STRONG>, <STRONG>-ne</STRONG>, <STRONG>-le</STRONG>, and <STRONG>-lt</STRONG> may be used as well. These
operands may be combined with <STRONG>-a</STRONG> (Boolean and), <STRONG>-o</STRONG> (Boolean or), !
(negation). The priority of <STRONG>-a</STRONG> is higher than that of <STRONG>-o</STRONG>. Parentheses are
permitted, but must be escaped to keep the shell from trying to interpret
them.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/expr.1.html">expr(1)</A></STRONG>, <STRONG><A HREF="../man1/sh.1.html">sh(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>ar(1)</TITLE>
</HEAD>
<BODY>
<H1>ar(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ar, aal - archivers
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ar</STRONG> [<STRONG>dmpqrtx</STRONG>][<STRONG>abciluv</STRONG>] [<EM>posname</EM>] <EM>archive</EM> [<EM>file</EM> ...]
<STRONG>aal</STRONG> [<STRONG>dpqrtx</STRONG>][<STRONG>clv</STRONG>] <EM>archive</EM> [<EM>file</EM> ...]
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ar</STRONG> <STRONG>r</STRONG> <STRONG>libc.a</STRONG> <STRONG>sort.s</STRONG> # Replace <EM>sort</EM>.s in <EM>libc</EM>.<EM>a</EM>
<STRONG>ar</STRONG> <STRONG>rb</STRONG> <STRONG>a.s</STRONG> <STRONG>libc.a</STRONG> <STRONG>b.s</STRONG>
# Insert <EM>b</EM>.<EM>s</EM> before <EM>a</EM>.<EM>s</EM> in <EM>libc</EM>.<EM>a</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Ar</EM> allows groups of files to be put together into a single archive. It
is normally used for libraries of compiled procedures. <EM>Aal</EM> is like <EM>ar</EM>,
but is to be used with the ACK compiler. The following keys are allowed:
<STRONG>d</STRONG>: Delete. <EM>Ar</EM> will delete the named members.
<STRONG>m</STRONG>: Move named files. <EM>Ar</EM> expects <EM>a</EM>, <EM>b</EM>, or <EM>i</EM> to be specified.
<STRONG>p</STRONG>: Print the named files (list them on <EM>stdout</EM>)
<STRONG>q</STRONG>: Quickly append to the end of the archive file.
<STRONG>r</STRONG>: Replace (append when not in archive).
<STRONG>t</STRONG>: Print the archive's table of contents.
<STRONG>x</STRONG>: Extract
<STRONG>The</STRONG> <STRONG>keys</STRONG> <STRONG>may</STRONG> <STRONG>optionally</STRONG> <STRONG>concatencated</STRONG> <STRONG>with</STRONG> <STRONG>one</STRONG> <STRONG>or</STRONG> <STRONG>more</STRONG> <STRONG>of</STRONG> <STRONG>the</STRONG> <STRONG>following</STRONG>:
<STRONG>a</STRONG>: After <EM>posname</EM>
<STRONG>b</STRONG>: Before <EM>posname</EM>
<STRONG>c</STRONG>: Create (suppresses creation message)
<STRONG>i</STRONG>: Before <EM>posname</EM>
<STRONG>l</STRONG>: Local temporary file for work instead of /<EM>tmp</EM>/<EM>ar</EM>.$$$$$
<STRONG>u</STRONG>: Replace only if dated later than member in archive
<STRONG>v</STRONG>: Verbose
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/anm.1.html">anm(1)</A></STRONG>, <STRONG><A HREF="../man1/asize.1.html">asize(1)</A></STRONG>, <STRONG><A HREF="../man1/nm.1.html">nm(1)</A></STRONG>, <STRONG><A HREF="../man1/size.1.html">size(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>anm(1)</TITLE>
</HEAD>
<BODY>
<H1>anm(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
anm - print name list
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>anm</STRONG> [<STRONG>-gnoprus</STRONG>] <EM>file</EM> ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-g</STRONG> Global symbols only
<STRONG>-n</STRONG> Sort numerically
<STRONG>-o</STRONG> Prepend the filename to each line
<STRONG>-p</STRONG> No sorting----use symbol table order
<STRONG>-r</STRONG> Sort in reverse order
<STRONG>-u</STRONG> List undefined symbols only
<STRONG>-s</STRONG> Sort in section order
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>anm</STRONG> <STRONG>-gn</STRONG> <STRONG>test.o</STRONG> # Print global symbols in numerical order
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Anm</EM> prints the name list (symbol table) of each ACK format object <EM>file</EM> in
the argument list. If no file name is given, <EM>a</EM>.<EM>out</EM> is used. Each symbol
name is preceded by its value, a section indicator and a type indicator.
The section indicators are:
<STRONG>U</STRONG> Undefined symbol
<STRONG>A</STRONG> Absolute symbol
<STRONG>-</STRONG> Other symbol
The type indicators are:
<STRONG>F</STRONG> Filename
<STRONG>M</STRONG> Module name
<STRONG>S</STRONG> Section name
<STRONG>E</STRONG> External (global) symbol
<STRONG>-</STRONG> Local symbol
The output is sorted alphabetically, unless otherwise specified. Notice
that <EM>anm</EM> can only be used on ACK format object files (that is: .<EM>o</EM> and
.<EM>out</EM> files). If you want to get the name list of an executable program
use <EM>nm</EM> instead.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/asize.1.html">asize(1)</A></STRONG>, <STRONG><A HREF="../man1/nm.1.html">nm(1)</A></STRONG>, <STRONG><A HREF="../man1/ar.1.html">ar(1)</A></STRONG>, <STRONG><A HREF="../man1/size.1.html">size(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>whatis(1)</TITLE>
</HEAD>
<BODY>
<H1>whatis(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
whatis, apropos - give single line descriptions for manual pages
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>whatis</STRONG> [<STRONG>-a</STRONG>] <EM>title</EM>
<STRONG>apropos</STRONG> <EM>keyword</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<STRONG>Whatis</STRONG> lists the one line description from the <STRONG><A HREF="../man5/whatis.5.html">whatis(5)</A></STRONG> database
describing the title given. It displays all the lines with the title
from the first whatis file that has those titles. It uses the same
search path as <STRONG><A HREF="../man1/man.1.html">man(1)</A></STRONG>.
<STRONG>Apropos</STRONG> searches through all whatis files for the given keywords. It
lists any line that has the keyword anywhere on the line.
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> Search all whatis files.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/man.1.html">man(1)</A></STRONG>, <STRONG><A HREF="../man1/grep.1.html">grep(1)</A></STRONG>, <STRONG><A HREF="../man5/whatis.5.html">whatis(5)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>ar(1)</TITLE>
</HEAD>
<BODY>
<H1>ar(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ar, aal - archivers
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ar</STRONG> [<STRONG>dmpqrtx</STRONG>][<STRONG>abciluv</STRONG>] [<EM>posname</EM>] <EM>archive</EM> [<EM>file</EM> ...]
<STRONG>aal</STRONG> [<STRONG>dpqrtx</STRONG>][<STRONG>clv</STRONG>] <EM>archive</EM> [<EM>file</EM> ...]
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ar</STRONG> <STRONG>r</STRONG> <STRONG>libc.a</STRONG> <STRONG>sort.s</STRONG> # Replace <EM>sort</EM>.s in <EM>libc</EM>.<EM>a</EM>
<STRONG>ar</STRONG> <STRONG>rb</STRONG> <STRONG>a.s</STRONG> <STRONG>libc.a</STRONG> <STRONG>b.s</STRONG>
# Insert <EM>b</EM>.<EM>s</EM> before <EM>a</EM>.<EM>s</EM> in <EM>libc</EM>.<EM>a</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Ar</EM> allows groups of files to be put together into a single archive. It
is normally used for libraries of compiled procedures. <EM>Aal</EM> is like <EM>ar</EM>,
but is to be used with the ACK compiler. The following keys are allowed:
<STRONG>d</STRONG>: Delete. <EM>Ar</EM> will delete the named members.
<STRONG>m</STRONG>: Move named files. <EM>Ar</EM> expects <EM>a</EM>, <EM>b</EM>, or <EM>i</EM> to be specified.
<STRONG>p</STRONG>: Print the named files (list them on <EM>stdout</EM>)
<STRONG>q</STRONG>: Quickly append to the end of the archive file.
<STRONG>r</STRONG>: Replace (append when not in archive).
<STRONG>t</STRONG>: Print the archive's table of contents.
<STRONG>x</STRONG>: Extract
<STRONG>The</STRONG> <STRONG>keys</STRONG> <STRONG>may</STRONG> <STRONG>optionally</STRONG> <STRONG>concatencated</STRONG> <STRONG>with</STRONG> <STRONG>one</STRONG> <STRONG>or</STRONG> <STRONG>more</STRONG> <STRONG>of</STRONG> <STRONG>the</STRONG> <STRONG>following</STRONG>:
<STRONG>a</STRONG>: After <EM>posname</EM>
<STRONG>b</STRONG>: Before <EM>posname</EM>
<STRONG>c</STRONG>: Create (suppresses creation message)
<STRONG>i</STRONG>: Before <EM>posname</EM>
<STRONG>l</STRONG>: Local temporary file for work instead of /<EM>tmp</EM>/<EM>ar</EM>.$$$$$
<STRONG>u</STRONG>: Replace only if dated later than member in archive
<STRONG>v</STRONG>: Verbose
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/anm.1.html">anm(1)</A></STRONG>, <STRONG><A HREF="../man1/asize.1.html">asize(1)</A></STRONG>, <STRONG><A HREF="../man1/nm.1.html">nm(1)</A></STRONG>, <STRONG><A HREF="../man1/size.1.html">size(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>uname(1)</TITLE>
</HEAD>
<BODY>
<H1>uname(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
uname, arch - system info
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>uname</STRONG> [<STRONG>-snrvmpa</STRONG>]
<STRONG>arch</STRONG> [<STRONG>-snrvmpa</STRONG>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-s</STRONG> System name
<STRONG>-n</STRONG> Node/network name
<STRONG>-r</STRONG> Operating system release
<STRONG>-v</STRONG> Operating system version
<STRONG>-m</STRONG> Machine type
<STRONG>-p</STRONG> Processor family
<STRONG>-a</STRONG> Short for <STRONG>-snrvm</STRONG>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>uname</STRONG> <STRONG>-n</STRONG> # Print the name of the system
<STRONG>arch</STRONG> # Print the name of the system architecture
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Uname</EM> and <EM>arch</EM> give information about the system. The options indicate
which information strings must be printed. These strings are always in
the same order. <EM>Uname</EM> and <EM>arch</EM> only differ w.r.t. the default string to
print, <STRONG>-s</STRONG> and <STRONG>-p</STRONG> respectively.
The strings are compiled into the commands except for the node name, it
is obtained from the file /<EM>etc</EM>/<EM>hostname</EM>.<EM>file</EM>. <STRONG>Uname</STRONG> <STRONG>-m</STRONG> should return the
actual machine type, not the same string as with <STRONG>-p</STRONG>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man3/uname.3.html">uname(3)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>ascii(1)</TITLE>
</HEAD>
<BODY>
<H1>ascii(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ascii - strip all the pure ASCII lines from a file
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ascii</STRONG> [<STRONG>-n</STRONG>] [<EM>file</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-n</STRONG> Extract the lines containing nonASCII characters
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ascii</STRONG> <STRONG>file</STRONG> <STRONG>&gt;outf</STRONG> # Write all the ASCII lines on <EM>outf</EM>
<STRONG>ascii</STRONG> <STRONG>-n</STRONG> <STRONG>&lt;file</STRONG> <STRONG>&gt;outf</STRONG>
# Write all the nonASCII lines on <EM>outf</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
Sometimes a file contains some nonASCII characters that are in the way.
This program allows the lines containing only ASCII characters to be
<EM>grepped</EM> from the file. With the <STRONG>-n</STRONG> flag, the nonASCII lines are <EM>grepped</EM>.
No matter whether the flag is used or not, the program returns an exit
status of true if the file is pure ASCII, and false otherwise.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/tr.1.html">tr(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>asize(1)</TITLE>
</HEAD>
<BODY>
<H1>asize(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
asize - report the size of an object file
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>asize</STRONG> <EM>file</EM> ...
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>asize</STRONG> <STRONG>test.o</STRONG> # Give the size of <EM>test</EM>.<EM>o</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Asize</EM> prints for each argument the (decimal) number of bytes used by the
different sections, as well as their sum in decimal and hexadecimal. If
no <EM>file</EM> is given <EM>a</EM>.<EM>out</EM> is used. <EM>Asize</EM> can only be used to obtain the
size of a (M2 .<EM>o</EM> or .<EM>out</EM> file. To obtain the size of an executable, use
<EM>size</EM> instead.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/anm.1.html">anm(1)</A></STRONG>, <STRONG><A HREF="../man1/nm.1.html">nm(1)</A></STRONG>, <STRONG><A HREF="../man1/ar.1.html">ar(1)</A></STRONG>, <STRONG><A HREF="../man1/size.1.html">size(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>at(1)</TITLE>
</HEAD>
<BODY>
<H1>at(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
at, atrun - execute commands at a later time
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>at</STRONG> <EM>time</EM> [<EM>month</EM> <EM>day</EM>] [<EM>file</EM>]
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>at</STRONG> <STRONG>2315</STRONG> <STRONG>Jan</STRONG> <STRONG>31</STRONG> <STRONG>myfile</STRONG>
# Myfile executed Jan 31 at 11:15 pm
<STRONG>at</STRONG> <STRONG>0900</STRONG> # Job input read from <EM>stdin</EM>
<STRONG>at</STRONG> <STRONG>0711</STRONG> <STRONG>4</STRONG> <STRONG>29</STRONG> # Read from <EM>stdin</EM>, exec on April 29
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>At</EM> prepares a file to be executed later at the specified time by creating
a special entry in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM>. The program <EM>atrun</EM> should be started
periodically, for example, every minute by <EM>cron</EM>. <EM>Atrun</EM> checks to see if
any files in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM> should now be run, and if so, it runs them and
then puts them in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM>/<EM>past</EM>. The name of the file created in
/<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM> by <EM>at</EM> is YY.DDD.HHMM.UU (where YY, DDD, HH, and MM give the
time to execute and UU is a unique number). Note that when the command
runs, it will not be able to use <EM>stdin</EM> or <EM>stdout</EM> unless specifically
redirected. In the first example above, it might be necessary to put
&gt;/<EM>dev</EM>/<EM>log</EM> on some lines in the shell script <EM>myfile</EM>. The same holds for
the commands typed directly to <EM>at</EM>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man8/cron.8.html">cron(8)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>at(1)</TITLE>
</HEAD>
<BODY>
<H1>at(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
at, atrun - execute commands at a later time
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>at</STRONG> <EM>time</EM> [<EM>month</EM> <EM>day</EM>] [<EM>file</EM>]
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>at</STRONG> <STRONG>2315</STRONG> <STRONG>Jan</STRONG> <STRONG>31</STRONG> <STRONG>myfile</STRONG>
# Myfile executed Jan 31 at 11:15 pm
<STRONG>at</STRONG> <STRONG>0900</STRONG> # Job input read from <EM>stdin</EM>
<STRONG>at</STRONG> <STRONG>0711</STRONG> <STRONG>4</STRONG> <STRONG>29</STRONG> # Read from <EM>stdin</EM>, exec on April 29
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>At</EM> prepares a file to be executed later at the specified time by creating
a special entry in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM>. The program <EM>atrun</EM> should be started
periodically, for example, every minute by <EM>cron</EM>. <EM>Atrun</EM> checks to see if
any files in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM> should now be run, and if so, it runs them and
then puts them in /<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM>/<EM>past</EM>. The name of the file created in
/<EM>usr</EM>/<EM>spool</EM>/<EM>at</EM> by <EM>at</EM> is YY.DDD.HHMM.UU (where YY, DDD, HH, and MM give the
time to execute and UU is a unique number). Note that when the command
runs, it will not be able to use <EM>stdin</EM> or <EM>stdout</EM> unless specifically
redirected. In the first example above, it might be necessary to put
&gt;/<EM>dev</EM>/<EM>log</EM> on some lines in the shell script <EM>myfile</EM>. The same holds for
the commands typed directly to <EM>at</EM>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man8/cron.8.html">cron(8)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,69 @@
<HTML>
<HEAD>
<TITLE>banner(1)</TITLE>
</HEAD>
<BODY>
<H1>banner(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
banner - print a banner
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>banner</STRONG> <EM>arg</EM> ...
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>banner</STRONG> <STRONG>happy</STRONG> <STRONG>birthday</STRONG>
# Print a banner saying happy birthday
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Banner</EM> prints its arguments on <EM>stdout</EM> using a matrix of 6 x 6 pixels per
character.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>basename(1)</TITLE>
</HEAD>
<BODY>
<H1>basename(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
basename, dirname - strip off file prefixes and suffixes
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>basename</STRONG> <EM>file</EM> [<EM>suffix</EM>]
<STRONG>dirname</STRONG> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
(none)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>basename</STRONG> <STRONG>/user/ast/file.c</STRONG>
# Strips path to yield <EM>file</EM>.<EM>c</EM>
<STRONG>basename</STRONG> <STRONG>/user/file.c</STRONG> <STRONG>.c</STRONG>
# Strips path and .<EM>c</EM> to yield <EM>file</EM>
<STRONG>dirname</STRONG> <STRONG>/user/file.c</STRONG>
# Strips basename to yield /<EM>user</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Basename</EM> removes the initial directory names (if any) yielding the name
of the file itself. If a second argument is present, it is interpreted
as a suffix and is also stripped, if present.
<EM>Dirname</EM> removes the final component of a path, yielding the directory a
file is in.
These programs are primarily used in shell scripts.
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,223 @@
<HTML>
<HEAD>
<TITLE>sh(1)</TITLE>
</HEAD>
<BODY>
<H1>sh(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sh, ., break, case, cd, continue, eval, exec, exit, export, for, if,
read, readonly, set, shift, trap, umask, wait, while - shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>sh</STRONG> [<STRONG>-eiknqstvxu</STRONG>] [<STRONG>-c</STRONG> <EM>str</EM>] <STRONG>[</STRONG><EM>file</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Execute the commands in <EM>str</EM>
<STRONG>-e</STRONG> Quit on error
<STRONG>-i</STRONG> Interactive mode; ignore QUIT, TERMINATE, INTERRUPT
<STRONG>-k</STRONG> Look for name=value everywhere on command line
<STRONG>-n</STRONG> Do not execute commands
<STRONG>-q</STRONG> Change qflag from sig_ign to sig_del
<STRONG>-s</STRONG> Read commands from standard input
<STRONG>-t</STRONG> Exit after reading and executing one command
<STRONG>-v</STRONG> Echo input lines as they are read
<STRONG>-x</STRONG> Trace
<STRONG>-u</STRONG> Unset variables
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>sh</STRONG> <STRONG>script</STRONG> # Run a shell script
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Sh</EM> is the shell, which forms the user's main interface with the system.
On startup, the shell reads /etc/profile and $HOME/.profile, if they
exist, and executes any commands they contain. The Minix shell has most
of the features of the V7 (Bourne) shell, including redirection of input
and output, pipes, magic characters, background processes, and shell
scripts. A brief summary follows, but whole books have been written on
shell programming alone.
Some of the more common notations are:
date # Regular command
sort &lt;file # Redirect <EM>stdin</EM> (standard input)
sort &lt;file1 &gt;file2 # Redirect <EM>stdin</EM> and <EM>stdout</EM>
cc file.c 2&gt;error # Redirect <EM>stderr</EM>
a.out &gt;f 2&gt;&amp;1 # Combine standard output and standard error
sort &lt;file1 &gt;&gt;file2 # Append output to <EM>file2</EM>
sort &lt;file1 &gt;file2 &amp; # Background job
(ls -l; a.out) &amp; # Run two background commands sequentially
sort &lt;file | wc # Two-process pipeline
sort &lt;f | uniq | wc # Three-process pipeline
ls -l *.c # List all files ending in .<EM>c</EM>
ls -l [<EM>a</EM>-<EM>c</EM>]* # List all files beginning with <EM>a</EM>, <EM>b</EM>, or <EM>c</EM>
ls -l ? # List all one-character file names
ls \? # List the file whose name is question mark
ls '???' # List the file whose name is three question
marks
v=/usr/ast # Set shell variable <EM>v</EM>
ls -l $v # Use shell variable <EM>v</EM>
PS1='Hi! ' # Change the primary prompt to <EM>Hi</EM>!
PS2='More: ' # Change the secondary prompt to <EM>More</EM>:
ls -l $HOME # List the home directory
echo $PATH # Echo the search path
echo $? # Echo exit status of previous command in
decimal
echo $$ # Echo shell's pid in decimal
echo $! # Echo PID of last background process
echo $# # Echo number of parameters (shell script)
echo $2 # Echo second parameter (shell script)
echo "$2" # Echo second parameter without expanding
spaces
echo $* # Echo all parameters (shell script)
echo $@ # Echo all parameters (shell script)
echo "$@" # Echo all parameters without expanding spaces
The shell uses the following variables for specific purposes:
SHELL the path of the current shell
HOME the default value for the <STRONG><A HREF="../man1/cd.1.html">cd(1)</A></STRONG> command
PATH the directories to be searched to find
commands
IFS the internal field separators for command
strings
PS1 the primary shell prompt
PS2 the secondary shell prompt
There are various forms of substitution on the shell command line:
`...` Command string between back-quotes is replaced
by its output
"..." Permits variable substitution between quotes
'...' Inhibits variable substitution between quotes
$VAR Replaced by contents of variable VAR
${VAR} Delimits variable VAR from any following
string
The expressions below depend on whether or not VAR has ever been set. If
VAR has been set, they give:
${VAR-str} Replace expression by VAR, else by str
${VAR=str} Replace expression by VAR, else by str and set
VAR to str
${VAR?str} Replace expression by VAR, else print str and
exit shell
${VAR+str} Replace expression by str, else by null string
If a colon is placed after VAR, the expressions depend on whether or not
VAR is currently set and non-null.
The shell has a number of built-in commands:
: return true status
. fn execute shell script fn on current path
break [n] break from a for, until or while loop; exit n
levels
continue [n] continue a for, until or while loop; resume
nth loop
cd [dir] change current working directory; move to
$HOME
eval cmd rescan cmd, performing substitutions
eval rescan the current command line
exec cmd execute cmd without creating a new process
exec &lt;|&gt; with no command name, modify shell I/O
exit [n] exit a shell program, with exit value n
export [var] export var to shell's children; list exported
variables
pwd print the name of the current working
directory
read var read a line from stdin and assign to var
readonly [var] make var readonly; list readonly variables
set -f set shell flag (+f unsets flag)
set str set positional parameter to str
set show the current shell variables
shift reassign positional parameters (except ${0})
one left
times print accumulated user and system times for
processes
trap arg sigs trap signals sigs and run arg on receipt
trap list trapped signals
umask [n] set the user file creation mask; show the
current umask
wait [n] wait for process pid n; wait for all processes
The shell also contains a programming language, which has the following
operators and flow control statements:
# Comment The rest of the line is ignored
= Assignment Set a shell variable
&amp;&amp; Logical AND Execute second command only if
first succeeds
|| Logical OR Execute second command only if
first fails
(...) Group Execute enclosed commands
before continuing
for For loop (for ... in ... do ... done)
case Case statement ((case ... ) ... ;; ... esac)
esac Case statement end
while While loop (while ... do ... done)
do Do/For/While loop start (do ... until ...)
done For/While loop end
if Conditional statement (if ... else ... elif
... fi)
in For loop selection
then Conditional statement start
else Conditional statement alternative
elif Conditional statement end
until Do loop end
fi Conditional statement end
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/echo.1.html">echo(1)</A></STRONG>, <STRONG><A HREF="../man1/expr.1.html">expr(1)</A></STRONG>, <STRONG><A HREF="../man1/pwd.1.html">pwd(1)</A></STRONG>, <STRONG><A HREF="../man1/true.1.html">true(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,77 @@
<HTML>
<HEAD>
<TITLE>bsfilt(1)</TITLE>
</HEAD>
<BODY>
<H1>bsfilt(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
bsfilt, colcrt - a colcrt-like backspace filter
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>bsfilt</STRONG> [ <STRONG>-</STRONG> ] [ <STRONG>-U</STRONG> ] [ file ... ]
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Bsfilt</EM> filters backspace sequences from the input <EM>file</EM>(s) (standard input
if none) in an approximation of <STRONG><A HREF="../man1/colcrt.1.html">colcrt(1)</A></STRONG>. Both the backspace and the
character it returns to are removed, unless they form an underline
sequence. Underline sequences are treated according to the settings of
the <STRONG>-</STRONG> and <STRONG>-U</STRONG> options.
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-</STRONG> specifies that no underlining of any kind is to be propagated.
Without this option or the <STRONG>-U</STRONG> option, <EM>bsfilt</EM> approximates
underlining with minus signs (`-') in following lines.
<STRONG>-U</STRONG> specifies that underlining with underscore (`_') and backspace (`b')
character sequences is permitted.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cawf.1.html">cawf(1)</A></STRONG>, <STRONG><A HREF="../man1/colcrt.1.html">colcrt(1)</A></STRONG> and <STRONG><A HREF="../man1/nroff.1.html">nroff(1)</A></STRONG>.
</PRE>
<H2>DIAGNOSTICS</H2><PRE>
Diagnostic messages are delivered to the standard error file.
</PRE>
<H2>HISTORY</H2><PRE>
Vic Abell of Purdue University wrote <EM>bsfilt</EM> to have a backspace filter
for <STRONG><A HREF="../man1/cawf.1.html">cawf(1)</A></STRONG> that is independent of licensed source code.
</PRE>
<H2>BUGS</H2><PRE>
The maximum length of a line that can be underlined with minus signs is
fixed.
<EM>Bsfilt</EM> does not examine the characters that are being overprinted via
backspace operations. Thus, overprinting that is intended to form a new
character from several different ones is ineffective and only the last
character of the sequence is propagated - e. g., ``o^H+'', intended to
look like a bullet, is reduced to `+'.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>btoa(1)</TITLE>
</HEAD>
<BODY>
<H1>btoa(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
btoa - binary to ascii conversion
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>btoa</STRONG> [<STRONG>-adhor</STRONG>] [<EM>infile</EM>] [<EM>outfile</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> Decode, rather than encode, the file
<STRONG>-d</STRONG> Extracts repair file from diagnosis file
<STRONG>-h</STRONG> Help menu is displayed giving the options
<STRONG>-o</STRONG> The obsolete algorithm is used for backward compatibility
<STRONG>-r</STRONG> Repair a damaged file
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>btoa</STRONG> <STRONG>&lt;a.out</STRONG> <STRONG>&gt;a.btoa</STRONG> # Convert <EM>a</EM>.<EM>out</EM> to ASCII
<STRONG>btoa</STRONG> <STRONG>-a</STRONG> <STRONG>&lt;a.btoa</STRONG> <STRONG>&gt;a.out</STRONG>
# Reverse the above
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Btoa</EM> is a filter that converts a binary file to ascii for transmission
over a telephone line. If two file names are provided, the first in used
for input and the second for output. If only one is provided, it is used
as the input file. The program is a functionally similar alternative to
<EM>uue</EM>/<EM>uud</EM>, but the encoding is completely different. Since both of these
are widely used, both have been provided with MINIX. The file is
expanded about 25 percent in the process.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/uue.1.html">uue(1)</A></STRONG>, <STRONG><A HREF="../man1/uud.1.html">uud(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,69 @@
<HTML>
<HEAD>
<TITLE>cal(1)</TITLE>
</HEAD>
<BODY>
<H1>cal(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cal - print a calendar
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cal</STRONG> [<EM>month</EM>] <EM>year</EM>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cal</STRONG> <STRONG>3</STRONG> <STRONG>1992</STRONG> # Print March 1992
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cal</EM> prints a calendar for a month or year. The year can be between 1 and
9999. Note that the year 91 is not a synonym for 1991, but is itself a
valid year about 19 centuries ago. The calendar produced is the one used
by England and her colonies. Try Sept. 1752, Feb 1900, and Feb 2000. If
you do not understand what is going on, look up <EM>Calendar</EM>, <EM>Gregorian</EM> in a
good encyclopedia.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>calendar(1)</TITLE>
</HEAD>
<BODY>
<H1>calendar(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
calendar - reminder service
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>calendar</STRONG> <STRONG>[-</STRONG>] [<STRONG>-r</STRONG>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-</STRONG> Work for every user and send mail to him
<STRONG>-r</STRONG> Restrict multiple execution on the same day
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>calendar</STRONG> # Check <EM>calendar</EM> file in current directory
<STRONG>calendar</STRONG> # Normary used under the control of <STRONG><A HREF="../man8/cron.8.html">cron(8)</A></STRONG>
<STRONG>calendar</STRONG> <STRONG>-r</STRONG> # Normary used in /etc/rc file
</PRE>
<H2>DESCRIPTION</H2><PRE>
Basically <EM>calendar</EM> program consults the file <EM>calendar</EM> in the current
directory and display lines which contain today's or tomorrow's date.
Month-day formats such as '12/25', 'Dec. 25', 'december 25', '*/25',
'12/*', '*/*' are recognized. The asterisk means 'all' days or 'all'
months. On weekends 'tomorrow' extends through next Monday without any
consideration about holidays. To prevent ambiguity, the formats '25
Dec.' and '25/12' are not recognized.
When an argument <STRONG>-</STRONG> is present, <EM>calendar</EM> works for all users with a file
<EM>calendar</EM> in their login directories and sends them mail. Normally this
is done daily under the control of <EM>cron</EM>.
The <STRONG>-r</STRONG> option does its the same job as <STRONG>-</STRONG> option, but touches the <EM>calendar</EM>
to prevents further access on the same day. Normally this is done in the
/<EM>etc</EM>/<EM>rc</EM> file on a machine which may be booted several times in one day.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man8/cron.8.html">cron(8)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,223 @@
<HTML>
<HEAD>
<TITLE>sh(1)</TITLE>
</HEAD>
<BODY>
<H1>sh(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sh, ., break, case, cd, continue, eval, exec, exit, export, for, if,
read, readonly, set, shift, trap, umask, wait, while - shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>sh</STRONG> [<STRONG>-eiknqstvxu</STRONG>] [<STRONG>-c</STRONG> <EM>str</EM>] <STRONG>[</STRONG><EM>file</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Execute the commands in <EM>str</EM>
<STRONG>-e</STRONG> Quit on error
<STRONG>-i</STRONG> Interactive mode; ignore QUIT, TERMINATE, INTERRUPT
<STRONG>-k</STRONG> Look for name=value everywhere on command line
<STRONG>-n</STRONG> Do not execute commands
<STRONG>-q</STRONG> Change qflag from sig_ign to sig_del
<STRONG>-s</STRONG> Read commands from standard input
<STRONG>-t</STRONG> Exit after reading and executing one command
<STRONG>-v</STRONG> Echo input lines as they are read
<STRONG>-x</STRONG> Trace
<STRONG>-u</STRONG> Unset variables
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>sh</STRONG> <STRONG>script</STRONG> # Run a shell script
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Sh</EM> is the shell, which forms the user's main interface with the system.
On startup, the shell reads /etc/profile and $HOME/.profile, if they
exist, and executes any commands they contain. The Minix shell has most
of the features of the V7 (Bourne) shell, including redirection of input
and output, pipes, magic characters, background processes, and shell
scripts. A brief summary follows, but whole books have been written on
shell programming alone.
Some of the more common notations are:
date # Regular command
sort &lt;file # Redirect <EM>stdin</EM> (standard input)
sort &lt;file1 &gt;file2 # Redirect <EM>stdin</EM> and <EM>stdout</EM>
cc file.c 2&gt;error # Redirect <EM>stderr</EM>
a.out &gt;f 2&gt;&amp;1 # Combine standard output and standard error
sort &lt;file1 &gt;&gt;file2 # Append output to <EM>file2</EM>
sort &lt;file1 &gt;file2 &amp; # Background job
(ls -l; a.out) &amp; # Run two background commands sequentially
sort &lt;file | wc # Two-process pipeline
sort &lt;f | uniq | wc # Three-process pipeline
ls -l *.c # List all files ending in .<EM>c</EM>
ls -l [<EM>a</EM>-<EM>c</EM>]* # List all files beginning with <EM>a</EM>, <EM>b</EM>, or <EM>c</EM>
ls -l ? # List all one-character file names
ls \? # List the file whose name is question mark
ls '???' # List the file whose name is three question
marks
v=/usr/ast # Set shell variable <EM>v</EM>
ls -l $v # Use shell variable <EM>v</EM>
PS1='Hi! ' # Change the primary prompt to <EM>Hi</EM>!
PS2='More: ' # Change the secondary prompt to <EM>More</EM>:
ls -l $HOME # List the home directory
echo $PATH # Echo the search path
echo $? # Echo exit status of previous command in
decimal
echo $$ # Echo shell's pid in decimal
echo $! # Echo PID of last background process
echo $# # Echo number of parameters (shell script)
echo $2 # Echo second parameter (shell script)
echo "$2" # Echo second parameter without expanding
spaces
echo $* # Echo all parameters (shell script)
echo $@ # Echo all parameters (shell script)
echo "$@" # Echo all parameters without expanding spaces
The shell uses the following variables for specific purposes:
SHELL the path of the current shell
HOME the default value for the <STRONG><A HREF="../man1/cd.1.html">cd(1)</A></STRONG> command
PATH the directories to be searched to find
commands
IFS the internal field separators for command
strings
PS1 the primary shell prompt
PS2 the secondary shell prompt
There are various forms of substitution on the shell command line:
`...` Command string between back-quotes is replaced
by its output
"..." Permits variable substitution between quotes
'...' Inhibits variable substitution between quotes
$VAR Replaced by contents of variable VAR
${VAR} Delimits variable VAR from any following
string
The expressions below depend on whether or not VAR has ever been set. If
VAR has been set, they give:
${VAR-str} Replace expression by VAR, else by str
${VAR=str} Replace expression by VAR, else by str and set
VAR to str
${VAR?str} Replace expression by VAR, else print str and
exit shell
${VAR+str} Replace expression by str, else by null string
If a colon is placed after VAR, the expressions depend on whether or not
VAR is currently set and non-null.
The shell has a number of built-in commands:
: return true status
. fn execute shell script fn on current path
break [n] break from a for, until or while loop; exit n
levels
continue [n] continue a for, until or while loop; resume
nth loop
cd [dir] change current working directory; move to
$HOME
eval cmd rescan cmd, performing substitutions
eval rescan the current command line
exec cmd execute cmd without creating a new process
exec &lt;|&gt; with no command name, modify shell I/O
exit [n] exit a shell program, with exit value n
export [var] export var to shell's children; list exported
variables
pwd print the name of the current working
directory
read var read a line from stdin and assign to var
readonly [var] make var readonly; list readonly variables
set -f set shell flag (+f unsets flag)
set str set positional parameter to str
set show the current shell variables
shift reassign positional parameters (except ${0})
one left
times print accumulated user and system times for
processes
trap arg sigs trap signals sigs and run arg on receipt
trap list trapped signals
umask [n] set the user file creation mask; show the
current umask
wait [n] wait for process pid n; wait for all processes
The shell also contains a programming language, which has the following
operators and flow control statements:
# Comment The rest of the line is ignored
= Assignment Set a shell variable
&amp;&amp; Logical AND Execute second command only if
first succeeds
|| Logical OR Execute second command only if
first fails
(...) Group Execute enclosed commands
before continuing
for For loop (for ... in ... do ... done)
case Case statement ((case ... ) ... ;; ... esac)
esac Case statement end
while While loop (while ... do ... done)
do Do/For/While loop start (do ... until ...)
done For/While loop end
if Conditional statement (if ... else ... elif
... fi)
in For loop selection
then Conditional statement start
else Conditional statement alternative
elif Conditional statement end
until Do loop end
fi Conditional statement end
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/echo.1.html">echo(1)</A></STRONG>, <STRONG><A HREF="../man1/expr.1.html">expr(1)</A></STRONG>, <STRONG><A HREF="../man1/pwd.1.html">pwd(1)</A></STRONG>, <STRONG><A HREF="../man1/true.1.html">true(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>cat(1)</TITLE>
</HEAD>
<BODY>
<H1>cat(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cat - concatenate files and write them to stdout
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cat</STRONG> [<STRONG>-u</STRONG>] [<EM>file</EM>] ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-u</STRONG> Unbuffered output
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cat</STRONG> <STRONG>file</STRONG> # Display file on the terminal
<STRONG>cat</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> <STRONG>|</STRONG> <STRONG>lpr</STRONG>
# Concatenate 2 files and print result
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cat</EM> concatenates its input files and copies the result to <EM>stdout</EM>. If no
input file is named, or - is encountered as a file name, standard input
is used. Output is buffered in 512 byte blocks unless the <STRONG>-u</STRONG> flag is
given. If you just want to copy a file, <EM>cp</EM> should be used since it is
faster.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cp.1.html">cp(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,173 @@
<HTML>
<HEAD>
<TITLE>cc(1)</TITLE>
</HEAD>
<BODY>
<H1>cc(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cc - C compiler
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cc</STRONG> [<STRONG>-STOUfcimos</STRONG>] [<STRONG>-w[aos]</STRONG>] [<STRONG>-v[n]</STRONG>] [<STRONG>-D</STRONG><EM>name</EM>]* [<STRONG>-I</STRONG><EM>dir</EM>]* [<STRONG>-L</STRONG><EM>dir</EM>]* <EM>file</EM>+
[<STRONG>-l</STRONG><EM>name</EM>]*
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-D</STRONG> The flag <STRONG>-D</STRONG><EM>x</EM>[=<EM>y</EM>] defines a macro <EM>x</EM> with (optional) value <EM>y</EM>
<STRONG>-I</STRONG> <STRONG>-I</STRONG><EM>dir</EM> searches <EM>dir</EM> for include files
<STRONG>-L</STRONG> <STRONG>-L</STRONG><EM>dir</EM> searches <EM>dir</EM> for <STRONG>-l</STRONG><EM>name</EM> libraries
<STRONG>-O</STRONG> Optimize the code
<STRONG>-S</STRONG> Produce an assembly code file, then stop
<STRONG>-T</STRONG> The flag <STRONG>-T</STRONG><EM>dir</EM> tells <EM>cc</EM> and <EM>as</EM> to use <EM>dir</EM> for temporary files
<STRONG>-U</STRONG> Undefine a macro
<STRONG>-E</STRONG> Preprocess to standard output
<STRONG>-c</STRONG> Compile only. Do not link
<STRONG>-f</STRONG> Link with floating point emulation library
<STRONG>-i</STRONG> Use separate I &amp; D space (64K + 64K) ( only)
<STRONG>-l</STRONG> The flag <STRONG>-l</STRONG><EM>name</EM> causes the library lib<EM>name</EM>.a to be linked
<STRONG>-m</STRONG> Remove unnecessary prototypes after preprocessing ( only)
<STRONG>-o</STRONG> Put output on file named by next arg
<STRONG>-s</STRONG> Strip the symbol-table from executable file
<STRONG>-v</STRONG> Verbose; print pass names
<STRONG>-vn</STRONG> Verbose; print pass names but do not run them
<STRONG>-w</STRONG> Suppress warning messages
<STRONG>-ws</STRONG> Suppress strict messages
<STRONG>-wa</STRONG> Suppress all warning and strict messages
<STRONG>-wo</STRONG> Suppress messages about old-style
<STRONG>-.o</STRONG> Do not link the default run-time start-off
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cc</STRONG> <STRONG>-c</STRONG> <STRONG>file.c</STRONG> # Compile <EM>file</EM>.<EM>c</EM>
<STRONG>cc</STRONG> <STRONG>-DFOO</STRONG> <STRONG>file.c</STRONG> # Treat the symbol <EM>FOO</EM> as defined
<STRONG>cc</STRONG> <STRONG>-wo</STRONG> <STRONG>-o</STRONG> <STRONG>out</STRONG> <STRONG>file.c</STRONG>
# Compile old-style code; output to <EM>out</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
This is the C compiler. It has eight passes, as follows:
<STRONG>Program</STRONG> <STRONG>Input</STRONG> <STRONG>Output</STRONG> <STRONG>Operation</STRONG> <STRONG>performed</STRONG>
lib/ncpp prog.c prog.i C preprocessor: #include, #define, #ifdef
lib/irrel prog.i prog.i Removal of unnecessary prototypes
lib/ncem prog.i prog.k Parsing and semantic analysis
lib/nopt prog.k prog.m Optimization of the intermediate code
lib/ncg prog.m prog.s Code generation
bin/as prog.s prog.o Assembly
lib/ld prog.o prog.out Linking
lib/cv prog.out a.out Conversion to MINIX a.out format
In the 68000 versions of MINIX , the preprocessor is not called since the
front-end contains the preprocessor. This increases compilation speed.
The main program, <EM>cc</EM> , forks appropriately to call the passes,
transmitting flags and arguments. The <STRONG>-v</STRONG> flag causes the passes to be
listed as they are called, and the <STRONG>-vn</STRONG> flag causes the passes to be
listed but not called.
The libraries should be made with <EM>aal</EM> (which is the same as <EM>ar</EM> on the
68000 versions), and consist of .o files. The internal order of files
inside the library is unimportant, but the order in which the libraries
are specified is.
When <STRONG>-T</STRONG> is used, the intermediate files end up in the directory
specified. Otherwise, <STRONG>/tmp</STRONG> is used. When available memory is very
limited (e.g., a 512K machine), it may be necessary to run <EM>chmem</EM> to
reduce the sizes of the compiler passes that do not fit, typically <EM>ncem</EM> .
On the other hand, if the compiler (or, in fact, almost any program)
begins acting strange, it is almost always due to its running out of
space, either stack space or scratch file space. The relevant pass can
be given more stack space using <EM>chmem</EM> . More space for scratch files can
be obtained by removing other files on the device.
If the compiler runs out of memory, it may be necessary to use the <STRONG>-m</STRONG>
flag. This causes <EM>irrel</EM> to be run, which removes unnecessary prototypes
and thus frees up extra table space within the compiler. Beware,
however, that running this pass may cause strictly conforming programs to
become non-conforming and vice versa, so you should only run this pass as
a last resort.
The compiler is derived from the ACK system (Tanenbaum et al.,
<EM>Communications</EM> <EM>of</EM> <EM>the</EM> <EM>ACM</EM>, Sept. 1983), not from the AT&amp;T portable C
compiler. It has been shoehorned onto the PC with some loss of
performance.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/make.1.html">make(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,223 @@
<HTML>
<HEAD>
<TITLE>sh(1)</TITLE>
</HEAD>
<BODY>
<H1>sh(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sh, ., break, case, cd, continue, eval, exec, exit, export, for, if,
read, readonly, set, shift, trap, umask, wait, while - shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>sh</STRONG> [<STRONG>-eiknqstvxu</STRONG>] [<STRONG>-c</STRONG> <EM>str</EM>] <STRONG>[</STRONG><EM>file</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Execute the commands in <EM>str</EM>
<STRONG>-e</STRONG> Quit on error
<STRONG>-i</STRONG> Interactive mode; ignore QUIT, TERMINATE, INTERRUPT
<STRONG>-k</STRONG> Look for name=value everywhere on command line
<STRONG>-n</STRONG> Do not execute commands
<STRONG>-q</STRONG> Change qflag from sig_ign to sig_del
<STRONG>-s</STRONG> Read commands from standard input
<STRONG>-t</STRONG> Exit after reading and executing one command
<STRONG>-v</STRONG> Echo input lines as they are read
<STRONG>-x</STRONG> Trace
<STRONG>-u</STRONG> Unset variables
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>sh</STRONG> <STRONG>script</STRONG> # Run a shell script
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Sh</EM> is the shell, which forms the user's main interface with the system.
On startup, the shell reads /etc/profile and $HOME/.profile, if they
exist, and executes any commands they contain. The Minix shell has most
of the features of the V7 (Bourne) shell, including redirection of input
and output, pipes, magic characters, background processes, and shell
scripts. A brief summary follows, but whole books have been written on
shell programming alone.
Some of the more common notations are:
date # Regular command
sort &lt;file # Redirect <EM>stdin</EM> (standard input)
sort &lt;file1 &gt;file2 # Redirect <EM>stdin</EM> and <EM>stdout</EM>
cc file.c 2&gt;error # Redirect <EM>stderr</EM>
a.out &gt;f 2&gt;&amp;1 # Combine standard output and standard error
sort &lt;file1 &gt;&gt;file2 # Append output to <EM>file2</EM>
sort &lt;file1 &gt;file2 &amp; # Background job
(ls -l; a.out) &amp; # Run two background commands sequentially
sort &lt;file | wc # Two-process pipeline
sort &lt;f | uniq | wc # Three-process pipeline
ls -l *.c # List all files ending in .<EM>c</EM>
ls -l [<EM>a</EM>-<EM>c</EM>]* # List all files beginning with <EM>a</EM>, <EM>b</EM>, or <EM>c</EM>
ls -l ? # List all one-character file names
ls \? # List the file whose name is question mark
ls '???' # List the file whose name is three question
marks
v=/usr/ast # Set shell variable <EM>v</EM>
ls -l $v # Use shell variable <EM>v</EM>
PS1='Hi! ' # Change the primary prompt to <EM>Hi</EM>!
PS2='More: ' # Change the secondary prompt to <EM>More</EM>:
ls -l $HOME # List the home directory
echo $PATH # Echo the search path
echo $? # Echo exit status of previous command in
decimal
echo $$ # Echo shell's pid in decimal
echo $! # Echo PID of last background process
echo $# # Echo number of parameters (shell script)
echo $2 # Echo second parameter (shell script)
echo "$2" # Echo second parameter without expanding
spaces
echo $* # Echo all parameters (shell script)
echo $@ # Echo all parameters (shell script)
echo "$@" # Echo all parameters without expanding spaces
The shell uses the following variables for specific purposes:
SHELL the path of the current shell
HOME the default value for the <STRONG><A HREF="../man1/cd.1.html">cd(1)</A></STRONG> command
PATH the directories to be searched to find
commands
IFS the internal field separators for command
strings
PS1 the primary shell prompt
PS2 the secondary shell prompt
There are various forms of substitution on the shell command line:
`...` Command string between back-quotes is replaced
by its output
"..." Permits variable substitution between quotes
'...' Inhibits variable substitution between quotes
$VAR Replaced by contents of variable VAR
${VAR} Delimits variable VAR from any following
string
The expressions below depend on whether or not VAR has ever been set. If
VAR has been set, they give:
${VAR-str} Replace expression by VAR, else by str
${VAR=str} Replace expression by VAR, else by str and set
VAR to str
${VAR?str} Replace expression by VAR, else print str and
exit shell
${VAR+str} Replace expression by str, else by null string
If a colon is placed after VAR, the expressions depend on whether or not
VAR is currently set and non-null.
The shell has a number of built-in commands:
: return true status
. fn execute shell script fn on current path
break [n] break from a for, until or while loop; exit n
levels
continue [n] continue a for, until or while loop; resume
nth loop
cd [dir] change current working directory; move to
$HOME
eval cmd rescan cmd, performing substitutions
eval rescan the current command line
exec cmd execute cmd without creating a new process
exec &lt;|&gt; with no command name, modify shell I/O
exit [n] exit a shell program, with exit value n
export [var] export var to shell's children; list exported
variables
pwd print the name of the current working
directory
read var read a line from stdin and assign to var
readonly [var] make var readonly; list readonly variables
set -f set shell flag (+f unsets flag)
set str set positional parameter to str
set show the current shell variables
shift reassign positional parameters (except ${0})
one left
times print accumulated user and system times for
processes
trap arg sigs trap signals sigs and run arg on receipt
trap list trapped signals
umask [n] set the user file creation mask; show the
current umask
wait [n] wait for process pid n; wait for all processes
The shell also contains a programming language, which has the following
operators and flow control statements:
# Comment The rest of the line is ignored
= Assignment Set a shell variable
&amp;&amp; Logical AND Execute second command only if
first succeeds
|| Logical OR Execute second command only if
first fails
(...) Group Execute enclosed commands
before continuing
for For loop (for ... in ... do ... done)
case Case statement ((case ... ) ... ;; ... esac)
esac Case statement end
while While loop (while ... do ... done)
do Do/For/While loop start (do ... until ...)
done For/While loop end
if Conditional statement (if ... else ... elif
... fi)
in For loop selection
then Conditional statement start
else Conditional statement alternative
elif Conditional statement end
until Do loop end
fi Conditional statement end
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/echo.1.html">echo(1)</A></STRONG>, <STRONG><A HREF="../man1/expr.1.html">expr(1)</A></STRONG>, <STRONG><A HREF="../man1/pwd.1.html">pwd(1)</A></STRONG>, <STRONG><A HREF="../man1/true.1.html">true(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>cdiff(1)</TITLE>
</HEAD>
<BODY>
<H1>cdiff(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cdiff - context diff
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cdiff</STRONG> [<STRONG>-c</STRONG><EM>n</EM>] <EM>oldfile</EM> <EM>newfile</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Provide <EM>n</EM> lines of context
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cdiff</STRONG> <STRONG>old</STRONG> <STRONG>new</STRONG> <STRONG>&gt;f</STRONG> # Write context diff on <EM>f</EM>
<STRONG>cdiff</STRONG> <STRONG>-c1</STRONG> <STRONG>old</STRONG> <STRONG>new</STRONG> <STRONG>&gt;f</STRONG>
# Use only 1 line of context
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cdiff</EM> produces a context diff by first running <EM>diff</EM> and then adding
context. Some update programs, like <EM>patch</EM>, can use context diffs to
update files, even in the presence of other, independent changes.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cmp.1.html">cmp(1)</A></STRONG>, <STRONG><A HREF="../man1/diff.1.html">diff(1)</A></STRONG>, <STRONG><A HREF="../man1/patch.1.html">patch(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>cdplay(1)</TITLE>
</HEAD>
<BODY>
<H1>cdplay(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cdplay - play audio compact disks
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cdplay</STRONG> [ -<STRONG>a</STRONG>]|[-<STRONG>r</STRONG>]
</PRE>
<H2>DESCRIPTION</H2><PRE>
<STRONG>Cdplay</STRONG> is an audio-cdplayer it can be used interactively or non-
interactively. With no flags <STRONG>cdplay</STRONG> is used interactively. When used
interactively <STRONG>cdplay</STRONG> can be either in non-playing or playing mode. In
non-playing mode you can select tracks to be played. In playing mode
<STRONG>cdplay</STRONG> shows the track-time, remaining track-time, total-time and
remaining total-time. <STRONG>Cdplay</STRONG> assumes the drive to be at /<EM>dev</EM>/<EM>cd0</EM>.
During non-playing mode the following commands are available:
cursor-up/down
browse through the track-list
spacebar
add track to the play-list
backspace
remove a track from the play-list
s start playing the tracks in the play-list. When the play-list is
empty start playing from the current position in the track-list
until the end of the cd
p play the track on the current position in the track-list
r play all tracks in a random order (shuffle play)
e exit cdplay
During playing mode the following commands are available:
s stop playing, return to non-playing mode
spacebar
pause/resume current track
cursor-up/down
skip to next/previous track
</PRE>
<H2>OPTIONS</H2><PRE>
When one of these options is used <STRONG>cdplay</STRONG> does everything in the
background.
-a Play all tracks, <STRONG>cdplay</STRONG> tells the drive to play all tracks and then
it immediately returns to the user
-r Play all tracks in random order (shuffle play). <STRONG>Cdplay</STRONG> forks of a
new process which starts up a track, during that track it sleeps.
When the track is finished it wakes up to start the next track and
goes to sleep again. The parent process immediately returns to the
user.
</PRE>
<H2>BUGS</H2><PRE>
<STRONG>Cdplay</STRONG> does not sense if a cd has changed, so don't switch cd's. If you
want to play another cd you have to insert the new cd and start <STRONG>cdplay</STRONG>
again.
</PRE>
<H2>AUTHOR</H2><PRE>
Michel R. Prevenier (mrpreve@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>cgrep(1)</TITLE>
</HEAD>
<BODY>
<H1>cgrep(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cgrep - grep and display context
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cgrep</STRONG> [<STRONG>-a</STRONG> <EM>n</EM>] [<STRONG>-b</STRONG> <EM>n</EM>] [<STRONG>-f</STRONG>] [<STRONG>-l</STRONG> <EM>n</EM>] [<STRONG>-n</STRONG>] [<STRONG>-w</STRONG> <EM>n</EM>] <EM>pattern</EM> [<EM>file</EM>] ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> How many lines to display after the matching line
<STRONG>-b</STRONG> How many lines to display before the matching line
<STRONG>-f</STRONG> Suppress file name in the output
<STRONG>-l</STRONG> Lines are truncated to this length before comparison
<STRONG>-n</STRONG> Suppress line numbers in the output
<STRONG>-w</STRONG> Sets window size (same as <STRONG>-a</STRONG> n <STRONG>-b</STRONG> n)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cgrep</STRONG> <STRONG>-w</STRONG> <STRONG>3</STRONG> <STRONG>hello</STRONG> <STRONG>file1</STRONG>
# Print 3 lines of context each way
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cgrep</EM> is a program like <EM>grep</EM>, except that it also can print a few lines
above and/or below the matching lines. It also prints the line numbers
of the output.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/grep.1.html">grep(1)</A></STRONG>, <STRONG><A HREF="../man1/fgrep.1.html">fgrep(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>passwd(1)</TITLE>
</HEAD>
<BODY>
<H1>passwd(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
passwd, chfn, chsh - change a login password, full name or shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>passwd</STRONG> [<EM>user</EM>]
<STRONG>chfn</STRONG> [<EM>user</EM>] <EM>fullname</EM>
<STRONG>chfn</STRONG> [<EM>user</EM>] <EM>shell</EM>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>passwd</STRONG> # Change current user's password
<STRONG>passwd</STRONG> <STRONG>ast</STRONG> # Change ast's password (super-user only)
<STRONG>chsh</STRONG> <STRONG>/usr/bin/mail</STRONG> # For those who only read mail
<STRONG>chfn</STRONG> <STRONG>'Jane</STRONG> <STRONG>Doe'</STRONG> # Current user is Jane Doe
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Passwd</EM> is used to change your password. It prompts for the old and new
passwords. It asks for the new password twice, to reduce the effect of a
typing error. <EM>Chfn</EM> changes the full name (GECOS field) in the password
file. <EM>Chsh</EM> changes your login shell. Do not forget to copy the modified
password file back to the root file system, or the changes will be lost
when the system is rebooted.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/login.1.html">login(1)</A></STRONG>, <STRONG><A HREF="../man1/su.1.html">su(1)</A></STRONG>, <STRONG><A HREF="../man3/crypt.3.html">crypt(3)</A></STRONG>, <STRONG><A HREF="../man3/getpwent.3.html">getpwent(3)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>chgrp(1)</TITLE>
</HEAD>
<BODY>
<H1>chgrp(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
chgrp - change group
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>chgrp</STRONG> <STRONG>[-R</STRONG>] [<EM>owner</EM>:]<EM>group</EM> <EM>file</EM> ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-R</STRONG> Change directory hierarchies
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>chgrp</STRONG> <STRONG>system</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG>
# Make <EM>system</EM> the group of the files
<STRONG>chrgp</STRONG> <STRONG>-R</STRONG> <STRONG>other</STRONG> <STRONG>dir1</STRONG> # Make <EM>other</EM> the group of all files below dir1
</PRE>
<H2>DESCRIPTION</H2><PRE>
The group field (and optionally owner field) of the named files is
changed to <EM>group</EM> and <EM>owner</EM> . Alternatively, a decimal gid (uid) may be
specified instead of a group name. If the <STRONG>-R</STRONG> flag is used, the changes
will be applied recursively to all files in named directories. Only the
superuser may execute this command to set arbitrary groups. Normal users
can only change the group if they own the file, and the group is their
own group (Minix), or one of their supplementary groups (Minix-vmd).
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/chown.1.html">chown(1)</A></STRONG>, <STRONG><A HREF="../man1/chmod.1.html">chmod(1)</A></STRONG>, <STRONG><A HREF="../man1/ls.1.html">ls(1)</A></STRONG>, <STRONG><A HREF="../man2/chown.2.html">chown(2)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>chmem(1)</TITLE>
</HEAD>
<BODY>
<H1>chmem(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
chmem - change memory allocation
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>chmem</STRONG> [<STRONG>+</STRONG>] [<STRONG>-</STRONG>] [<STRONG>=</STRONG>] <EM>amount</EM> <EM>file</EM>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>chmem</STRONG> <STRONG>=50000</STRONG> <STRONG>a.out</STRONG> # Give <EM>a</EM>.<EM>out</EM> 50K of stack space
<STRONG>chmem</STRONG> <STRONG>-4000</STRONG> <STRONG>a.out</STRONG> # Reduce the stack space by 4000 bytes
<STRONG>chmem</STRONG> <STRONG>+1000</STRONG> <STRONG>file1</STRONG> # Increase each stack by 1000 bytes
</PRE>
<H2>DESCRIPTION</H2><PRE>
When a program is loaded into memory, it is allocated enough memory for
the text and data+bss segments, plus an area for the stack. Data segment
growth using <EM>malloc</EM> , <EM>brk</EM> , or <EM>sbrk</EM> eats up stack space from the low end.
The amount of stack space to allocate is derived from a field in the
executable program's file header. If the combined stack and data segment
growth exceeds the stack space allocated, the program will be terminated.
It is therefore important to set the amount of stack space carefully. If
too little is provided, the program may crash. If too much is provided,
memory will be wasted, and fewer programs will be able to fit in memory
and run simultaneously. MINIX does not swap, so that when memory is
full, subsequent attempts to fork will fail. The compiler sets the stack
space to the largest possible value (for the Intel CPUs, 64K - text -
data). For many programs, this value is far too large. Nonrecursive
programs that do not call <EM>brk</EM> , <EM>sbrk</EM> , or <EM>malloc</EM> , and do not have any
local arrays usually do not need more than 8K of stack space.
The <EM>chmem</EM> command changes the value of the header field that determines
the stack allocation, and thus indirectly the total memory required to
run the program. The = option sets the stack size to a specific value;
the + and - options increment and decrement the current value by the
indicated amount. The old and new stack sizes are printed.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/install.1.html">install(1)</A></STRONG>, <STRONG><A HREF="../man2/brk.2.html">brk(2)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>chmod(1)</TITLE>
</HEAD>
<BODY>
<H1>chmod(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
chmod - change access mode for files
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>chmod</STRONG> <STRONG>[-R</STRONG>] <EM>mode</EM> <EM>file</EM> ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-R</STRONG> Change hierarchies recursively
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>chmod</STRONG> <STRONG>755</STRONG> <STRONG>file</STRONG> # Owner: rwx Group: r-x Others: r-x
<STRONG>chmod</STRONG> <STRONG>+x</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG>
# Make <EM>file1</EM> and <EM>file2</EM> executable
<STRONG>chmod</STRONG> <STRONG>a-w</STRONG> <STRONG>file</STRONG> # Make <EM>file</EM> read only
<STRONG>chmod</STRONG> <STRONG>u+s</STRONG> <STRONG>file</STRONG> # Turn on SETUID for <EM>file</EM>
<STRONG>chmod</STRONG> <STRONG>-R</STRONG> <STRONG>o+w</STRONG> <STRONG>dir</STRONG> # Allow writing for all files in dir
</PRE>
<H2>DESCRIPTION</H2><PRE>
The given mode is applied to each file in the file list. If the <STRONG>-R</STRONG> flag
is present, the files in a directory will be changed as well. The mode
can be either absolute or symbolic. Absolute modes are given as an octal
number that represents the new file mode. The mode bits are defined as
follows:
4000 Set effective user id on execution to file's owner id
2000 Set effective group id on execution to file's group id
0400 file is readable by the owner of the file
0200 writeable by owner
0100 executable by owner
0070 same as above, for other users in the same group
0007 same as above, for all other users
Symbolic modes modify the current file mode in a specified way. The form
is:
[who] op permissions { op permissions ...} {, [who] op ... }
The possibilities for <EM>who</EM> are <EM>u</EM>, <EM>g</EM>, <EM>o</EM>, and <EM>a</EM>, standing for user, group,
other and all, respectively. If <EM>who</EM> is omitted, <EM>a</EM> is assumed, but the
current umask is used. The op can be +, -, or =; + turns on the given
permissions, - turns them off; = sets the permissions exclusively for the
given <EM>who</EM>. For example <EM>g</EM>=<EM>x</EM> sets the group permissions to --<EM>x</EM>.
The possible permissions are <EM>r</EM>, <EM>w</EM>, <EM>x</EM>; which stand for read, write, and
execute; <EM>s</EM> turns on the set effective user/group id bits. <EM>s</EM> only makes
sense with <EM>u</EM> and <EM>g</EM>; o+s is harmless.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/ls.1.html">ls(1)</A></STRONG>, <STRONG><A HREF="../man2/chmod.2.html">chmod(2)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>passwd(1)</TITLE>
</HEAD>
<BODY>
<H1>passwd(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
passwd, chfn, chsh - change a login password, full name or shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>passwd</STRONG> [<EM>user</EM>]
<STRONG>chfn</STRONG> [<EM>user</EM>] <EM>fullname</EM>
<STRONG>chfn</STRONG> [<EM>user</EM>] <EM>shell</EM>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>passwd</STRONG> # Change current user's password
<STRONG>passwd</STRONG> <STRONG>ast</STRONG> # Change ast's password (super-user only)
<STRONG>chsh</STRONG> <STRONG>/usr/bin/mail</STRONG> # For those who only read mail
<STRONG>chfn</STRONG> <STRONG>'Jane</STRONG> <STRONG>Doe'</STRONG> # Current user is Jane Doe
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Passwd</EM> is used to change your password. It prompts for the old and new
passwords. It asks for the new password twice, to reduce the effect of a
typing error. <EM>Chfn</EM> changes the full name (GECOS field) in the password
file. <EM>Chsh</EM> changes your login shell. Do not forget to copy the modified
password file back to the root file system, or the changes will be lost
when the system is rebooted.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/login.1.html">login(1)</A></STRONG>, <STRONG><A HREF="../man1/su.1.html">su(1)</A></STRONG>, <STRONG><A HREF="../man3/crypt.3.html">crypt(3)</A></STRONG>, <STRONG><A HREF="../man3/getpwent.3.html">getpwent(3)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>svc(1)</TITLE>
</HEAD>
<BODY>
<H1>svc(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
svc, ci, co, svclog - shell version control system
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ci</STRONG> [<STRONG>-lu</STRONG>] <EM>file</EM>
<STRONG>co</STRONG> [<STRONG>-l</STRONG>] [<STRONG>-r</STRONG> <EM>rev</EM>] <EM>file</EM>
<STRONG>svclog</STRONG> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-l</STRONG> For <EM>ci</EM>, checkin, checkout again, and lock file
<STRONG>-l</STRONG> For <EM>co</EM>, checkout file and then lock the archive
<STRONG>-u</STRONG> After checking in, do not delete the file
<STRONG>-r</STRONG> Check out revision <EM>rev</EM> instead most recent revision
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ci</STRONG> <STRONG>-u</STRONG> <STRONG>file</STRONG> # Check in <EM>file</EM>
<STRONG>co</STRONG> <STRONG>-l</STRONG> <STRONG>file</STRONG> # Check out <EM>file</EM> and lock archive
<STRONG>co</STRONG> <STRONG>-r</STRONG> <STRONG>2</STRONG> <STRONG>file</STRONG> # Check out version 2
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Svc</EM> is the Shell Version Control system, patterned on RCS. It maintains
a sequence of versions in archive files, so that new versions can be
checked in (added to the archive), and old versions can be checked out
(made available). To create an archive for <EM>file</EM>, check it in with the <STRONG>-u</STRONG>
flag. This action will prompt for a log message and then create an
archive called <EM>file</EM>,<EM>S</EM> in the current directory, or in the subdirectory
<EM>SVC</EM> if it exists. The file will not be deleted, but will be made
unwritable.
To update the file, check it out with the <STRONG>-l</STRONG> flag. Then modify it, and
check it back in, giving a new message when prompted. After this process
has been repeated many times, the archive will contain the entire
history. Any version can be checked out using the <STRONG>-r</STRONG> flag. To get a
printout of the history, use <EM>svclog</EM>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>cksum(1)</TITLE>
</HEAD>
<BODY>
<H1>cksum(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cksum - display file checksum and size
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cksum</STRONG> [<EM>file</EM> ...]
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cksum</STRONG> # Display CRC and size of <EM>stdin</EM>
<STRONG>cksum</STRONG> <STRONG>*.c</STRONG> # Display CRC and size of .<EM>c</EM> files
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cksum</EM> calculates and writes to standard output the 32-bits CRC of the
input <EM>files</EM> , or of stdin if no <EM>files</EM> were specified. The size in bytes
of each <EM>file</EM> will be displayed after a space. The name of each <EM>file</EM> will
be displayed after another space.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/crc.1.html">crc(1)</A></STRONG>, <STRONG><A HREF="../man1/sum.1.html">sum(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>ln(1)</TITLE>
</HEAD>
<BODY>
<H1>ln(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ln, clone - create a link to a file
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ln</STRONG> <STRONG>[-ifmrRvx</STRONG>] <EM>file</EM> [<EM>name</EM>]
<STRONG>ln</STRONG> <STRONG>[-ifrRvx</STRONG>] <EM>file</EM> ... <EM>dir</EM>
<STRONG>clone</STRONG> <STRONG>[-ifmvx</STRONG>] <EM>file</EM> [<EM>name</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-i</STRONG> Ask if ok to remove a file
<STRONG>-f</STRONG> Remove existing links
<STRONG>-m</STRONG> Merge trees, disable the into-a-directory trick
<STRONG>-rR</STRONG> Recursively link a directory tree
<STRONG>-v</STRONG> Display what ln is doing
<STRONG>-x</STRONG> Do not cross device boundaries
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ln</STRONG> <STRONG>file</STRONG> <STRONG>newname</STRONG> # Make <EM>newname</EM> a synonym for <EM>file</EM>
<STRONG>ln</STRONG> <STRONG>/usr/games/chess</STRONG> # Create a link called <EM>chess</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
A directory entry is created for <EM>name</EM> . The entry points to <EM>file</EM> .
Henceforth, <EM>name</EM> and <EM>file</EM> can be used interchangeably. If <EM>name</EM> is not
supplied, the last component of <EM>file</EM> is used as the link name. If more
than one <EM>file</EM> is supplied or the <EM>name</EM> refers to an existing directory,
links will be created in that directory. An existing <EM>name</EM> will not be
removed unless the <STRONG>-i</STRONG> or <STRONG>-f</STRONG> flag is specified.
<EM>Clone</EM> is a convenient synonym for <STRONG>ln</STRONG> <STRONG>-fmr</STRONG> to create a so-called "link
farm", a directory full of links to the original tree.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cp.1.html">cp(1)</A></STRONG>, <STRONG><A HREF="../man2/link.2.html">link(2)</A></STRONG>, <STRONG><A HREF="../man2/unlink.2.html">unlink(2)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,69 @@
<HTML>
<HEAD>
<TITLE>clr(1)</TITLE>
</HEAD>
<BODY>
<H1>clr(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
clr - clear the screen
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>clr</STRONG>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>clr</STRONG> # Clear the screen
</PRE>
<H2>DESCRIPTION</H2><PRE>
All text is removed from the screen, resulting in an empty screen with
the cursor positioned in the upper left-hand corner.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>cmp(1)</TITLE>
</HEAD>
<BODY>
<H1>cmp(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cmp - compare two files
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cmp</STRONG> [<STRONG>-ls</STRONG>] <EM>file1</EM> <EM>file2</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-l</STRONG> Loud mode. Print bytes that differ (in octal)
<STRONG>-s</STRONG> Silent mode. Print nothing, just return exit status
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cmp</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> # Tell whether the files are the same
<STRONG>cmp</STRONG> <STRONG>-l</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> # Print all corresponding bytes that differ
</PRE>
<H2>DESCRIPTION</H2><PRE>
Two files are compared. If they are identical, exit status 0 is
returned. If they differ, exit status 1 is returned. If the files
cannot be opened, exit status 2 is returned. If one of the file
arguments is -, then <EM>stdin</EM> is compared to the other file.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/comm.1.html">comm(1)</A></STRONG>, <STRONG><A HREF="../man1/diff.1.html">diff(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>svc(1)</TITLE>
</HEAD>
<BODY>
<H1>svc(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
svc, ci, co, svclog - shell version control system
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ci</STRONG> [<STRONG>-lu</STRONG>] <EM>file</EM>
<STRONG>co</STRONG> [<STRONG>-l</STRONG>] [<STRONG>-r</STRONG> <EM>rev</EM>] <EM>file</EM>
<STRONG>svclog</STRONG> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-l</STRONG> For <EM>ci</EM>, checkin, checkout again, and lock file
<STRONG>-l</STRONG> For <EM>co</EM>, checkout file and then lock the archive
<STRONG>-u</STRONG> After checking in, do not delete the file
<STRONG>-r</STRONG> Check out revision <EM>rev</EM> instead most recent revision
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ci</STRONG> <STRONG>-u</STRONG> <STRONG>file</STRONG> # Check in <EM>file</EM>
<STRONG>co</STRONG> <STRONG>-l</STRONG> <STRONG>file</STRONG> # Check out <EM>file</EM> and lock archive
<STRONG>co</STRONG> <STRONG>-r</STRONG> <STRONG>2</STRONG> <STRONG>file</STRONG> # Check out version 2
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Svc</EM> is the Shell Version Control system, patterned on RCS. It maintains
a sequence of versions in archive files, so that new versions can be
checked in (added to the archive), and old versions can be checked out
(made available). To create an archive for <EM>file</EM>, check it in with the <STRONG>-u</STRONG>
flag. This action will prompt for a log message and then create an
archive called <EM>file</EM>,<EM>S</EM> in the current directory, or in the subdirectory
<EM>SVC</EM> if it exists. The file will not be deleted, but will be made
unwritable.
To update the file, check it out with the <STRONG>-l</STRONG> flag. Then modify it, and
check it back in, giving a new message when prompted. After this process
has been repeated many times, the archive will contain the entire
history. Any version can be checked out using the <STRONG>-r</STRONG> flag. To get a
printout of the history, use <EM>svclog</EM>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,77 @@
<HTML>
<HEAD>
<TITLE>bsfilt(1)</TITLE>
</HEAD>
<BODY>
<H1>bsfilt(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
bsfilt, colcrt - a colcrt-like backspace filter
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>bsfilt</STRONG> [ <STRONG>-</STRONG> ] [ <STRONG>-U</STRONG> ] [ file ... ]
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Bsfilt</EM> filters backspace sequences from the input <EM>file</EM>(s) (standard input
if none) in an approximation of <STRONG><A HREF="../man1/colcrt.1.html">colcrt(1)</A></STRONG>. Both the backspace and the
character it returns to are removed, unless they form an underline
sequence. Underline sequences are treated according to the settings of
the <STRONG>-</STRONG> and <STRONG>-U</STRONG> options.
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-</STRONG> specifies that no underlining of any kind is to be propagated.
Without this option or the <STRONG>-U</STRONG> option, <EM>bsfilt</EM> approximates
underlining with minus signs (`-') in following lines.
<STRONG>-U</STRONG> specifies that underlining with underscore (`_') and backspace (`b')
character sequences is permitted.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cawf.1.html">cawf(1)</A></STRONG>, <STRONG><A HREF="../man1/colcrt.1.html">colcrt(1)</A></STRONG> and <STRONG><A HREF="../man1/nroff.1.html">nroff(1)</A></STRONG>.
</PRE>
<H2>DIAGNOSTICS</H2><PRE>
Diagnostic messages are delivered to the standard error file.
</PRE>
<H2>HISTORY</H2><PRE>
Vic Abell of Purdue University wrote <EM>bsfilt</EM> to have a backspace filter
for <STRONG><A HREF="../man1/cawf.1.html">cawf(1)</A></STRONG> that is independent of licensed source code.
</PRE>
<H2>BUGS</H2><PRE>
The maximum length of a line that can be underlined with minus signs is
fixed.
<EM>Bsfilt</EM> does not examine the characters that are being overprinted via
backspace operations. Thus, overprinting that is intended to form a new
character from several different ones is ineffective and only the last
character of the sequence is propagated - e. g., ``o^H+'', intended to
look like a bullet, is reduced to `+'.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>comm(1)</TITLE>
</HEAD>
<BODY>
<H1>comm(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
comm - print lines common to two sorted files
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>comm</STRONG> [<STRONG>-123</STRONG>] <EM>file1</EM> <EM>file2</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-1</STRONG> Suppress column 1 (lines present only in <EM>file1</EM>)
<STRONG>-2</STRONG> Suppress column 2 (lines present only in <EM>file2</EM>)
<STRONG>-3</STRONG> Suppress column 3 (lines present in both files)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>comm</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> # Print all three columns
<STRONG>comm</STRONG> <STRONG>-12</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG>
# Print only lines common to both files
</PRE>
<H2>DESCRIPTION</H2><PRE>
Two sorted files are read and compared. A three column listing is
produced. Files only in <EM>file1</EM> are in column 1; files only in <EM>file2</EM> are
in column 2; files common to both files are in column 3. The file name -
means <EM>stdin</EM>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cmp.1.html">cmp(1)</A></STRONG>, <STRONG><A HREF="../man1/diff.1.html">diff(1)</A></STRONG>, <STRONG><A HREF="../man1/sort.1.html">sort(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>compress(1)</TITLE>
</HEAD>
<BODY>
<H1>compress(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
compress, uncompress, zcat - compress a file using modified Lempel-Ziv
coding
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>compress</STRONG> [<STRONG>-cdfv</STRONG>] [<EM>file</EM>] ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Put output on <EM>stdout</EM> instead of on <EM>file</EM>.<EM>Z</EM>
<STRONG>-d</STRONG> Decompress instead of compress
<STRONG>-f</STRONG> Force output even if there is no saving
<STRONG>-v</STRONG> Verbose mode
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>compress</STRONG> <STRONG>&lt;infile</STRONG> <STRONG>&gt;outfile</STRONG>
# Compress 1 file
<STRONG>compress</STRONG> <STRONG>x</STRONG> <STRONG>y</STRONG> <STRONG>z</STRONG> # Compress 3 files to <EM>x</EM>.<EM>Z</EM>, <EM>y</EM>.<EM>Z</EM>, and <EM>z</EM>.<EM>Z</EM>
<STRONG>compress</STRONG> <STRONG>-d</STRONG> <STRONG>file.Z</STRONG> # Decompress <EM>file</EM>.<EM>Z</EM> to <EM>file</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
The listed files (or <EM>stdin</EM>, if none are given) are compressed using the
Ziv-Lempel algorithm. If the output is smaller than the input, the
output is put on <EM>file</EM>.<EM>Z</EM> or <EM>stdout</EM> if no files are listed. If <EM>compress</EM> is
linked to <EM>uncompress</EM>, the latter is the same as giving the <STRONG>-d</STRONG> flag.
Similarly, a link to <EM>zcat</EM> decompresses to <EM>stdout</EM>. The MINIX version of
<EM>compress</EM> uses 13-bit compression. This means that when compressing files
on other systems for transmission to MINIX, be sure that only 13-bit
compression is used. On many systems, the default is 16-bit (too big).
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/tar.1.html">tar(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,223 @@
<HTML>
<HEAD>
<TITLE>sh(1)</TITLE>
</HEAD>
<BODY>
<H1>sh(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sh, ., break, case, cd, continue, eval, exec, exit, export, for, if,
read, readonly, set, shift, trap, umask, wait, while - shell
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>sh</STRONG> [<STRONG>-eiknqstvxu</STRONG>] [<STRONG>-c</STRONG> <EM>str</EM>] <STRONG>[</STRONG><EM>file</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-c</STRONG> Execute the commands in <EM>str</EM>
<STRONG>-e</STRONG> Quit on error
<STRONG>-i</STRONG> Interactive mode; ignore QUIT, TERMINATE, INTERRUPT
<STRONG>-k</STRONG> Look for name=value everywhere on command line
<STRONG>-n</STRONG> Do not execute commands
<STRONG>-q</STRONG> Change qflag from sig_ign to sig_del
<STRONG>-s</STRONG> Read commands from standard input
<STRONG>-t</STRONG> Exit after reading and executing one command
<STRONG>-v</STRONG> Echo input lines as they are read
<STRONG>-x</STRONG> Trace
<STRONG>-u</STRONG> Unset variables
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>sh</STRONG> <STRONG>script</STRONG> # Run a shell script
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Sh</EM> is the shell, which forms the user's main interface with the system.
On startup, the shell reads /etc/profile and $HOME/.profile, if they
exist, and executes any commands they contain. The Minix shell has most
of the features of the V7 (Bourne) shell, including redirection of input
and output, pipes, magic characters, background processes, and shell
scripts. A brief summary follows, but whole books have been written on
shell programming alone.
Some of the more common notations are:
date # Regular command
sort &lt;file # Redirect <EM>stdin</EM> (standard input)
sort &lt;file1 &gt;file2 # Redirect <EM>stdin</EM> and <EM>stdout</EM>
cc file.c 2&gt;error # Redirect <EM>stderr</EM>
a.out &gt;f 2&gt;&amp;1 # Combine standard output and standard error
sort &lt;file1 &gt;&gt;file2 # Append output to <EM>file2</EM>
sort &lt;file1 &gt;file2 &amp; # Background job
(ls -l; a.out) &amp; # Run two background commands sequentially
sort &lt;file | wc # Two-process pipeline
sort &lt;f | uniq | wc # Three-process pipeline
ls -l *.c # List all files ending in .<EM>c</EM>
ls -l [<EM>a</EM>-<EM>c</EM>]* # List all files beginning with <EM>a</EM>, <EM>b</EM>, or <EM>c</EM>
ls -l ? # List all one-character file names
ls \? # List the file whose name is question mark
ls '???' # List the file whose name is three question
marks
v=/usr/ast # Set shell variable <EM>v</EM>
ls -l $v # Use shell variable <EM>v</EM>
PS1='Hi! ' # Change the primary prompt to <EM>Hi</EM>!
PS2='More: ' # Change the secondary prompt to <EM>More</EM>:
ls -l $HOME # List the home directory
echo $PATH # Echo the search path
echo $? # Echo exit status of previous command in
decimal
echo $$ # Echo shell's pid in decimal
echo $! # Echo PID of last background process
echo $# # Echo number of parameters (shell script)
echo $2 # Echo second parameter (shell script)
echo "$2" # Echo second parameter without expanding
spaces
echo $* # Echo all parameters (shell script)
echo $@ # Echo all parameters (shell script)
echo "$@" # Echo all parameters without expanding spaces
The shell uses the following variables for specific purposes:
SHELL the path of the current shell
HOME the default value for the <STRONG><A HREF="../man1/cd.1.html">cd(1)</A></STRONG> command
PATH the directories to be searched to find
commands
IFS the internal field separators for command
strings
PS1 the primary shell prompt
PS2 the secondary shell prompt
There are various forms of substitution on the shell command line:
`...` Command string between back-quotes is replaced
by its output
"..." Permits variable substitution between quotes
'...' Inhibits variable substitution between quotes
$VAR Replaced by contents of variable VAR
${VAR} Delimits variable VAR from any following
string
The expressions below depend on whether or not VAR has ever been set. If
VAR has been set, they give:
${VAR-str} Replace expression by VAR, else by str
${VAR=str} Replace expression by VAR, else by str and set
VAR to str
${VAR?str} Replace expression by VAR, else print str and
exit shell
${VAR+str} Replace expression by str, else by null string
If a colon is placed after VAR, the expressions depend on whether or not
VAR is currently set and non-null.
The shell has a number of built-in commands:
: return true status
. fn execute shell script fn on current path
break [n] break from a for, until or while loop; exit n
levels
continue [n] continue a for, until or while loop; resume
nth loop
cd [dir] change current working directory; move to
$HOME
eval cmd rescan cmd, performing substitutions
eval rescan the current command line
exec cmd execute cmd without creating a new process
exec &lt;|&gt; with no command name, modify shell I/O
exit [n] exit a shell program, with exit value n
export [var] export var to shell's children; list exported
variables
pwd print the name of the current working
directory
read var read a line from stdin and assign to var
readonly [var] make var readonly; list readonly variables
set -f set shell flag (+f unsets flag)
set str set positional parameter to str
set show the current shell variables
shift reassign positional parameters (except ${0})
one left
times print accumulated user and system times for
processes
trap arg sigs trap signals sigs and run arg on receipt
trap list trapped signals
umask [n] set the user file creation mask; show the
current umask
wait [n] wait for process pid n; wait for all processes
The shell also contains a programming language, which has the following
operators and flow control statements:
# Comment The rest of the line is ignored
= Assignment Set a shell variable
&amp;&amp; Logical AND Execute second command only if
first succeeds
|| Logical OR Execute second command only if
first fails
(...) Group Execute enclosed commands
before continuing
for For loop (for ... in ... do ... done)
case Case statement ((case ... ) ... ;; ... esac)
esac Case statement end
while While loop (while ... do ... done)
do Do/For/While loop start (do ... until ...)
done For/While loop end
if Conditional statement (if ... else ... elif
... fi)
in For loop selection
then Conditional statement start
else Conditional statement alternative
elif Conditional statement end
until Do loop end
fi Conditional statement end
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/echo.1.html">echo(1)</A></STRONG>, <STRONG><A HREF="../man1/expr.1.html">expr(1)</A></STRONG>, <STRONG><A HREF="../man1/pwd.1.html">pwd(1)</A></STRONG>, <STRONG><A HREF="../man1/true.1.html">true(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>cp(1)</TITLE>
</HEAD>
<BODY>
<H1>cp(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cp, cpdir - file copy
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cp</STRONG> <STRONG>[-pifsmrRvx</STRONG>] <EM>file1</EM> <EM>file2</EM>
<STRONG>cp</STRONG> <STRONG>[-pifsrRvx</STRONG>] <EM>file</EM> ... <EM>directory</EM>
<STRONG>cpdir</STRONG> <STRONG>[-ifvx</STRONG>] <EM>file1</EM> <EM>file2</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-p</STRONG> Preserve full mode, uid, gid and times
<STRONG>-i</STRONG> Ask before removing existing file
<STRONG>-f</STRONG> Forced remove existing file
<STRONG>-s</STRONG> Make similar, copy some attributes
<STRONG>-m</STRONG> Merge trees, disable the into-a-directory trick
<STRONG>-r</STRONG> Copy directory trees with link structure, etc. intact
<STRONG>-R</STRONG> Copy directory trees and treat special files as ordinary
<STRONG>-v</STRONG> Display what cp is doing
<STRONG>-x</STRONG> Do not cross device boundaries
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cp</STRONG> <STRONG>oldfile</STRONG> <STRONG>newfile</STRONG> # Copy <EM>oldfile</EM> to <EM>newfile</EM>
<STRONG>cp</STRONG> <STRONG>-R</STRONG> <STRONG>dir1</STRONG> <STRONG>dir2</STRONG> # Copy a directory tree
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cp</EM> copies one file to another, or copies one or more files to a
directory. Special files are normally opened and read, unless <STRONG>-r</STRONG> is
used. <STRONG>-r</STRONG> also copies the link structure, something <STRONG>-R</STRONG> doesn't care
about. The <STRONG>-s</STRONG> option differs from <STRONG>-p</STRONG> that it only copies the times if
the target file already exists. A normal copy only copies the mode of
the file, with the file creation mask applied. Set-uid bits are cleared
if the owner cannot be set. (The <STRONG>-s</STRONG> flag does not patronize you by
clearing bits. Alas <STRONG>-s</STRONG> and <STRONG>-r</STRONG> are nonstandard.)
<EM>Cpdir</EM> is a convenient synonym for <STRONG>cp</STRONG> <STRONG>-psmr</STRONG> to make a precise copy of a
directory tree.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cat.1.html">cat(1)</A></STRONG>, <STRONG><A HREF="../man1/mkdir.1.html">mkdir(1)</A></STRONG>, <STRONG><A HREF="../man1/rmdir.1.html">rmdir(1)</A></STRONG>, <STRONG><A HREF="../man1/ln.1.html">ln(1)</A></STRONG>, <STRONG><A HREF="../man1/rm.1.html">rm(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>cp(1)</TITLE>
</HEAD>
<BODY>
<H1>cp(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cp, cpdir - file copy
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cp</STRONG> <STRONG>[-pifsmrRvx</STRONG>] <EM>file1</EM> <EM>file2</EM>
<STRONG>cp</STRONG> <STRONG>[-pifsrRvx</STRONG>] <EM>file</EM> ... <EM>directory</EM>
<STRONG>cpdir</STRONG> <STRONG>[-ifvx</STRONG>] <EM>file1</EM> <EM>file2</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-p</STRONG> Preserve full mode, uid, gid and times
<STRONG>-i</STRONG> Ask before removing existing file
<STRONG>-f</STRONG> Forced remove existing file
<STRONG>-s</STRONG> Make similar, copy some attributes
<STRONG>-m</STRONG> Merge trees, disable the into-a-directory trick
<STRONG>-r</STRONG> Copy directory trees with link structure, etc. intact
<STRONG>-R</STRONG> Copy directory trees and treat special files as ordinary
<STRONG>-v</STRONG> Display what cp is doing
<STRONG>-x</STRONG> Do not cross device boundaries
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cp</STRONG> <STRONG>oldfile</STRONG> <STRONG>newfile</STRONG> # Copy <EM>oldfile</EM> to <EM>newfile</EM>
<STRONG>cp</STRONG> <STRONG>-R</STRONG> <STRONG>dir1</STRONG> <STRONG>dir2</STRONG> # Copy a directory tree
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Cp</EM> copies one file to another, or copies one or more files to a
directory. Special files are normally opened and read, unless <STRONG>-r</STRONG> is
used. <STRONG>-r</STRONG> also copies the link structure, something <STRONG>-R</STRONG> doesn't care
about. The <STRONG>-s</STRONG> option differs from <STRONG>-p</STRONG> that it only copies the times if
the target file already exists. A normal copy only copies the mode of
the file, with the file creation mask applied. Set-uid bits are cleared
if the owner cannot be set. (The <STRONG>-s</STRONG> flag does not patronize you by
clearing bits. Alas <STRONG>-s</STRONG> and <STRONG>-r</STRONG> are nonstandard.)
<EM>Cpdir</EM> is a convenient synonym for <STRONG>cp</STRONG> <STRONG>-psmr</STRONG> to make a precise copy of a
directory tree.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cat.1.html">cat(1)</A></STRONG>, <STRONG><A HREF="../man1/mkdir.1.html">mkdir(1)</A></STRONG>, <STRONG><A HREF="../man1/rmdir.1.html">rmdir(1)</A></STRONG>, <STRONG><A HREF="../man1/ln.1.html">ln(1)</A></STRONG>, <STRONG><A HREF="../man1/rm.1.html">rm(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>crc(1)</TITLE>
</HEAD>
<BODY>
<H1>crc(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
crc - print the checksum of the file data
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>crc</STRONG> <EM>file</EM> ...
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>crc</STRONG> <STRONG>*.c</STRONG> # Print checksums of all the C programs
</PRE>
<H2>DESCRIPTION</H2><PRE>
The checksum of each argument is computed and printed, along with the
file length and its name, one file per line. This program is useful for
seeing if a file transmitted to another machine has arrived correctly.
It is conceptually similar to <EM>sum</EM>, except that it uses a stronger
checksum algorithm and also prints the length.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cksum.1.html">cksum(1)</A></STRONG>, <STRONG><A HREF="../man1/sum.1.html">sum(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,127 @@
<HTML>
<HEAD>
<TITLE>ctags(1)</TITLE>
</HEAD>
<BODY>
<H1>ctags(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ctags - Generates "tags" and (optionally) "refs" files
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ctags</STRONG> [-<STRONG>stvra</STRONG>] <EM>filesnames</EM>...
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>ctags</EM> generates the "tags" and "refs" files from a group of C source
files. The "tags" file is used by Elvis' ":tag" command, control-]
command, and -t option. The "refs" file is sometimes used by the <STRONG><A HREF="../man1/ref.1.html">ref(1)</A></STRONG>
program.
Each C source file is scanned for #define statements and global function
definitions. The name of the macro or function becomes the name of a
tag. For each tag, a line is added to the "tags" file which contains:
- the name of the tag
- a tab character
- the name of the file containing the tag
- a tab character
- a way to find the particular line within the file.
The filenames list will typically be the names of all C source files in
the current directory, like this:
$ ctags -stv *.[ch]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-t</STRONG> Include typedefs. A tag will be generated for each user-defined
type. Also tags will be generated for struct and enum names. Types
are considered to be global if they are defined in a header file,
and static if they are defined in a C source file.
<STRONG>-v</STRONG> Include variable declarations. A tag will be generated for each
variable, except for those that are declared inside the body of a
function.
<STRONG>-s</STRONG> Include static tags. <EM>Ctags</EM> will normally put global tags in the
"tags" file, and silently ignore the static tags. This flag causes
both global and static tags to be added. The name of a static tag
is generated by prefixing the name of the declared item with the
name of the file where it is defined, with a colon in between. For
example, "static foo(){}" in "bar.c" results in a tag named
"bar.c:foo".
<STRONG>-r</STRONG> This causes <EM>ctags</EM> to generate both "tags" and "refs". Without <STRONG>-r</STRONG>,
it would only generate "tags".
<STRONG>-a</STRONG> Append to "tags", and maybe "refs". Normally, <EM>ctags</EM> overwrites
these files each time it is invoked. This flag is useful when you
have to many files in the current directory for you to list them on
a single command-line; it allows you to split the arguments among
several invocations.
</PRE>
<H2>FILES</H2><PRE>
tags A cross-reference that lists each tag name, the name of the source
file that contains it, and a way to locate a particular line in the
source file.
refs The "refs" file contains the definitions for each tag in the "tags"
file, and very little else. This file can be useful, for example,
when licensing restrictions prevent you from making the source code
to the standard C library readable by everybody, but you still
everybody to know what arguments the library functions need.
</PRE>
<H2>BUGS</H2><PRE>
<EM>ctags</EM> is sensitive to indenting and line breaks. Consequently, it might
not discover all of the tags in a file that is formatted in an unusual
way.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/elvis.1.html">elvis(1)</A></STRONG>, <STRONG><A HREF="../man1/refs.1.html">refs(1)</A></STRONG>
</PRE>
<H2>AUTHOR</H2><PRE>
Steve Kirkendall
kirkenda@cs.pdx.edu
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>cut(1)</TITLE>
</HEAD>
<BODY>
<H1>cut(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
cut - select out columns of a file
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>cut</STRONG> <STRONG>[</STRONG> <STRONG>-b</STRONG> | <STRONG>-c</STRONG>] <EM>list</EM> [<EM>file</EM>...]
<STRONG>cut</STRONG> <STRONG>-f</STRONG> <EM>list</EM> [<STRONG>-d</STRONG> <EM>delim</EM>] [ <STRONG>-s</STRONG>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-b</STRONG> Cut specified bytes
<STRONG>-c</STRONG> Select out specific characters
<STRONG>-d</STRONG> Change the column delimiter to <EM>delim</EM>
<STRONG>-f</STRONG> Select out specific fields that are separated by the
<STRONG>-i</STRONG> Runs of delimiters count as one
<STRONG>-s</STRONG> Suppres lines with no delimiter characters, when used
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>cut</STRONG> <STRONG>-f</STRONG> <STRONG>2</STRONG> <STRONG>file</STRONG> # Extract field 2
<STRONG>cut</STRONG> <STRONG>-c</STRONG> <STRONG>1-2,5</STRONG> <STRONG>file</STRONG> # Extract character columns 1, 2, and 5
<STRONG>cut</STRONG> <STRONG>-c</STRONG> <STRONG>1-5,7-</STRONG> <STRONG>file</STRONG> # Extract all columns except 6
</PRE>
<H2>DESCRIPTION</H2><PRE>
[<EM>file</EM>...]" delimiter character ( see <EM>delim</EM>)" with the -f option. Lines
with no delimiters are passwd through untouched"
<EM>Cut</EM> extracts one or more fields or columns from a file and writes them on
standard output. If the <STRONG>-f</STRONG> flag is used, the fields are separated by a
delimiter character, normally a tab, but can be changed using the <STRONG>-d</STRONG>
flag. If the <STRONG>-c</STRONG> flag is used, specific columns can be specified. The
list can be comma or BLANK separated. The <STRONG>-f</STRONG> and <STRONG>-c</STRONG> flags are mutually
exclusive. Note: The POSIX1003.2 standard requires the option -b to cut
out specific bytes in a file. It is intended for systems with multi byte
characters (e.g. kanji), since MINIX uses only one byte characters, this
option is equivalent to -c. For the same reason, the option -n has no
effect and is not listed in this manual page.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/sed.1.html">sed(1)</A></STRONG>, <STRONG><A HREF="../man9/awk.9.html">awk(9)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>date(1)</TITLE>
</HEAD>
<BODY>
<H1>date(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
date - print or set the date and time
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>date</STRONG> <STRONG>[-qsu</STRONG>] [[<EM>MMDDYY</EM>]<EM>hhmm</EM>[<EM>ss</EM>]] [+<EM>format</EM>]
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-q</STRONG> Read the date from <EM>stdin</EM>
<STRONG>-s</STRONG> Set the time (implicit for <STRONG>-q</STRONG> or a date string)
<STRONG>-u</STRONG> Print the date as GMT
<STRONG>-t</STRONG> Use this number of seconds instead of current time
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>date</STRONG> # Print the date and time
<STRONG>date</STRONG> <STRONG>0221921610</STRONG> # Set date to Feb 21, 1992 at 4:10 p.m.
</PRE>
<H2>DESCRIPTION</H2><PRE>
With the <STRONG>-q</STRONG> flag or a numeric argument, <EM>date</EM> sets the GMT time and date.
<EM>MMDDYY</EM> refers to the month, day, and year; <EM>hhmmss</EM> refers to the hour,
minute and second. Each of the six fields must be exactly two digits, no
more and no less. <EM>date</EM> always display the date and time, with the
default format for the system. The <STRONG>-u</STRONG> flag request GMT time instead of
local time. A format may be specified with a + followed by a printf-like
string with the following options:
%% % character
%A Name of the day
%B Name of the month
%D mm/dd/yy
%H Decimal hour on 2 digits
%I Decimal hour modulo 12 on 2 digits
%M Decimal minute on 2 digits
%S Decimal seconds on 2 digits
%T HH:MM:SS
%U Decimal week number, Sunday being first day of week
%W Decimal week number, Monday being first day of week
%X Same as %T
%Y Decimal year on 4 digits
%Z Time Zone (if any)
%a Abbreviated name of the day
%b Abbreviated name of the month
%c Appropriate date &amp; time (default format)
%d Decimal day of the month on 2 digits
%e Same as %d, but a space replaces leading 0
%h Same as %b
%j Decimal dey of the year on 3 digits
%m Decimal month on 2 digits
%n Newline character
%p AM or PM
%r 12-hour clock time with AM/PM
%s Number of seconds since the epoch
%t Tab character
%w Decimal day of the week (0=Sunday)
%x Same as %D
%y Decimal year on 2 digits
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man2/time.2.html">time(2)</A></STRONG>, <STRONG><A HREF="../man3/ctime.3.html">ctime(3)</A></STRONG>, <STRONG><A HREF="../man8/readclock.8.html">readclock(8)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>dd(1)</TITLE>
</HEAD>
<BODY>
<H1>dd(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
dd - disk dumper
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>dd</STRONG> [<EM>option</EM> = <EM>value</EM>] ...
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>dd</STRONG> <STRONG>if=/dev/fd0</STRONG> <STRONG>of=/dev/fd1</STRONG>
# Copy disk 0 to disk 1
<STRONG>dd</STRONG> <STRONG>if=x</STRONG> <STRONG>of=y</STRONG> <STRONG>bs=1w</STRONG> <STRONG>skip=4</STRONG>
# Copy <EM>x</EM> to <EM>y</EM>, skipping 4 words
<STRONG>dd</STRONG> <STRONG>if=x</STRONG> <STRONG>of=y</STRONG> <STRONG>count=3</STRONG>
# Copy three 512-byte blocks
</PRE>
<H2>DESCRIPTION</H2><PRE>
This command is intended for copying partial files. The block size, skip
count, and number of blocks to copy can be specified. The options are:
<STRONG>if</STRONG> = file - Input file (default is <EM>stdin</EM>)
<STRONG>of</STRONG> = file - Output file (default is standard output)
<STRONG>ibs</STRONG> = n - Input block size (default 512 bytes)
<STRONG>obs</STRONG> = n - Output block size (default is 512 bytes)
<STRONG>bs</STRONG> = n - Block size; sets <EM>ibs</EM> and <EM>obs</EM> (default is 512 bytes)
<STRONG>skip</STRONG> = n - Skip <EM>n</EM> input blocks before reading
<STRONG>seek</STRONG> = n - Skip <EM>n</EM> output blocks before writing
<STRONG>count</STRONG> = n - Copy only <EM>n</EM> input blocks
<STRONG>conv</STRONG> <STRONG>=</STRONG> <STRONG>lcase</STRONG> - Convert upper case letters to lower case
<STRONG>conv</STRONG> <STRONG>=</STRONG> <STRONG>ucase</STRONG> - Convert lower case letters to upper case
<STRONG>conv</STRONG> <STRONG>=</STRONG> <STRONG>swab</STRONG> - Swap every pair of bytes
<STRONG>conv</STRONG> <STRONG>=</STRONG> <STRONG>noerror</STRONG> - Ignore errors and just keep going
<STRONG>conv</STRONG> <STRONG>=</STRONG> <STRONG>silent</STRONG> - Suppress statistics (Minix specific flag)
Where sizes are expected, they are in bytes. However, the letters <STRONG>w</STRONG>, <STRONG>b</STRONG>,
or <STRONG>k</STRONG> may be appended to the number to indicate words (2 bytes), blocks
(512 bytes), or K (1024 bytes), respectively. When <EM>dd</EM> is finished, it
reports the number of full and partial blocks read and written.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/vol.1.html">vol(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>df(1)</TITLE>
</HEAD>
<BODY>
<H1>df(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
df - report on free disk space and i-nodes
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>df</STRONG> <EM>special</EM> ...
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>df</STRONG> <STRONG>/dev/ram</STRONG> # Report on free RAM disk space
<STRONG>df</STRONG> <STRONG>/dev/fd0</STRONG> <STRONG>/dev/fd1</STRONG>
# Report on diskette space
<STRONG>df</STRONG> # Report on all mounted devices
</PRE>
<H2>DESCRIPTION</H2><PRE>
The amount of disk space and number of i-nodes, both free and used is
reported. If no argument is given, <EM>df</EM> reports on the root device and all
mounted file systems.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/du.1.html">du(1)</A></STRONG>, <STRONG><A HREF="../man5/fstab.5.html">fstab(5)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,69 @@
<HTML>
<HEAD>
<TITLE>dhrystone(1)</TITLE>
</HEAD>
<BODY>
<H1>dhrystone(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
dhrystone - integer benchmark
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>dhrystone</STRONG>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>dhrystone</STRONG> # Run the dhrystone benchmark
</PRE>
<H2>DESCRIPTION</H2><PRE>
Many years ago, a floating-point benchmark called <EM>whetstone</EM> was popular
for benchmarking FORTRAN programs. Nowadays, an integer benchmark called
<EM>dhrystone</EM> is widely used for benchmarking UNIX systems. This is it. Be
warned, however, that <EM>dhrystone</EM> is entirely CPU bound, and goes
blindingly fast on machines with high-speed caches. Although this is a
good measure for programs that spend most of their time in some inner
loop, it is a poor benchmark for I/O bound applications.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>diff(1)</TITLE>
</HEAD>
<BODY>
<H1>diff(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
diff - print differences between two files
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>diff</STRONG> [<STRONG>-c</STRONG> | <STRONG>-e</STRONG> | <STRONG>-C</STRONG> <EM>n</EM>] [<STRONG>-br</STRONG>]<EM>file1</EM> <EM>file2</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-C</STRONG> <EM>n</EM> Produce output that contains <EM>n</EM> lines of context
<STRONG>-b</STRONG> Ignore white space when comparing
<STRONG>-c</STRONG> Produce output that contains three lines of context
<STRONG>-e</STRONG> Produce an <EM>ed</EM>-script to convert <EM>file1</EM> into <EM>file2</EM>
<STRONG>-r</STRONG> Apply <EM>diff</EM> recursively to files and directories of
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>diff</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> # Print differences between 2 files
<STRONG>diff</STRONG> <STRONG>-C</STRONG> <STRONG>0</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG>
# Same as above
<STRONG>diff</STRONG> <STRONG>-C</STRONG> <STRONG>3</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG>
# Output three lines of context with every
<STRONG>diff</STRONG> <STRONG>-c</STRONG> <STRONG>file1</STRONG> <STRONG>file2</STRONG> # Same
<STRONG>diff</STRONG> <STRONG>/etc</STRONG> <STRONG>/dev</STRONG> # Compares recursively the directories /<EM>etc</EM> and /<EM>dev</EM>
<STRONG>diff</STRONG> <STRONG>passwd</STRONG> <STRONG>/etc</STRONG> # Compares ./<EM>passwd</EM> to /<EM>etc</EM>/<EM>passwd</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
the same name, when <EM>file1</EM> and <EM>file2</EM> are both directories" difference
encountered"
<EM>Diff</EM> compares two files and generates a list of lines telling how the two
files differ. Lines may not be longer than 128 characters. If the two
arguments on the command line are both directories, <EM>diff</EM> recursively
steps through all subdirectories comparing files of the same name. If a
file name is found only in one directory, a diagnostic message is written
to <EM>stdout</EM>. A file that is of either block special, character special or
FIFO special type, cannot be compared to any other file. On the other
hand, if there is one directory and one file given on the command line,
<EM>diff</EM> tries to compare the file with the same name as <EM>file</EM> in the
directory <EM>directory</EM>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/cdiff.1.html">cdiff(1)</A></STRONG>, <STRONG><A HREF="../man1/cmp.1.html">cmp(1)</A></STRONG>, <STRONG><A HREF="../man1/comm.1.html">comm(1)</A></STRONG>, <STRONG><A HREF="../man1/patch.1.html">patch(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>basename(1)</TITLE>
</HEAD>
<BODY>
<H1>basename(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
basename, dirname - strip off file prefixes and suffixes
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>basename</STRONG> <EM>file</EM> [<EM>suffix</EM>]
<STRONG>dirname</STRONG> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
(none)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>basename</STRONG> <STRONG>/user/ast/file.c</STRONG>
# Strips path to yield <EM>file</EM>.<EM>c</EM>
<STRONG>basename</STRONG> <STRONG>/user/file.c</STRONG> <STRONG>.c</STRONG>
# Strips path and .<EM>c</EM> to yield <EM>file</EM>
<STRONG>dirname</STRONG> <STRONG>/user/file.c</STRONG>
# Strips basename to yield /<EM>user</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Basename</EM> removes the initial directory names (if any) yielding the name
of the file itself. If a second argument is present, it is interpreted
as a suffix and is also stripped, if present.
<EM>Dirname</EM> removes the final component of a path, yielding the directory a
file is in.
These programs are primarily used in shell scripts.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>diskcheck(1)</TITLE>
</HEAD>
<BODY>
<H1>diskcheck(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
diskcheck - check a disk for bad sectors
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>diskcheck</STRONG> <EM>device</EM> <EM>start</EM> <EM>count</EM>
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>diskcheck</STRONG> <STRONG>/dev/at0</STRONG> <STRONG>0</STRONG> <STRONG>1200</STRONG>
# Check 1.2 MB diskette
<STRONG>diskcheck</STRONG> <STRONG>/dev/at0</STRONG> <STRONG>100</STRONG> <STRONG>50</STRONG>
# Check blocks 100 to 149
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Diskcheck</EM> checks a disk for bad sectors by reading in each sector,
writing a known bit pattern onto it, reading it back in and comparing
with what was written. This check is then done a second time. Bad
sectors are reported. After each sector is tested, the original sector
is restored. Only use this program on unmounted partitions. Killing it
part way through may result in lost data.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/format.1.html">format(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>dosdir(1)</TITLE>
</HEAD>
<BODY>
<H1>dosdir(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
dosdir - list an MS-DOS directory [IBM]
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>dosdir</STRONG> [<STRONG>-lr</STRONG>] <EM>drive</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-l</STRONG> Long listing
<STRONG>-r</STRONG> Recursively descend and print subdirectories
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>dosdir</STRONG> <STRONG>-l</STRONG> <STRONG>A</STRONG> # List root directory on drive A
<STRONG>dosdir</STRONG> <STRONG>-r</STRONG> <STRONG>C</STRONG> <STRONG>x/y</STRONG> # Recursively list directory <EM>x</EM>/<EM>y</EM>
<STRONG>dosdir</STRONG> <STRONG>-r</STRONG> <STRONG>fd1</STRONG> # List device /<EM>dev</EM>/<EM>fd1</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Dosdir</EM> reads standard IBM PC diskettes or hard disk partitions in MS-DOS
format and lists their contents on standard output. Directory names
should contain slashes to separate components, even though MS-DOS uses
backslashes. The names <EM>dosdir</EM> , <EM>dosread</EM> , and <EM>doswrite</EM> are all links to
the same program. The program sees which function to perform by seeing
how it was called. A drive code of <EM>A</EM> causes the program to use
/<EM>dev</EM>/<EM>dosA</EM>, for example, a link to /<EM>dev</EM>/<EM>fd0</EM>. Similarly, to have hard disk
partition 1 be DOS drive C, /<EM>dev</EM>/<EM>dosC</EM> could be a link to /<EM>dev</EM>/<EM>hd1</EM>, and so
on for other drive codes. A normal device name may also be used instead
of a drive code.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>dosread(1)</TITLE>
</HEAD>
<BODY>
<H1>dosread(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
dosread - read a file from an MS-DOS diskette [IBM]
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>dosread</STRONG> [<STRONG>-a</STRONG>] <EM>drive</EM> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> ASCII file
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>dosread</STRONG> <STRONG>C</STRONG> <STRONG>g/adv</STRONG> <STRONG>&gt;adv</STRONG>
# Read file <EM>g</EM>/<EM>adv</EM> from hard disk
<STRONG>dosread</STRONG> <STRONG>-a</STRONG> <STRONG>A</STRONG> <STRONG>prog.c</STRONG> <STRONG>&gt;x</STRONG>
# Read ASCII file <EM>prog</EM>.<EM>c</EM> from drive A
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Dosread</EM> reads one MS-DOS file and writes it on standard output. The file
name must use slash, not backslash as a separator. ASCII files have the
final CTRL-Z stripped, and carriage return plus line feed are mapped to
line feed only, the usual MINIX convention. See <STRONG>dosdir</STRONG> on the use of
single letter drive codes.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>doswrite(1)</TITLE>
</HEAD>
<BODY>
<H1>doswrite(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
doswrite - write a file onto an MS-DOS diskette [IBM]
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>doswrite</STRONG> [<STRONG>-a</STRONG>] <EM>drive</EM> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> ASCII file
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>doswrite</STRONG> <STRONG>A</STRONG> <STRONG>x/y</STRONG> <STRONG>&lt;z</STRONG> # Write file <EM>z</EM> to disk as <EM>x</EM>/<EM>y</EM>
<STRONG>doswrite</STRONG> <STRONG>-a</STRONG> <STRONG>B</STRONG> <STRONG>f</STRONG> # Copy <EM>stdin</EM> to MS-DOS file <EM>f</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Doswrite</EM> writes its <EM>stdin</EM> to an MS-DOS file. The diskette or partition
must be formatted and have an MS-DOS file system already in place,
including all the directories leading up to the file. See <STRONG>dosdir</STRONG> on the
use of single letter drive codes.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>du(1)</TITLE>
</HEAD>
<BODY>
<H1>du(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
du - print disk usage
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>du</STRONG> [<STRONG>-as</STRONG>] [<STRONG>-l</STRONG> <EM>n</EM>] <EM>dir</EM> ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-a</STRONG> Give usage for all files
<STRONG>-l</STRONG> List up to <EM>n</EM> levels of subdirectories
<STRONG>-s</STRONG> Summary only
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>du</STRONG> <STRONG>dir</STRONG> # List disk space used by files in dir
<STRONG>du</STRONG> <STRONG>-s</STRONG> <STRONG>dir1</STRONG> <STRONG>dir2</STRONG> # Give summaries only
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Du</EM> examines one or more directories and prints the amount of space
occupied by the files in those directories and their subdirectories.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/df.1.html">df(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>echo(1)</TITLE>
</HEAD>
<BODY>
<H1>echo(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
echo - print the arguments
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>echo</STRONG> [<STRONG>-n</STRONG>] <EM>argument</EM> ...
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-n</STRONG> No line feed is output when done
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>echo</STRONG> <STRONG>Start</STRONG> <STRONG>Phase</STRONG> <STRONG>1</STRONG> # 'Start Phase 1' is printed
<STRONG>echo</STRONG> <STRONG>-n</STRONG> <STRONG>Hello</STRONG> # 'Hello' is printed without a line feed
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Echo</EM> writes its arguments to standard output. They are separated by
blanks and terminated with a line feed unless <STRONG>-n</STRONG> is present. This
command is used mostly in shell scripts.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/sh.1.html">sh(1)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>ed(1)</TITLE>
</HEAD>
<BODY>
<H1>ed(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
ed - editor
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>ed</STRONG> <EM>file</EM>
</PRE>
<H2>OPTIONS</H2><PRE>
<STRONG>-</STRONG> Suppress line/byte count messages (for in scripts)
</PRE>
<H2>EXAMPLES</H2><PRE>
<STRONG>ed</STRONG> <STRONG>prog.c</STRONG> # Edit <EM>prog</EM>.<EM>c</EM>
<STRONG>echo</STRONG> <STRONG>'1,$p'</STRONG> <STRONG>|</STRONG> <STRONG>ed</STRONG> <STRONG>-</STRONG> <STRONG>file</STRONG>
# Odd way to write 'cat file'
</PRE>
<H2>DESCRIPTION</H2><PRE>
<EM>Ed</EM> is functionally equivalent to the standard V7 editor, ed. It supports
the following commands:
(.) a: append
(.,.) c: change
(.,.) d: delete
e: edit new file"
f: print name of edited file"
(1,$) g: global command
(.) i: insert
(.,.+1) j: join lines together
(.) k: mark
(.) l: print with special characters in octal
(.,.) m: move
(.,.) p: print
q: quit editor"
(.) r: read in new file
(.,.) s: substitute
(1,$) v: like g, except select lines that do not match
(1,$) w: write out edited file
Many of the commands can take one or two addresses, as indicated above.
The defaults are shown in parentheses. Thus <EM>a</EM> appends to the current
line, and <EM>g</EM> works on the whole file as default. The dot refers to the
current line. Below is a sample editing session with comments given
following the # symbol.
ed prog.c # Edit prog.c
3,20p # Print lines 3 through 20
/whole/ # Find next occurence of <EM>whole</EM>
s/whole/while/ # Replace <EM>whole</EM> by <EM>while</EM>
g/Buf/s//BUF/g # Replace <EM>Buf</EM> by <EM>BUF</EM> everywhere
w # Write the file back
q # Exit the editor
<EM>Ed</EM> is provided for its sentimental value. If you want a line-oriented
editor, try <EM>ex</EM>. If you want a good editor, use <EM>elle</EM>, <EM>elvis</EM>, or <EM>mined</EM>.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/elvis.1.html">elvis(1)</A></STRONG>, <STRONG><A HREF="../man9/elle.9.html">elle(9)</A></STRONG>, <STRONG><A HREF="../man9/mined.9.html">mined(9)</A></STRONG>.
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,71 @@
<HTML>
<HEAD>
<TITLE>eject(1)</TITLE>
</HEAD>
<BODY>
<H1>eject(1)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
eject - eject removable media
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>eject</STRONG> <EM>device</EM>
</PRE>
<H2>DESCRIPTION</H2><PRE>
<STRONG>Eject</STRONG> tells a device to eject removable media, usually a floppy or CD-
ROM. <STRONG>Eject</STRONG> invokes the <STRONG>DIOCEJECT</STRONG> ioctl on the device. The media will
then be ejected, or allowed to be removed. The call will fail if the
device is still in use.
Tapes can't be unloaded with this command, use <STRONG>mt</STRONG> <STRONG>offline</STRONG> instead.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man4/sd.4.html">sd(4)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

Some files were not shown because too many files have changed in this diff Show More