<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [...]>
<book id="BusyBoxDocumentation">
 <bookinfo>
  <title>BusyBox - The Swiss Army Knife of Embedded Linux</title>
  
  <legalnotice>
   <para>
     This documentation is free software; you can redistribute
     it and/or modify it under the terms of the GNU General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later
     version.
   </para>
      
   <para>
     This program is distributed in the hope that it will be
     useful, but WITHOUT ANY WARRANTY; without even the implied
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the GNU General Public License for more details.
   </para>
      
   <para>
     You should have received a copy of the GNU General Public
     License along with this program; if not, write to the Free
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
   </para>
      
   <para>
     For more details see the file COPYING in the source
     distribution of Linux.
   </para>
  </legalnotice>
 </bookinfo>

<toc></toc>
  <chapter id="Introduction">
     <title>Introduction</title>

	<para>
	BusyBox combines tiny versions of many common UNIX utilities into a single
	small executable. It provides minimalist replacements for most of the
	utilities you usually find in fileutils, shellutils, findutils, textutils,
	grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment
	for any small or embedded system. The utilities in BusyBox generally have
	fewer options than their full-featured GNU cousins; however, the options
	that are included provide the expected functionality and behave very much
	like their GNU counterparts. 
	</para>

	<para>
	BusyBox has been written with size-optimization and limited resources in
	mind. It is also extremely modular so you can easily include or exclude
	commands (or features) at compile time. This makes it easy to customize
	your embedded systems. To create a working system, just add a kernel, a
	shell (such as ash), and an editor (such as elvis-tiny or ae).
	</para>
  </chapter>

  <chapter id="Syntax">
     <title>How to use BusyBox</title>
	<sect1 id="How to use BusyBox">
	    <title>Syntax</title

	    <para>
	    <screen>
	     BusyBox &lt;function&gt; [arguments...]  # or
	    </screen>
	    </para>

	    <para>
	    <screen>
	     &lt;function&gt; [arguments...]          # if symlinked
	    </screen>
	    </para>
	</sect1>

	<sect1 id="Invoking BusyBox">
	    <para>
	    When you create a link to BusyBox for the function you wish to use, when
	    BusyBox is called using that link it will behave as if the command itself
	    has been invoked.
	    </para>

	    <para>
	    For example, entering
	    </para>

	    <para>
	    <screen>
		    ln -s ./BusyBox ls
		    ./ls
	    </screen>
	    </para>

	    <para>
	    will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
	    into BusyBox). 
	    </para>

	    <para>
	    You can also invoke BusyBox by issuing the command as an argument on the
	    command line. For example, entering
	    </para>

	    <para>
	    <screen>
		    ./BusyBox ls
	    </screen>
	    </para>

	    <para>
	    will also cause BusyBox to behave as 'ls'. 
	    </para>

	</sect1>

	<sect1 id="Common options">
	    <para>
	    Most BusyBox commands support the <emphasis>--help</emphasis> option to provide 
	    a terse runtime description of their behavior. 
	    </para>
	</sect1>
  </chapter>

  <chapter id="Commands">
     <title>BusyBox Commands</title>
	<sect1 id="Available BusyBox Commands">
	    <title>Available BusyBox Commands</title>
		<para>
		Currently defined functions include:
		</para>

		<para>
		ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear,
		cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, du,
		dumpkmap, dutmp, echo, false, fbset, fdflush, find, free,
		freeramdisk, fsck.minix, grep, gunzip, gzip, halt, head,
		hostid, hostname, id, init, insmod, kill, killall, length, ln,
		loadacm, loadfont, loadkmap, logger, logname, ls, lsmod,
		makedevs, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp,
		more, mount, mt, mv, nc, nslookup, ping, poweroff, printf, ps,
		pwd, reboot, renice, reset, rm, rmdir, rmmod, sed, setkeycodes, sh, sleep,
		sort, swapoff, swapon, sync, syslogd, tail, tar, tee, telnet,
		test, touch, tr, true, tty, umount, uname, uniq, update,
		uptime, usleep, uudecode, uuencode, wc, which, whoami, yes,
		zcat, [
		</para>
	</sect1>

	<sect1 id="ar">
	    <title>ar</title>

		<para>
		Usage: ar [OPTION] archive [FILENAME]...
		</para>

		<para>
		Extract or list files from an ar archive.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			o	Preserve original dates
			p	Extract to stdout
			t	List
			x	Extract
			v	Verbosely list files processed
		</screen>
		</para>
	</sect1>

	<sect1 id="basename">
	    <title>basename</title>
		<para>
		Usage: basename FILE [SUFFIX]
		</para>

		<para>
		Strip directory path and suffixes from FILE. If specified, also removes
		any trailing SUFFIX.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ basename /usr/local/bin/foo
			foo
			$ basename /usr/local/bin/
			bin
			$ basename /foo/bar.txt .txt
			bar
		</screen>
		</para>
	</sect1>

	<sect1 id="cat">
	    <title>cat</title>

		<para>
		Usage: cat [FILE]...
		</para>

		<para>
		Concatenate <literal>FILE(s)</literal> and prints them to the standard
		output.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ cat /proc/uptime
			110716.72 17.67
		</screen>
		</para>
	</sect1>

	<sect1 id="chgrp">
	    <title>chgrp</title>

		<para>
		Usage: chgrp [OPTION]... GROUP FILE...
		</para>

		<para>
		Change the group membership of each FILE to GROUP.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Change files and directories recursively
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -l /tmp/foo
			-r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
			$ chgrp root /tmp/foo
			$ ls -l /tmp/foo
			-r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo
		</screen>
		</para>
	</sect1>

	<sect1 id="chmod">
	    <title>chmod</title>

		<para>
		Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
		</para>

		<para>
		Change file access permissions for the specified
		<literal>FILE(s)</literal> (or directories). Each MODE is defined by
		combining the letters for WHO has access to the file, an OPERATOR for
		selecting how the permissions should be changed, and a PERMISSION for
		<literal>FILE(s)</literal> (or directories).
		</para>

		<para>
		WHO may be chosen from
		</para>

		<para>
		<screen>
			u       User who owns the file
			g       Users in the file's Group
			o       Other users not in the file's group
			a       All users
		</screen>
		</para>

		<para>
		OPERATOR may be chosen from
		</para>

		<para>
		<screen>
			+       Add a permission
			-       Remove a permission
			=       Assign a permission
		</screen>
		</para>

		<para>
		PERMISSION may be chosen from
		</para>

		<para>
		<screen>
			r       Read
			w       Write
			x       Execute (or access for directories)
			s       Set user (or group) ID bit
			t       Sticky bit (for directories prevents removing files by non-owners)
		</screen>
		</para>

		<para>
		Alternately, permissions can be set numerically where the first three
		numbers are calculated by adding the octal values, such as
		</para>

		<para>
		<screen>
			4       Read
			2       Write
			1       Execute
		</screen>
		</para>

		<para>
		An optional fourth digit can also be used to specify
		</para>

		<para>
		<screen>
			4       Set user ID
			2       Set group ID
			1       Sticky bit
		</screen>
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Change files and directories recursively.
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -l /tmp/foo
			-rw-rw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo
			$ chmod u+x /tmp/foo
			$ ls -l /tmp/foo
			-rwxrw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo*
			$ chmod 444 /tmp/foo
			$ ls -l /tmp/foo
			-r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
		</screen>
		</para>
	</sect1>
	
	<sect1 id="chown">
	    <title>chown</title>
		<para>
		Usage: chown [OPTION]... OWNER[&lt;.|:&gt;[GROUP] FILE...
		</para>

		<para>
		Change the owner and/or group of each FILE to OWNER and/or GROUP.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Change files and directories recursively
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -l /tmp/foo
			-r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
			$ chown root /tmp/foo
			$ ls -l /tmp/foo
			-r--r--r--    1 root     andersen        0 Apr 12 18:25 /tmp/foo
			$ chown root.root /tmp/foo
			ls -l /tmp/foo
			-r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
		</screen>
		</para>
	</sect1>

	<sect1 id="chroot">
	    <title>chroot</title>
		<para>
		Usage: chroot NEWROOT [COMMAND...]
		</para>

		<para>
		Run COMMAND with root directory set to NEWROOT.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -l /bin/ls
			lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -&gt; /BusyBox
			$ mount /dev/hdc1 /mnt -t minix
			$ chroot /mnt
			$ ls -l /bin/ls
			-rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*
		</screen>
		</para>
	</sect1>

	<sect1 id="chvt">
	    <title>chvt</title>
		<para>
		Usage: chvt N
		</para>

		<para>
		Change the foreground virtual terminal to /dev/ttyN
		</para>
	</sect1>

	<sect1 id="clear">
	    <title>clear</title>

		<para>
		Usage: clear
		</para>

		<para>
		Clear the screen.
		</para>
	</sect1>

	<sect1 id="cp">
	    <title>cp</title>

		<para>
		Usage: cp [OPTION]... SOURCE DEST
		</para>

		<para>
		<screen>
		   or: cp [OPTION]... SOURCE... DIRECTORY
		</screen>
		</para>

		<para>
		Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
		DIRECTORY.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a      Same as -dpR
			-d      Preserve links
			-p      Preserve file attributes if possible
			-R      Copy directories recursively
		</screen>
		</para>
	</sect1>

	<sect1 id="cut">
	    <title>cut</title>

		<para>
		Usage: cut [OPTION]... [FILE]...
		</para>

		<para>
		Print selected fields from each input FILE to standard output.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
				-b LIST Output only bytes from LIST
				-c LIST Output only characters from LIST
				-d CHAR Use CHAR instead of tab as the field delimiter
				-s      Output only the lines containing delimiter
				-f N    Print only these fields
				-n      Ignored
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo "Hello world" | cut -f 1 -d ' '
			Hello
			$ echo "Hello world" | cut -f 2 -d ' '
			world
		</screen>
		</para>
	</sect1>

	<sect1 id="date">
	    <title>date</title>

		<para>
		Usage: date [OPTION]... [+FORMAT]
		</para>

		<para>
		<screen>
		  or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
		</screen>
		</para>

		<para>
		Display the current time in the given FORMAT, or set the system date.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Output RFC-822 compliant date string
			-s      Set time described by STRING
			-u      Print or set Coordinated Universal Time
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ date
			Wed Apr 12 18:52:41 MDT 2000
		</screen>
		</para>
	</sect1>

	<sect1 id="dc">
	    <title>dc</title>

		<para>
		Usage: dc [EXPRESSION]
		</para>

		<para>
		This is a Tiny RPN calculator that understands the
		following operations: +, -, /, *, and, or, not, eor. If
		no arguments are given, dc will process input from
		stdin.
		</para>

		<para>
		The behaviour of BusyBox/dc deviates (just a little ;-)
		from GNU/dc, but this will be remedied in the future.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dc 2 2 +
			4
			$ dc 8 8 \* 2 2 + /
			16
			$ dc 0 1 and
			0
			$ dc 0 1 or
			1
			$ echo 72 9 div 8 mul | dc
			64
		</screen>
		</para>
	</sect1>

	<sect1 id="dd">
	    <title>dd</title>

		<para>
		Usage: dd [OPTION]...
		</para>

		<para>
		Copy a file, converting and formatting according to
		options.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			if=FILE Read from FILE instead of stdin
			of=FILE Write to FILE instead of stdout
			bs=N    Read and write N bytes at a time
			count=N Copy only N input blocks
			skip=N  Skip N input blocks
			seek=N  Skip N output blocks
		</screen>
		</para>

		<para>
		Numbers may be suffixed by w (x2), k (x1024), b (x512),
		or M (x1024^2).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
			4+0 records in
			4+0 records out
		</screen>
		</para>
	</sect1>

	<sect1 id="deallocvt">
	    <title>deallocvt</title>

		<para>
		Usage: deallocvt N
		</para>

		<para>
		Deallocate unused virtual terminal /dev/ttyN.
		</para>
	</sect1>

	<sect1 id="df">
	    <title>df</title>

		<para>
		Usage: df [FILE]...
		</para>

		<para>
		Print the filesystem space used and space available.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ df
			Filesystem           1k-blocks      Used Available Use% Mounted on
			/dev/sda3              8690864   8553540    137324  98% /
			/dev/sda1                64216     36364     27852  57% /boot
			$ df /dev/sda3
			Filesystem           1k-blocks      Used Available Use% Mounted on
			/dev/sda3              8690864   8553540    137324  98% /
		</screen>
		</para>
	</sect1>
	
	<sect1 id="dirname">
	    <title>dirname</title>

		<para>
		Usage: dirname NAME
		</para>

		<para>
		Strip non-directory suffix from NAME.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dirname /tmp/foo
			/tmp
			$ dirname /tmp/foo/
			/tmp
		</screen>
		</para>
	</sect1>

	<sect1 id="dmesg">
	    <title>dmesg</title>

		<para>
		Usage: dmesg [OPTION]...
		</para>

		<para>
		Print or control the kernel ring buffer.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c		Clear the ring buffer after printing
			-n LEVEL	Set the console logging level to LEVEL
			-s BUFSIZE	Query ring buffer using a buffer of BUFSIZE
		</screen>
		</para>
	</sect1>

	<sect1 id="du">
	    <title>du</title>

		<para>
		Usage: du [OPTION]... [FILE]...
		</para>

		<para>
		Summarize the disk space used for each FILE or current
		directory.  Disk space printed in units of 1k (i.e.
		1024 bytes).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-l	Count sizes many times if hard linked
			-s	Display only a total for each argument
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ du
			16	./CVS
			12	./kernel-patches/CVS
			80	./kernel-patches
			12	./tests/CVS
			36	./tests
			12	./scripts/CVS
			16	./scripts
			12	./docs/CVS
			104	./docs
			2417	.
		</screen>
		</para>
	</sect1>

	<sect1 id="dumpkmap">
	    <title>dumpkmap</title>

		<para>
		Usage: dumpkmap
		</para>

		<para>
		Prints out a binary keyboard translation table to standard input.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dumpkmap &lt; keymap
		</screen>
		</para>
	</sect1>

	<sect1 id="dutmp">
	    <title>dutmp</title>

		<para>
		Usage: dutmp [FILE]
		</para>

		<para>
		Dump utmp file format (pipe delimited) from FILE or
		stdin to stdout.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dutmp /var/run/utmp
			8|7||si|||0|0|0|955637625|760097|0
			2|0|~|~~|reboot||0|0|0|955637625|782235|0
			1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
			8|125||l4|||0|0|0|955637629|998367|0
			6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
			6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
			7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
		</screen>
		</para>
	</sect1>

	<sect1 id="echo">
	    <title>echo</title>

		<para>
		Usage: echo [OPTION]... [ARG]...
		</para>

		<para>
		Print ARGs to stdout.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-n	Suppress trailing newline
			-e	Enable interpretation of escaped characters
			-E	Disable interpretation of escaped characters
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo "Erik is cool"
			Erik is cool
			$ echo -e "Erik\nis\ncool"
			Erik
			is
			cool
			$ echo "Erik\nis\ncool"
			Erik\nis\ncool
		</screen>
		</para>
	</sect1>

	<sect1 id="expr">
	    <title>expr</title>

		<para>
		Usage: expr EXPRESSION
		</para>

		<para>
		Prints the value of EXPRESSION to standard output.
		</para>

		<para>
		EXPRESSION may be:
		</para>

		<para>
		<screen>
			ARG1 |  ARG2    ARG1 if it is neither null nor 0, otherwise ARG2
			ARG1 &  ARG2    ARG1 if neither argument is null or 0, otherwise 0
			ARG1 &lt  ARG2    ARG1 is less than ARG2
			ARG1 &lt= ARG2    ARG1 is less than or equal to ARG2
			ARG1 =  ARG2    ARG1 is equal to ARG2
			ARG1 != ARG2    ARG1 is unequal to ARG2
			ARG1 &gt= ARG2    ARG1 is greater than or equal to ARG2
			ARG1 &gt  ARG2    ARG1 is greater than ARG2
			ARG1 +  ARG2    arithmetic sum of ARG1 and ARG2
			ARG1 -  ARG2    arithmetic difference of ARG1 and ARG2
			ARG1 *  ARG2    arithmetic product of ARG1 and ARG2
			ARG1 /  ARG2    arithmetic quotient of ARG1 divided by ARG2
			ARG1 %  ARG2    arithmetic remainder of ARG1 divided by ARG2
			STRING : REGEXP             anchored pattern match of REGEXP in STRING
			match STRING REGEXP         same as STRING : REGEXP
			substr STRING POS LENGTH    substring of STRING, POS counted from 1
			index STRING CHARS          index in STRING where any CHARS is found, or 0
			length STRING               length of STRING
			quote TOKEN                 interpret TOKEN as a string, even if it is a
							keyword like `match' or an operator like `/'
			( EXPRESSION )              value of EXPRESSION
		</screen>
		</para>

		<para>
		Beware that many operators need to be escaped or quoted for shells.
		Comparisons are arithmetic if both ARGs are numbers, else
		lexicographical.  Pattern matches return the string matched between
		\( and \) or null; if \( and \) are not used, they return the number
		of characters matched or 0.
		</para>

	</sect1>


	<sect1 id="false">
	    <title>false</title>

		<para>
		Usage: false
		</para>

		<para>
		Return an exit code of FALSE (1).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ false
			$ echo $?
			1
		</screen>
		</para>
	</sect1>

	<sect1 id="fbset">
	    <title>fbset</title>

		<para>
		Usage: fbset [OPTION]... [MODE]
		</para>

		<para>
		Show and modify frame buffer device settings.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-h						Display option summary
			-fb DEVICE					Operate on DEVICE
			-db FILE					Use FILE for mode database
			-g XRES YRES VXRES VYRES DEPTH			Set all geometry parameters
			-t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN	Set all timing parameters
			-xres RES					Set visible horizontal resolution
			-yres RES					Set visible vertical resolution
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ fbset
			mode "1024x768-76"
					# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
					geometry 1024 768 1024 768 16
					timings 12714 128 32 16 4 128 4
					accel false
					rgba 5/11,6/5,5/0,0/0
			endmode
		</screen>
		</para>
	</sect1>

	<sect1 id="fdflush">
	    <title>fdflush</title>

		<para>
		Usage: fdflush DEVICE
		</para>

		<para>
		Force floppy disk drive to detect disk change on DEVICE.
		</para>
	</sect1>

	<sect1 id="find">
	    <title>find</title>

		<para>
		Usage: find [PATH]... [EXPRESSION]
		</para>

		<para>
		Search for files in a directory hierarchy. The default
		PATH is the current directory; default EXPRESSION is
		'-print'.
		</para>

		<para>
		EXPRESSION may consist of:
		</para>

		<para>
		<screen>
			-follow		Dereference symbolic links
			-name PATTERN	File name (leading directories removed) matches PATTERN
			-print		Print the full file name followed by a newline to stdout
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ find / -name /etc/passwd
			/etc/passwd
		</screen>
		</para>
	</sect1>

	<sect1 id="free">
	    <title>free</title>

		<para>
		Usage: free
		</para>

		<para>
		Displays the amount of free and used system memory.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ free
			total         used         free       shared      buffers
			  Mem:       257628       248724         8904        59644        93124
			 Swap:       128516         8404       120112
			Total:       386144       257128       129016
		</screen>
		</para>
	</sect1>

	<sect1 id="freeramdisk">
	    <title>freeramdisk</title>

		<para>
		Usage: freeramdisk DEVICE
		</para>

		<para>
		Free all memory used by the ramdisk DEVICE.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ freeramdisk /dev/ram2
		</screen>
		</para>
	</sect1>

	<sect1 id="fsck.minix">
	    <title>fsck.minix</title>

		<para>
		Usage: fsck.minix [OPTION]... DEVICE
		</para>

		<para>
		Perform a consistency check on the MINIX filesystem on
		DEVICE.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-l	List all filenames
			-r	Perform interactive repairs
			-a	Perform automatic repairs
			-v	Verbose
			-s	Output super-block information
			-m	Activate MINIX-like "mode not cleared" warnings
			-f	Force file system check.
		</screen>
		</para>
	</sect1>
	
	<sect1 id="getopt">
	    <title>getopt</title>

		<para>
		Usage: getopt [OPTIONS]...
		</para>

		<para>
		Parse command options
		</para>

		<para>
		<screen>
		   -a, --alternative            Allow long options starting with single -\n"
		   -l, --longoptions=longopts   Long options to be recognized\n"
		   -n, --name=progname          The name under which errors are reported\n"
		   -o, --options=optstring      Short options to be recognized\n"
		   -q, --quiet                  Disable error reporting by getopt(3)\n"
		   -Q, --quiet-output           No normal output\n"
		   -s, --shell=shell            Set shell quoting conventions\n"
		   -T, --test                   Test for getopt(1) version\n"
		   -u, --unqote                 Do not quote the output\n"
		</screen>
		</para>


		<para>
		Example:
		</para>

		<para>
		<screen>
			$ cat getopt.test
			#!/bin/sh
			GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \
				-n 'example.busybox' -- "$@"`
			if [ $? != 0 ] ; then  exit 1 ; fi
			eval set -- "$GETOPT"
			while true ; do
			  case $1 in
			    -a|--a-long) echo "Option a" ; shift ;;
			    -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;
			    -c|--c-long)
			      case "$2" in
				"") echo "Option c, no argument"; shift 2 ;;
				*)  echo "Option c, argument \`$2'" ; shift 2 ;;
			      esac ;;
			    --) shift ; break ;;
			    *) echo "Internal error!" ; exit 1 ;;
			  esac
			done
		</screen>
		</para>
	</sect1>

	<sect1 id="grep">
	    <title>grep</title>

		<para>
		Usage: grep [OPTIONS]... PATTERN [FILE]...
		</para>

		<para>
		Search for PATTERN in each FILE or stdin.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-h	Suppress the prefixing filename on output
			-i	Ignore case distinctions
			-n	Print line number with output lines
			-q	Be quiet. Returns 0 if result was found, 1 otherwise
			-v	Select non-matching lines
		</screen>
		</para>

		<para>
		This version of grep matches full regular expressions.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ grep root /etc/passwd
			root:x:0:0:root:/root:/bin/bash
			$ grep ^[rR]oo. /etc/passwd
			root:x:0:0:root:/root:/bin/bash
		</screen>
		</para>
	</sect1>

	<sect1 id="gunzip">
	    <title>gunzip</title>

		<para>
		Usage: gunzip [OPTION]... FILE
		</para>

		<para>
		Uncompress FILE (or stdin if FILE is '-').
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Write output to standard output
			-t	Test compressed file integrity
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -la /tmp/BusyBox*
			-rw-rw-r--    1 andersen andersen   557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
			$ gunzip /tmp/BusyBox-0.43.tar.gz
			$ ls -la /tmp/BusyBox*
			-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
		</screen>
		</para>
	</sect1>

<	<sect1 id="gzip">
	    <title>gzip</title>

		<para>
		Usage: gzip [OPTION]... FILE
		</para>

		<para>
		Compress FILE (or stdin if FILE is '-') with maximum
		compression to FILE.gz (or stdout if FILE is '-').
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Write output to standard output
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -la /tmp/BusyBox*
			-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
			$ gzip /tmp/BusyBox-0.43.tar
			$ ls -la /tmp/BusyBox*
			-rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
		</screen>
		</para>
	</sect1>

	<sect1 id="halt">
	    <title>halt</title>

		<para>
		Usage: halt
		</para>

		<para>
		Halt the system.
		</para>
	</sect1>

	<sect1 id="head">
	    <title>head</title>

		<para>
		Usage: head [OPTION] FILE...
		</para>

		<para>
		Print first 10 lines of each FILE to standard output.
		With more than one FILE, precede each with a header
		giving the file name. With no FILE, or when FILE is -,
		read standard input.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-n NUM	Print first NUM lines instead of first 10
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ head -n 2 /etc/passwd
			root:x:0:0:root:/root:/bin/bash
			daemon:x:1:1:daemon:/usr/sbin:/bin/sh
		</screen>
		</para>
	</sect1>

	<sect1 id="hostid">
	    <title>hostid</title>

		<para>
		Usage: hostid
		</para>

		<para>
		Prints out a unique 32-bit identifier for the current
		machine. The 32-bit identifier is intended to be unique
		among all UNIX systems in existence. 
		</para>
	</sect1>

	<sect1 id="hostname">
	    <title>hostname</title>

		<para>
		Usage: hostname [OPTION]... [HOSTNAME|-F FILE]
		</para>

		<para>
		Get or set the hostname or DNS domain name. If a
		hostname is given (or a file with the -F parameter), the
		host name will be set.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-s	Short
			-i	Addresses for the hostname
			-d	DNS domain name
			-F FILE	Use the contents of FILE to specify the hostname
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ hostname
			slag
		</screen>
		</para>
	</sect1>

	<sect1 id="id">
	    <title>id</title>

		<para>
		Usage: id [OPTION]... [USERNAME]
		</para>

		<para>
		Print information for USERNAME or the current user.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-g	Print only the group ID
			-u	Print only the user ID
			-r	Print the real user ID instead of the effective ID (with -ug)
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ id
			uid=1000(andersen) gid=1000(andersen)
		</screen>
		</para>
	</sect1>

	<sect1 id="init">
	    <title>init</title>

		<para>
		Usage: init
		</para>

		<para>
		Init is the parent of all processes.
		</para>

		<para>
		This version of init is designed to be run only by the
		kernel.
		</para>

		<para>
		BusyBox init doesn't support multiple runlevels. The
		runlevels field of the /etc/inittab file is completely
		ignored by BusyBox init. If you want runlevels, use
		sysvinit.
		</para>

		<para>
		BusyBox init works just fine without an inittab. If no
		inittab is found, it has the following default behavior:
		</para>

		<para>
		<screen>
			::sysinit:/etc/init.d/rcS
			::askfirst:/bin/sh
		</screen>
		</para>

		<para>
		If it detects that /dev/console is _not_ a serial
		console, it will also run:
		</para>

		<para>
		<screen>
			tty2::askfirst:/bin/sh
		</screen>
		</para>

		<para>
		If you choose to use an /etc/inittab file, the inittab
		entry format is as follows:
		</para>

		<para>
		<screen>
			&lt;id&gt;:&lt;runlevels&gt;:&lt;action&gt;:&lt;process&gt;
		</screen>
		<para>

		<sect2>
		    <title>id</title>
			<para>
                	WARNING: This field has a non-traditional
			meaning for BusyBox init!  The id field is used
			by BusyBox init to specify the controlling tty
			for the specified process to run on.  The
			contents of this field are appended to "/dev/"
			and used as-is.  There is no need for this field
			to be unique, although if it isn't you may have
			strange results.  If this field is left blank,
			it is completely ignored.  Also note that if
			BusyBox detects that a serial console is in use,
			then all entries containing non-empty id fields
			will _not_ be run.  BusyBox init does nothing
			with utmp.  We don't need no stinkin' utmp.
			</para>
		</sect2>

		<sect2>
		    <title>runlevels</title>

			<para>
                	The runlevels field is completely ignored.
			</para>
		</sect2>

		<sect2>
		    <title>action</title>

			<para>
                	Valid actions include: sysinit, respawn,
			askfirst, wait, once, and ctrlaltdel.
			</para>

			<para>
                	askfirst acts just like respawn, but before
			running the specified process it displays the
			line "Please press Enter to activate this
			console." and then waits for the user to press
			enter before starting the specified process.
			</para>

			<para>
                	Unrecognized actions (like initdefault) will
			cause init to emit an error message, and then go
			along with its business.
			</para>
		</sect2>

		<sect2>
		    <title>process</title>

			<para>
                	Specifies the process to be executed and its
			command line.
			</para>
		</sect2>

		<para>
		Example /etc/inittab file:
		</para>

		<para>
		<screen>
			# This is run first except when booting in single-user mode.
			#
			::sysinit:/etc/init.d/rcS

			# /bin/sh invocations on selected ttys
			#
			# Start an "askfirst" shell on the console (whatever that may be)
			::askfirst:/bin/sh
			# Start an "askfirst" shell on /dev/tty2
			tty2::askfirst:/bin/sh

			# /sbin/getty invocations for selected ttys
			#
			tty4::respawn:/sbin/getty 38400 tty4
			tty5::respawn:/sbin/getty 38400 tty5

			# Example of how to put a getty on a serial line (for a terminal)
			#
			#ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
			#ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
			#
			# Example how to put a getty on a modem line.
			#ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2

			# Stuff to do before rebooting
			::ctrlaltdel:/bin/umount -a -r &gt; /dev/null 2&gt;&amp;1
			::ctrlaltdel:/sbin/swapoff -a &gt; /dev/null 2&gt;&amp;1
		</screen>
		</para>
	</sect1>

	<sect1 id="insmod">
	    <title>insmod</title>

		<para>
		Usage: insmod [OPTION]... MODULE [symbol=value]...
		</para>

		<para>
		Load MODULE into the kernel.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-f	Force module to load into the wrong kernel version.
			-k	Make module autoclean-able.
			-v	Verbose output
			-x	Do not export externs
		</screen>
		</para>
	</sect1>

	<sect1 id="kill">
	    <title>kill</title>

		<para>
		Usage: kill [OPTION] PID...
		</para>

		<para>
		Send a signal (default is SIGTERM) to the specified
		PID(s).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-l	List all signal names and numbers
			-SIG	Send signal SIG
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ps | grep apache
			252 root     root     S [apache]
			263 www-data www-data S [apache]
			264 www-data www-data S [apache]
			265 www-data www-data S [apache]
			266 www-data www-data S [apache]
			267 www-data www-data S [apache]
			$ kill 252
		</screen>
		</para>
	</sect1>

	<sect1 id="killall">
	    <title>killall</title>

		<para>
		Usage: killall [OPTION] NAME...
		</para>

		<para>
		Send a signal (default is SIGTERM) to the specified
		NAME(s).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-l	List all signal names and numbers
			-SIG	Send signal SIG
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ killall apache
		</screen>
		</para>
	</sect1>

	<sect1 id="length">
	    <title>length</title>

		<para>
		Usage: length STRING
		</para>

		<para>
		Print the length of STRING.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ length "Hello"
			5
		</screen>
		</para>
	</sect1>

	<sect1 id="ln">
	    <title>ln</title>

		<para>
		Usage: ln [OPTION]... TARGET FILE|DIRECTORY
		</para>

		<para>
		Create a link named FILE or DIRECTORY to the specified
		TARGET.  You may use '--' to indicate that all following
		arguments are non-options.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-s	Make symbolic link instead of hard link
			-f	Remove existing destination file
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ln -s BusyBox /tmp/ls
			$ ls -l /tmp/ls
			lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -&gt; BusyBox*
		</screen>
		</para>
	</sect1>

	<sect1 id="loadacm">
	    <title>loadacm</title>

		<para>
		Usage: loadacm
		</para>

		<para>
		Load an acm from stdin.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ loadacm &lt; /etc/i18n/acmname
		</screen>
		</para>
	</sect1>

	<sect1 id="loadfont">
	    <title>loadfont</title>

		<para>
		Usage: loadfont
		</para>

		<para>
		Load a console font from stdin.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ loadfont &lt; /etc/i18n/fontname
		</screen>
		</para>
	</sect1>

	<sect1 id="loadkmap">
	    <title>loadkmap</title>

		<para>
		Usage: loadkmap
		</para>

		<para>
		Load a binary keyboard translation table from stdin.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ loadkmap &lt; /etc/i18n/lang-keymap
		</screen>
		</para>
	</sect1>

	<sect1 id="logger">
	    <title>logger</title>

		<para>
		Usage: logger [OPTION]... [MESSAGE]
		</para>

		<para>
		Write MESSAGE to the system log.  If MESSAGE is '-', log
		stdin.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-s	Log to stderr as well as the system log
			-t	Log using the specified tag (defaults to user name)
			-p	Enter the message with the specified priority
				This may be numerical or a ``facility.level'' pair
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ logger "hello"
		</screen>
		</para>
	</sect1>

	<sect1 id="logname">
	    <title>logname</title>

		<para>
		Usage: logname
		</para>

		<para>
		Print the name of the current user.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ logname
			root
		</screen>
		</para>
	</sect1>

	<sect1 id="ls">
	    <title>ls</title>

		<para>
		Usage: ls [OPTION]... [FILE]...
		</para>

		<para>
		
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Do not hide entries starting with .
			-c	With  -l:  show ctime (the time of last
				modification of file status information)
			-d	List directory entries instead of contents
			-e	List both full date and full time
			-l	Use a long listing format
			-n	List numeric UIDs and GIDs instead of names
			-p	Append indicator (one of /=@|) to entries
			-u	With -l: show access time (the time of last
				access of the file)
			-x	List entries by lines instead of by columns
			-A	Do not list implied . and ..
			-C	List entries by columns
			-F	Append indicator (one of */=@|) to entries
			-R	List subdirectories recursively
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
		</screen>
		</para>
	</sect1>

	<sect1 id="lsmod">
	    <title>lsmod</title>

		<para>
		Usage: lsmod
		</para>

		<para>
		List currently loaded kernel modules.
		</para>
	</sect1>

	<sect1 id="makedevs">
	    <title>makedevs</title>

		<para>
		Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s]
		</para>

		<para>
		Create a range of block or character special files.
		</para>

		<para>
		TYPE may be:
		</para>

		<para>
		<screen>
			b	Make a block (buffered) device
			c or u	Make a character (un-buffered) device
			p	Make a named pipe. MAJOR and MINOR are ignored for named pipes
		</screen>
		</para>

		<para>
		FIRST specifies the number appended to NAME to create
		the first device.  LAST specifies the number of the last
		item that should be created. If 's' is the last
		argument, the base device is created as well.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ makedevs /dev/ttyS c 4 66 2 63
			[creates ttyS2-ttyS63]
			$ makedevs /dev/hda b 3 0 0 8 s
			[creates hda,hda1-hda8]
		</screen>
		</para>
	</sect1>

	<sect1 id="md5sum">
	    <title>md5sum</title>

		<para>
		Usage: md5sum [OPTION]... FILE...
		</para>

		<para>
		Print or check MD5 checksums.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-b	Read files in binary mode
			-c	Check MD5 sums against given list
			-t	Read files in text mode (default)
			-g	Read a string
		</screen>
		</para>

		<para>
		The following two options are useful only when verifying
		checksums:
		</para>

		<para>
		<screen>
			-s	Don't output anything, status code shows success
			-w	Warn about improperly formated MD5 checksum lines
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ md5sum busybox
			6fd11e98b98a58f64ff3398d7b324003  busybox
			$ md5sum -c
			6fd11e98b98a58f64ff3398d7b324003  busybox
			6fd11e98b98a58f64ff3398d7b324002  busybox
			md5sum: MD5 check failed for 'busybox'
			^D
		</screen>
		</para>
	</sect1>

	<sect1 id="mkdir">
	    <title>mkdir</title>

		<para>
		Usage: mkdir [OPTION]... DIRECTORY...
		</para>

		<para>
		Create the DIRECTORY(s), if they do not already exist.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-m	Set permission mode (as in chmod), not rwxrwxrwx - umask
			-p	No error if directory exists, make parent directories as needed
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ mkdir /tmp/foo
			$ mkdir /tmp/foo
			/tmp/foo: File exists
			$ mkdir /tmp/foo/bar/baz
			/tmp/foo/bar/baz: No such file or directory
			$ mkdir -p /tmp/foo/bar/baz
		</screen>
		</para>
	</sect1>

	<sect1 id="mkfifo">
	    <title>mkfifo</title>

		<para>
		Usage: mkfifo [OPTION] NAME
		</para>

		<para>
		Create a named pipe (identical to 'mknod NAME p').
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-m MODE	Create the pipe using the specified mode (default a=rw)
		</screen>
		</para>
	</sect1>

	<sect1 id="mkfs.minix">
	    <title>mkfs.minix</title>

		<para>
		Usage: mkfs.minix [OPTION]... NAME [BLOCKS]
		</para>

		<para>
		Make a MINIX filesystem.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c		Check the device for bad blocks
			-n [14|30]	Specify the maximum length of filenames
			-i		Specify the number of inodes for the filesystem
			-l FILENAME	Read the bad blocks list from FILENAME
			-v		Make a Minix version 2 filesystem
		</screen>
		</para>
	</sect1>

	<sect1 id="mknod">
	    <title>mknod</title>

		<para>
		Usage: mknod [OPTION]... NAME TYPE MAJOR MINOR
		</para>

		<para>
		Create a special file (block, character, or pipe).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-m	Create the special file using the specified mode (default a=rw)
		</screen>
		</para>

		<para>
		TYPE may be:
		</para>

		<para>
		<screen>
			b	Make a block (buffered) device
			c or u	Make a character (un-buffered) device
			p	Make a named pipe. MAJOR and MINOR are ignored for named pipes
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ mknod /dev/fd0 b 2 0 
			$ mknod -m 644 /tmp/pipe p
		</screen>
		</para>
	</sect1>

	<sect1 id="mkswap">
	    <title>mkswap</title>

		<para>
		Usage: mkswap [OPTION]... DEVICE [BLOCKS]
		</para>

		<para>
		Prepare a disk partition to be used as a swap partition.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Check for read-ability.
			-v0	Make version 0 swap [max 128 Megs].
			-v1	Make version 1 swap [big!] (default for kernels &gt; 2.1.117).
			BLOCKS	Number of block to use (default is entire partition).
		</screen>
		</para>
	</sect1>

	<sect1 id="mktemp">
	    <title>mktemp</title>

		<para>
		Usage: mktemp TEMPLATE
		</para>

		<para>
		Creates a temporary file with its name based on
		TEMPLATE.  TEMPLATE is any name with six `Xs' (i.e.
		/tmp/temp.XXXXXX).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ mktemp /tmp/temp.XXXXXX
			/tmp/temp.mWiLjM
			$ ls -la /tmp/temp.mWiLjM
			-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM
		</screen>
		</para>
	</sect1>

	<sect1 id="more">
	    <title>more</title>

		<para>
		Usage: more [FILE]...
		</para>

		<para>
		Page through text one screenful at a time.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ dmesg | more
		</screen>
		</para>
	</sect1>

	<sect1 id="mount">
	    <title>mount</title>

		<para>
		Usage: mount [OPTION]...
		</para>

		<para>
		<screen>
		   or: mount [OPTION]... DEVICE DIRECTORY
		</screen>
		</para>

		<para>
		Mount filesystems.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Mount all filesystems in /etc/fstab
			-o	One of the many filesystem options listed below
			-r	Mount the filesystem read-only
			-t TYPE	Specify the filesystem type
			-w	Mount the filesystem read-write
		</screen>
		</para>

		<para>
		Options for use with the -o flag:
		</para>

		<para>
		<screen>
			async/sync	Writes are asynchronous / synchronous
			atime/noatime	Enable / disable updates to inode access times
			dev/nodev	Allow / disallow use of special device files
			exec/noexec	Allow / disallow use of executable files
			loop		Mount a file via loop device
			suid/nosuid	Allow / disallow set-user-id-root programs
			remount		Remount a currently mounted filesystem
			ro/rw		Mount filesystem read-only / read-write
		</screen>
		</para>

		<para>
		There are even more flags that are filesystem specific.
		You'll have to see the written documentation for those.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ mount
			/dev/hda3 on / type minix (rw)
			proc on /proc type proc (rw)
			devpts on /dev/pts type devpts (rw)
			$ mount /dev/fd0 /mnt -t msdos -o ro
			$ mount /tmp/diskimage /opt -t ext2 -o loop
		</screen>
		</para>
	</sect1>

	<sect1 id="mt">
	    <title>mt</title>

		<para>
		Usage: mt [OPTION] OPCODE VALUE
		</para>

		<para>
		Control magnetic tape drive operation.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-f DEVICE	Control DEVICE
		</screen>
		</para>
	</sect1>

	<sect1 id="mv">
	    <title>mv</title>

		<para>
		Usage: mv SOURCE DEST
		</para>

		<para>
		<screen>
		   or: mv SOURCE... DIRECTORY
		</screen>
		</para>

		<para>
		Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ mv /tmp/foo /bin/bar
		</screen>
		</para>
	</sect1>

	<sect1 id="nc">
	    <title>nc</title>

		<para>
		Usage: nc HOST PORT
		</para>

		<para>
		Open a pipe to HOST:PORT.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ nc foobar.somedomain.com 25
			220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
			help
			214-Commands supported:
			214-    HELO EHLO MAIL RCPT DATA AUTH
			214     NOOP QUIT RSET HELP
			quit
			221 foobar closing connection
		</screen>
		</para>
	</sect1>

	<sect1 id="nslookup">
	    <title>nslookup</title>

		<para>
		Usage: nslookup [HOST]
		</para>

		<para>
		Query the nameserver for the IP address of the given
		HOST.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ nslookup localhost
			Server:     default
			Address:    default

			Name:       debian
			Address:    127.0.0.1
		</screen>
		</para>
	</sect1>

	<sect1 id="ping">
	    <title>ping</title>

		<para>
		Usage: ping [OPTION]... HOST
		</para>

		<para>
		Send ICMP ECHO_REQUEST packets to HOST.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c COUNT	Send only COUNT pings
			-s SIZE		Send SIZE data bytes in packets (default=56)
			-q		Quiet mode, only displays output at start and when finished
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ping localhost
			PING slag (127.0.0.1): 56 data bytes
			64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms

			--- debian ping statistics ---
			1 packets transmitted, 1 packets received, 0% packet loss
			round-trip min/avg/max = 20.1/20.1/20.1 ms
		</screen>
		</para>
	</sect1>

	<sect1 id="poweroff">
	    <title>poweroff</title>

		<para>
		Usage: poweroff
		</para>

		<para>
		Shut down the system, and request that the kernel turn
		off power upon halting.
		</para>
	</sect1>

	<sect1 id="printf">
	    <title>printf</title>

		<para>
		Usage: printf FORMAT [ARGUMENT]...
		</para>

		<para>
		Format and print the given data in a manner similar to
		the C printf command.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ printf "Val=%d\n" 5
			Val=5
		</screen>
		</para>
	</sect1>

	<sect1 id="ps">
	    <title>ps</title>

		<para>
		Usage: ps
		</para>

		<para>
		Report process status.  This version of ps accepts no
		options.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ps
			  PID  Uid      Gid State Command
			    1 root     root     S init
			    2 root     root     S [kflushd]
			    3 root     root     S [kupdate]
			    4 root     root     S [kpiod]
			    5 root     root     S [kswapd]
			  742 andersen andersen S [bash]
			  743 andersen andersen S -bash
			  745 root     root     S [getty]
			 2990 andersen andersen R ps
		</screen>
		</para>
	</sect1>

	<sect1 id="pwd">
	    <title>pwd</title>

		<para>
		Usage: pwd
		</para>

		<para>
		Print the full filename of the current working
		directory.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ pwd
			/root
		</screen>
		</para>
	</sect1>

	<sect1 id="rdate">
	    <title>rdate</title>

		<para>
		Usage: rdate [OPTION] HOST
		</para>

		<para>
		Get and possibly set the system date and time from a remote HOST.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-s      Set the system date and time (default).
			-p      Print the date and time.
		</screen>
		</para>
	</sect1>

	<sect1 id="reboot">
	    <title>reboot</title>

		<para>
		Usage: reboot
		</para>

		<para>
		Reboot the system.
		</para>
	</sect1>

	<sect1 id="renice">
	    <title>renice</title>

		<para>
		Usage: renice priority pid [pid ...]
		</para>

		<para>
		Changes priority of running processes. Allowed priorities range
		from 20 (the process runs only when nothing else is running) to 0
		(default priority) to -20 (almost nothing else ever gets to run).
		</para>
	</sect1>

	<sect1 id="reset">
	    <title>reset</title>

		<para>
		Usage: reset
		</para>

		<para>
		Resets the screen.
		</para>
	</sect1>

	<sect1 id="rm">
	    <title>rm</title>

		<para>
		Usage: rm [OPTION]... FILE...
		</para>

		<para>
		Remove (unlink) the FILE(s).  You may use '--' to
		indicate that all following arguments are non-options.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-f		Remove existing destinations, never prompt
			-r or -R	Remove the contents of directories recursively
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ rm -rf /tmp/foo
		</screen>
		</para>
	</sect1>

	<sect1 id="rmdir">
	    <title>rmdir</title>

		<para>
		Usage: rmdir DIRECTORY...
		</para>

		<para>
		Remove DIRECTORY(s) if they are empty.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ rmdir /tmp/foo
		</screen>
		</para>
	</sect1>

	<sect1 id="rmmod">
	    <title>rmmod</title>

		<para>
		Usage: rmmod [OPTION]... [MODULE]...
		</para>

		<para>
		Unload MODULE(s) from the kernel.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Try to remove all unused kernel modules
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ rmmod tulip
		</screen>
		</para>
	</sect1>

	<sect1 id="sed">
	    <title>sed</title>

		<para>
		Usage: sed [OPTION]... SCRIPT [FILE]...
		</para>

		<para>
		Allowed sed scripts come in the following form:
		</para>

		<para>
		<screen>
		ADDR [!] COMMAND
		</screen>
		</para>

		<para>
		ADDR can be:
		</para>

		<para>
		<screen>
			NUMBER    Match specified line number
			$         Match last line
			/REGEXP/  Match specified regexp
		</screen>
		</para>

		<para>
		! inverts the meaning of the match
		</para>

		<para>
		COMMAND can be:
		</para>

		<para>
		<screen>
			s/regexp/replacement/[igp]
				which attempt to match regexp against the pattern space
				and if successful replaces the matched portion with replacement.
			aTEXT
				which appends TEXT after the pattern space
		</screen>
		</para>

		<para>
		This version of sed matches full regular expressions.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-e	Add the script to the commands to be executed
			-n	Suppress automatic printing of pattern space
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
			bar
		</screen>
		</para>
	</sect1>

	<sect1 id="setkeycodes">
	    <title>setkeycodes</title>

		<para>
		Usage: setkeycodes SCANCODE KEYCODE ...
		</para>

		<para>
		Set entries into the kernel's scancode-to-keycode map,
		allowing unusual keyboards to generate usable keycodes.
		</para>

		<para>
		SCANCODE may be either xx or e0xx (hexadecimal), and
		KEYCODE is given in decimal.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ setkeycodes e030 127
		</screen>
		</para>
	</sect1>


	<sect1 id="sh">
	    <title>sh</title>

		<para>
		Usage: sh
		</para>

		<para>
		lash -- the BusyBox LAme SHell (command interpreter)
		</para>

		<para>
		This command does not yet have proper documentation.  
		</para>

		<para>
		Use lash just as you would use any other shell. It
		properly handles pipes, redirects, job control, can be
		used as the shell for scripts (#!/bin/sh), and has a
		sufficient set of builtins to do what is needed. It does
		not (yet) support Bourne Shell syntax. If you need
		things like ``if-then-else'', ``while'', and such, use
		ash or bash. If you just need a very simple and
		extremely small shell, this will do the job.
		</para>
	</sect1>

	<sect1 id="sleep">
	    <title>sleep</title>

		<para>
		Usage: sleep N
		</para>

		<para>
		Pause for N seconds.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ sleep 2
			[2 second delay results]
		</screen>
		</para>
	</sect1>

	<sect1 id="sort">
	    <title>sort</title>

		<para>
		Usage: sort [OPTION]... [FILE]...
		</para>

		<para>
		Sort lines of text in FILE(s).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-n	Compare numerically
			-r	Reverse after sorting
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo -e "e\nf\nb\nd\nc\na" | sort
			a
			b
			c
			d
			e
			f
		</screen>
		</para>
	</sect1>

	<sect1 id="swapoff">
	    <title>swapoff</title>

		<para>
		Usage: swapoff [OPTION] [DEVICE]
		</para>

		<para>
		Stop swapping virtual memory pages on DEVICE.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Stop swapping on all swap devices
		</screen>
		</para>
	</sect1>

	<sect1 id="swapon">
	    <title>swapon</title>

		<para>
		Usage: swapon [OPTION] [DEVICE]
		</para>

		<para>
		Start swapping virtual memory pages on the given device.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Start swapping on all swap devices
		</screen>
		</para>
	</sect1>

	<sect1 id="sync">
	    <title>sync</title>

		<para>
		Usage: sync
		</para>

		<para>
		Write all buffered filesystem blocks to disk.
		</para>
	</sect1>

	<sect1 id="syslogd">
	    <title>syslogd</title>

		<para>
		Usage: syslogd [OPTION]...
		</para>

		<para>
		Linux system and kernel (provides klogd) logging
		utility. Note that this version of syslogd/klogd ignores
		/etc/syslog.conf.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-m NUM	Interval between MARK lines (default=20min, 0=off)
			-n	Run as a foreground process
			-K	Do not start up the klogd process
			-O FILE	Use an alternate log file (default=/var/log/messages)
			-R HOST[:PORT] Log messages to HOST on PORT (default=514) over UDP.
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
		$ syslogd -R masterlog:514
		$ syslogd -R 192.168.1.1:601
		</screen>
		</para>
	</sect1>

	<sect1 id="tail">
	    <title>tail</title>

		<para>
		Usage: tail [OPTION] [FILE]...
		</para>

		<para>
		Print last 10 lines of each FILE to standard output.
		With more than one FILE, precede each with a header
		giving the file name. With no FILE, or when FILE is -,
		read stdin.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-n NUM	Print last NUM lines instead of last 10
			-f	Output data as the file grows.  This version
				of 'tail -f' supports only one file at a time.
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ tail -n 1 /etc/resolv.conf
			nameserver 10.0.0.1
		</screen>
		</para>
	</sect1>

	<sect1 id="tar">
	    <title>tar</title>

		<para>
		Usage: tar [MODE] [OPTION] [FILE]...
		</para>

		<para>
		
		</para>

		<para>
		MODE may be chosen from
		</para>

		<para>
		<screen>
			c	Create
			x	Extract
			t	List
		</screen>
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			f FILE			Use FILE for tarfile (or stdin if '-')
			O				Extract to stdout
			exclude FILE	File to exclude
			v				List files processed
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ zcat /tmp/tarball.tar.gz | tar -xf -
			$ tar -cf /tmp/tarball.tar /usr/local
		</screen>
		</para>
	</sect1>

	<sect1 id="tee">
	    <title>tee</title>

		<para>
		Usage: tee [OPTION]... [FILE]...
		</para>

		<para>
		Copy stdin to FILE(s), and also to stdout.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Append to the given FILEs, do not overwrite
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo "Hello" | tee /tmp/foo
			Hello
			$ cat /tmp/foo
			Hello
		</screen>
		</para>
	</sect1>

	<sect1 id="telnet">
	    <title>telnet</title>

		<para>
		Usage: telnet HOST [PORT]
		</para>

		<para>
		Establish interactive communication with another
		computer over a network using the TELNET protocol.
		</para>
	</sect1>

	<sect1 id="test">
	    <title>test, [</title>

		<para>
		Usage: test EXPRESSION
		</para>

		<para>
		<screen>
		   or: [ EXPRESSION ]

		<para>
		Check file types and compare values returning an exit
		code determined by the value of EXPRESSION.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ test 1 -eq 2
			$ echo $?
			1
			$ test 1 -eq 1
			$ echo $?
			0
			$ [ -d /etc ]
			$ echo $?
			0
			$ [ -d /junk ]
			$ echo $?
			1
		</screen>
		</para>
	</sect1>

	<sect1 id="touch">
	    <title>touch</title>

		<para>
		Usage: touch [OPTION]... FILE...
		</para>

		<para>
		Update the last-modified date on (or create) FILE(s).
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Do not create files
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ ls -l /tmp/foo
			/bin/ls: /tmp/foo: No such file or directory
			$ touch /tmp/foo
			$ ls -l /tmp/foo
			-rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
		</screen>
		</para>
	</sect1>

	<sect1 id="tr">
	    <title>tr</title>

		<para>
		Usage: tr [OPTION]... STRING1 [STRING2]
		</para>

		<para>
		Translate, squeeze, and/or delete characters from stdin,
		writing to stdout.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Take complement of STRING1
			-d	Delete input characters coded STRING1
			-s	Squeeze multiple output characters of STRING2 into one character
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo "gdkkn vnqkc" | tr [a-y] [b-z]
			hello world
		</screen>
		</para>
	</sect1>

	<sect1 id="true">
	    <title>true</title>

		<para>
		Usage: true
		</para>

		<para>
		Return an exit code of TRUE (1).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ true
			$ echo $?
			0
		</screen>
		</para>
	</sect1>

	<sect1 id="tty">
	    <title>tty</title>

		<para>
		Usage: tty
		</para>

		<para>
		Print the file name of the terminal connected to stdin.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-s	Print nothing, only return an exit status
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ tty
			/dev/tty2
		</screen>
		</para>
	</sect1>

	<sect1 id="umount">
	    <title>umount</title>

		<para>
		Usage: umount [OPTION]... DEVICE|DIRECTORY
		</para>

		<para>
		
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Unmount all file systems
			-r	Try to remount devices as read-only if mount is busy
			-f	Force filesystem umount (i.e. unreachable NFS server)
			-l	Do not free loop device (if a loop device has been used)
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ umount /dev/hdc1 
		</screen>
		</para>
	</sect1>

	<sect1 id="uname">
	    <title>uname</title>

		<para>
		Usage: uname [OPTION]...
		</para>

		<para>
		Print certain system information. With no OPTION, same
		as -s.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-a	Print all information
			-m	Print the machine (hardware) type
			-n	Print the machine's network node hostname
			-r	Print the operating system release
			-s	Print the operating system name
			-p	Print the host processor type
			-v	Print the operating system version
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ uname -a
			Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
		</screen>
		</para>
	</sect1>

	<sect1 id="uniq">
	    <title>uniq</title>

		<para>
		Usage: uniq [INPUT [OUTPUT]]
		</para>

		<para>
		Discard all but one of successive identical lines from
		INPUT (or stdin), writing to OUTPUT (or stdout).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ echo -e "a\na\nb\nc\nc\na" | sort | uniq
			a
			b
			c
		</screen>
		</para>
	</sect1>

	<sect1 id="update">
	    <title>update</title>

		<para>
		Usage: update [OPTION]...
		</para>

		<para>
		Periodically flush filesystem buffers.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-S	Force use of sync(2) instead of flushing
			-s SECS	Call sync this often (default 30)
			-f SECS	Flush some buffers this often (default 5)
		</screen>
		</para>
	</sect1>

	<sect1 id="uptime">
	    <title>uptime</title>

		<para>
		Usage: uptime
		</para>

		<para>
		Display how long the system has been running since boot.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ uptime
			  1:55pm  up  2:30, load average: 0.09, 0.04, 0.00
		</screen>
		</para>
	</sect1>

	<sect1 id="usleep">
	    <title>usleep</title>

		<para>
		Usage: usleep N
		</para>

		<para>
		Pause for N microseconds.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ usleep 1000000
			[pauses for 1 second]
		</screen>
		</para>
	</sect1>

	<sect1 id="uudecode">
	    <title>uudecode</title>

		<para>
		Usage: uudecode [OPTION] [FILE]
		</para>

		<para>
		Uudecode a uuencoded file.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-o FILE	Direct output to FILE
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ uudecode -o busybox busybox.uu
			$ ls -l busybox
			-rwxr-xr-x   1 ams      ams        245264 Jun  7 21:35 busybox
		</screen>
		</para>
	</sect1>

	<sect1 id="uuencode">
	    <title>uuencode</title>

		<para>
		Usage: uuencode [OPTION] [INFILE] OUTFILE
		</para>

		<para>
		Uuencode a file.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-m	Use base64 encoding as of RFC1521
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ uuencode busybox busybox
			begin 755 busybox
			M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&amp;
			.....
			$ uudecode busybox busybox &gt; busybox.uu
			$
		</screen>
		</para>
	</sect1>

	<sect1 id="wc">
	    <title>wc</title>

		<para>
		Usage: wc [OPTION]... [FILE]...
		</para>

		<para>
		Print line, word, and byte counts for each FILE, and a
		total line if more than one FILE is specified. With no
		FILE, read stdin.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-c	Print the byte counts
			-l	Print the newline counts
			-L	Print the length of the longest line
			-w	Print the word counts
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ wc /etc/passwd
			     31      46    1365 /etc/passwd
		</screen>
		</para>
	</sect1>

	<sect1 id="which">
	    <title>which</title>

		<para>
		Usage: which [COMMAND]...
		</para>

		<para>
		Locate COMMAND(s).
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ which login
			/bin/login
		</screen>
		</para>
	</sect1>

	<sect1 id="whoami">
	    <title>whoami</title>

		<para>
		Usage: whoami
		</para>

		<para>
		Print the user name associated with the current
		effective user id.
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
			$ whoami
			andersen
		</screen>
		</para>
	</sect1>

	<sect1 id="yes">
	    <title>yes</title>

		<para>
		Usage: yes [STRING]...
		</para>

		<para>
		Repeatedly output a line with all specified STRING(s),
		or `y'.
		</para>
	</sect1>

	<sect1 id="zcat">
	    <title>zcat</title>

		<para>
		Usage: zcat [OPTION]... FILE
		</para>

		<para>
		Uncompress FILE (or stdin if FILE is '-') to stdout.  
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-t	Test compressed file integrity
		</screen>
		</para>

		<para>
		Example:
		</para>

		<para>
		<screen>
		</screen>
		</para>
	</sect1>
  </chapter>

  <chapter id="LIBC-NSS">
    <title>LIBC NSS</title>

	<para>
	GNU Libc uses the Name Service Switch (NSS) to configure the
	behavior of the C library for the local environment, and to
	configure how it reads system data, such as passwords and group
	information. BusyBox has made it Policy that it will never use
	NSS, and will never use libc calls that make use of NSS. This
	allows you to run an embedded system without the need for
	installing an /etc/nsswitch.conf file and without /lib/libnss_*
	libraries installed.
	</para>

	<para>
	If you are using a system that is using a remote LDAP server for
	authentication via GNU libc NSS, and you want to use BusyBox,
	then you will need to adjust the BusyBox source. Chances are
	though, that if you have enough space to install of that stuff
	on your system, then you probably want the full GNU utilities.
	</para>
  </chapter>

  <chapter id="SEE-ALSO">
    <title>SEE ALSO</title>

	<para>
	<literal>textutils(1),</literal>
	<literal>shellutils(1),</literal>
	etc...
	</para>
  </chapter>

  <chapter id="MAINTAINER">
    <title>MAINTAINER</title>

	<para>
	Erik Andersen &lt;andersee@debian.org&gt; &lt;andersen@lineo.com&gt;
	</para>
  </chapter>

  <chapter id="AUTHORS">
    <title>AUTHORS</title>

	<para>
	The following people have contributed code to BusyBox whether
	they know it or not.
	</para>

	<para>
	Erik Andersen &lt;andersee@debian.org&gt;
	</para>

	<para>
	John Beppu &lt;beppu@lineo.com&gt;
	</para>

	<para>
	Brian Candler &lt;B.Candler@pobox.com&gt;
	</para>

	<para>
	Randolph Chung &lt;tausq@debian.org&gt;
	</para>

	<para>
	Dave Cinege &lt;dcinege@psychosis.com&gt;	
	</para>

	<para>
	Karl M. Hegbloom &lt;karlheg@debian.org&gt;
	</para>

	<para>
	John Lombardo &lt;john@deltanet.com&gt;	
	</para>

	<para>
	Glenn McGrath &lt;bug1@netconnect.com.au&gt;
	</para>

	<para>
	Bruce Perens &lt;bruce@perens.com&gt;
	</para>

	<para>
	Pavel Roskin &lt;proski@gnu.org&gt;
	</para>

	<para>
	Linus Torvalds &lt;torvalds@transmeta.com&gt;
	</para>

	<para>
	Charles P. Wright &lt;cpwright@villagenet.com&gt;
	</para>

	<para>
	Enrique Zanardi &lt;ezanardi@ull.es&gt;
	</para>
  </chapter>
</book>    <!-- End of the book -->
