<!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, 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, rm, rmdir, rmmod, sed,
		setkeycodes, sfdisk, 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 [optxvV] archive [filenames]
		</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>
		Strips 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>
		Concatenates <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>
	    Changes 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>
		Changes the owner and/or group of each FILE to OWNER and/or GROUP.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Changes 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>
		Changes the foreground virtual terminal to /dev/ttyN
		</para>
	</sect1>




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

		<para>
		Usage: clear
		</para>

		<para>
		Clears 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>
		Copies SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
		DIRECTORY.
		</para>

		<para>
		Options:
		</para>

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


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

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

		<para>
		Prints 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      Only output Lines if the include DELIM
				-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>
		Displays the current time in the given FORMAT, or sets the system date.
		</para>

		<para>
		Options:
		</para>

		<para>
		<screen>
			-R      Outputs RFC-822 compliant date string
			-s      Sets time described by STRING
			-u      Prints or sets Coordinated Universal Time
		</screen>
		</para>

		<para>
		Example:
		</para>

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



<!-- This is where I have stopped formatting stuff -->


</listitem></varlistentry>
<varlistentry><term><emphasis>dc

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>dd

</emphasis></term>
<listitem><para></para>

<para>
Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]


</para>

<para>
Copy a file, converting and formatting according to 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>

<para>
-------------------------------

</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>deallocvt

</emphasis></term>
<listitem><para></para>

<para>
Usage: deallocvt N


</para>

<para>
Deallocates unused virtual terminal /dev/ttyN


</para>

<para>
-------------------------------



</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>df

</emphasis></term>
<listitem><para></para>

<para>
Usage: df [filesystem ...]


</para>

<para>
Prints 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>dirname

</emphasis></term>
<listitem><para></para>

<para>
Usage: dirname NAME


</para>

<para>
Strip non-directory suffix from file name


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>dmesg

</emphasis></term>
<listitem><para></para>

<para>
Usage: dmesg [<emphasis>-c</emphasis>] [<emphasis>-n</emphasis> level] [<emphasis>-s</emphasis> bufsize]


</para>

<para>
Print or controls the kernel ring buffer.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>du

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Summarize disk space used for each FILE and/or directory. Disk space is
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>
        $ ./BusyBox 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>dutmp

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>echo

</emphasis></term>
<listitem><para></para>

<para>
Usage: echo [-neE] [ARG ...]


</para>

<para>
Prints the specified ARGs to stdout


</para>

<para>
Options:


</para>

<para>
<screen>
        -n      suppress trailing newline
        -e      interpret backslash-escaped characters (i.e. \t=tab etc)
        -E      disable interpretation of backslash-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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>false

</emphasis></term>
<listitem><para></para>

<para>
Returns an exit code of FALSE (1)


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>fbset

</emphasis></term>
<listitem><para></para>

<para>
Usage: fbset [options] [mode]


</para>

<para>
Show and modify frame buffer device settings


</para>

<para>
Options:


</para>

<para>
<screen>
        -h
        -fb
        -db
        -a
        -i
        -g
        -t
        -accel
        -hsync
        -vsync
        -laced
        -double
</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>fdflush

</emphasis></term>
<listitem><para></para>

<para>
Usage: fdflush device


</para>

<para>
Force floppy disk drive to detect disk change


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>find

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>free

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>freeramdisk

</emphasis></term>
<listitem><para></para>

<para>
Usage: freeramdisk DEVICE


</para>

<para>
Frees all memory used by the specified ramdisk.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>fsck.minix

</emphasis></term>
<listitem><para></para>

<para>
Usage: fsck.minix [<emphasis>-larvsmf</emphasis>] /dev/name


</para>

<para>
Performs a consistency check for MINIX filesystems.


</para>

<para>
OPTIONS:


</para>

<para>
<screen>
        -l      Lists all filenames
        -r      Perform interactive repairs
        -a      Perform automatic repairs
        -v      verbose
        -s      Outputs super-block information
        -m      Activates MINIX-like "mode not cleared" warnings
        -f      Force file system check.
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>grep

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Search for PATTERN in each FILE or standard input.


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>gunzip

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Uncompress FILE (or standard input 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>gzip

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Compress FILE with maximum compression. When FILE is '-', reads standard
input. Implies <emphasis>-c</emphasis>.


</para>

<para>
Options:


</para>

<para>
<screen>
        -c      Write output to standard output instead of FILE.gz
</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>halt

</emphasis></term>
<listitem><para></para>

<para>
Usage: halt


</para>

<para>
This command halts the system.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>head

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>hostid

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>hostname

</emphasis></term>
<listitem><para></para>

<para>
Usage: hostname [OPTION] {hostname | <emphasis>-F</emphasis> file}


</para>

<para>
Get or set the hostname or DNS domain name. If a hostname is given (or a
file with the <emphasis>-F</emphasis> 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>id

</emphasis></term>
<listitem><para></para>

<para>
Print information for USERNAME or the current user


</para>

<para>
Options:


</para>

<para>
<screen>
        -g      prints only the group ID
        -u      prints only the user ID
        -r      prints 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>init

</emphasis></term>
<listitem><para></para>

<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>

<para>
<screen>
        &lt;id&gt;: 
</screen>


</para>

<para>
<screen>
                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.
</screen>


</para>

<para>
<screen>
        &lt;runlevels&gt;: 
</screen>


</para>

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


</para>

<para>
<screen>
        &lt;action&gt;: 
</screen>


</para>

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


</para>

<para>
<screen>
                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.
</screen>


</para>

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


</para>

<para>
<screen>
        &lt;process&gt;: 
</screen>


</para>

<para>
<screen>
                Specifies the process to be executed and it's command line.
</screen>


</para>

<para>
Example /etc/inittab file:


</para>

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


</para>

<para>
<screen>
        # /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
</screen>


</para>

<para>
<screen>
        # /sbin/getty invocations for selected ttys
        #
        tty4::respawn:/sbin/getty 38400 tty4
        tty5::respawn:/sbin/getty 38400 tty5
</screen>


</para>

<para>
<screen>
        # 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
</screen>


</para>

<para>
<screen>
        # 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>insmod

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Loads the specified kernel modules 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>kill

</emphasis></term>
<listitem><para></para>

<para>
Usage: kill [<emphasis>-signal</emphasis>] process-id [process-id ...]


</para>

<para>
Send a signal (default is SIGTERM) to the specified
<literal>process(es).</literal>


</para>

<para>
Options:


</para>

<para>
<screen>
        -l      List all signal names and numbers.
</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>killall

</emphasis></term>
<listitem><para></para>

<para>
Usage: killall [<emphasis>-signal</emphasis>] process-name [process-name ...]


</para>

<para>
Send a signal (default is SIGTERM) to the specified
<literal>process(es).</literal>


</para>

<para>
Options:


</para>

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


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>length

</emphasis></term>
<listitem><para></para>

<para>
Usage: length STRING


</para>

<para>
Prints out the length of the specified STRING.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>ln

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Create a link named LINK_NAME 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 links instead of hard links
        -f      remove existing destination files
</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>loadacm

</emphasis></term>
<listitem><para></para>

<para>
Usage: loadacm


</para>

<para>
Loads an acm from standard input.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>loadfont

</emphasis></term>
<listitem><para></para>

<para>
Usage: loadfont


</para>

<para>
Loads a console font from standard input.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>loadkmap

</emphasis></term>
<listitem><para></para>

<para>
Usage: loadkmap


</para>

<para>
Loads a binary keyboard translation table from standard input.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>logger

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>logname

</emphasis></term>
<listitem><para></para>

<para>
Usage: logname


</para>

<para>
Print the name of the current user.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>ls

</emphasis></term>
<listitem><para></para>

<para>
Usage: ls [<emphasis>-1acdelnpuxACFR</emphasis>] [filenames...]


</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>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>lsmod

</emphasis></term>
<listitem><para></para>

<para>
Usage: lsmod


</para>

<para>
Shows a list of all currently loaded kernel modules.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>makedevs

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Creates a range of block or character special files


</para>

<para>
TYPEs include:


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>md5sum

</emphasis></term>
<listitem><para></para>

<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
        busybox: OK
        ^D
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mkdir

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Create the <literal>DIRECTORY(ies),</literal> 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mkfifo

</emphasis></term>
<listitem><para></para>

<para>
Usage: mkfifo [OPTIONS] name


</para>

<para>
Creates a named pipe (identical to 'mknod name p')


</para>

<para>
Options:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mkfs.minix

</emphasis></term>
<listitem><para></para>

<para>
Usage: mkfs.minix [<emphasis>-c</emphasis> | <emphasis>-l</emphasis> filename] [<emphasis>-nXX</emphasis>] [<emphasis>-iXX</emphasis>] /dev/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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mknod

</emphasis></term>
<listitem><para></para>

<para>
Usage: mknod [OPTIONS] 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>
TYPEs include: 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.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mkswap

</emphasis></term>
<listitem><para></para>

<para>
Usage: mkswap [<emphasis>-c</emphasis>] [<emphasis>-v0</emphasis>|<emphasis>-v1</emphasis>] device [block-count]


</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).
        block-count     Number of block to use (default is entire partition).
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mktemp

</emphasis></term>
<listitem><para></para>

<para>
Usage: mktemp [<emphasis>-q</emphasis>] 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>more

</emphasis></term>
<listitem><para></para>

<para>
Usage: more [file ...]


</para>

<para>
More is a filter for paging through text one screenful at a time.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mount

</emphasis></term>
<listitem><para></para>

<para>
Usage: mount [flags] mount [flags] device directory [<emphasis>-o</emphasis> options,more-options]


</para>

<para>
Flags:


</para>

<para>
<screen>
        -a:             Mount all file systems in fstab.
        -o option:      One of many filesystem options, listed below.
        -r:             Mount the filesystem read-only.
        -t fs-type:     Specify the filesystem type.
        -w:             Mount for reading and writing (default).
</screen>


</para>

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


</para>

<para>
<screen>
        async/sync:     Writes are asynchronous / synchronous.
        atime/noatime:  Enable / disable updates to inode access times.
        dev/nodev:      Allow use of special device files / disallow them.
        exec/noexec:    Allow use of executable files / disallow them.
        loop:           Mounts a file via loop device.
        suid/nosuid:    Allow set-user-id-root programs / disallow them.
        remount:        Re-mount a currently-mounted filesystem, changing its flags.
        ro/rw:          Mount for read-only / read-write.
        There are EVEN MORE flags that are specific to each filesystem.
        You'll have to see the written documentation for those.
</screen>


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mt

</emphasis></term>
<listitem><para></para>

<para>
Usage: mt [<emphasis>-f</emphasis> device] opcode value


</para>

<para>
Control magnetic tape drive operation


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mv

</emphasis></term>
<listitem><para></para>

<para>
Usage: mv SOURCE DEST


</para>

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


</para>

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


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>nc

</emphasis></term>
<listitem><para></para>

<para>
Usage: nc [IP] [port]


</para>

<para>
Netcat opens a pipe to IP: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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>nslookup

</emphasis></term>
<listitem><para></para>

<para>
Usage: nslookup [HOST]


</para>

<para>
Queries the nameserver for the IP address of the given HOST


</para>

<para>
Example:


</para>

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


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>ping

</emphasis></term>
<listitem><para></para>

<para>
Usage: ping [OPTION]... host


</para>

<para>
Send ICMP ECHO_REQUEST packets to network hosts.


</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.
Example:
</screen>


</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
</screen>


</para>

<para>
<screen>
        --- 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>poweroff

</emphasis></term>
<listitem><para></para>

<para>
Shuts down the system, and requests that the kernel turn off power upon
halting.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>printf

</emphasis></term>
<listitem><para></para>

<para>
Usage: printf format [argument...]


</para>

<para>
Formats and prints 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>ps

</emphasis></term>
<listitem><para></para>

<para>
Usage: ps


</para>

<para>
Report process status


</para>

<para>
This version of ps accepts no options.


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>pwd

</emphasis></term>
<listitem><para></para>

<para>
Prints the full filename of the current working directory.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>reboot

</emphasis></term>
<listitem><para></para>

<para>
Instructs the kernel to reboot the system.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>rm

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Remove (unlink) the <literal>FILE(s).</literal> 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>rmdir

</emphasis></term>
<listitem><para></para>

<para>
Usage: rmdir [OPTION]... DIRECTORY...


</para>

<para>
Remove the <literal>DIRECTORY(ies),</literal> if they are empty.


</para>

<para>
Example:


</para>

<para>
<screen>
        # rmdir /tmp/foo
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>rmmod

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Unloads the specified kernel modules 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sed

</emphasis></term>
<listitem><para></para>

<para>
Usage: sed [<emphasis>-n</emphasis>] <emphasis>-e</emphasis> script [file...]


</para>

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


</para>

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


</para>

<para>
<screen>
        where address ADDR can be:
          NUMBER    Match specified line number
          $         Match last line
          /REGEXP/  Match specified regexp
          (! inverts the meaning of the match)
</screen>


</para>

<para>
<screen>
        and COMMAND can be:
          s/regexp/replacement/[igp]
                 which attempt to match regexp against the pattern space
                 and if successful replaces the matched portion with replacement.
</screen>


</para>

<para>
<screen>
          aTEXT
                 which appends TEXT after the pattern space
</screen>


</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>
This version of sed matches full regular expressions.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>setkeycodes

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sfdisk

</emphasis></term>
<listitem><para></para>

<para>
Usage: sfdisk [options] device ...


</para>

<para>
device: something like /dev/hda or /dev/sda


</para>

<para>
useful options:


</para>

<para>
<screen>
    -s [or --show-size]: list size of a partition
    -c [or --id]:        print or change partition Id
    -l [or --list]:      list partitions of each device
    -d [or --dump]:      idem, but in a format suitable for later input
    -i [or --increment]: number cylinders etc. from 1 instead of from 0
    -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB
    -T [or --list-types]:list the known partition types
    -D [or --DOS]:       for DOS-compatibility: waste a little space
    -R [or --re-read]:   make kernel reread partition table
    -N# :                change only the partition with number #
    -n :                 do not actually write to disk
    -O file :            save the sectors that will be overwritten to file
    -I file :            restore these sectors again
    -v [or --version]:   print version
    -? [or --help]:      print this message
</screen>


</para>

<para>
dangerous options:


</para>

<para>
<screen>
    -g [or --show-geometry]: print the kernel's idea of the geometry
    -x [or --show-extended]: also list extended partitions on output
</screen>


</para>

<para>
<screen>
                             or expect descriptors for them on input
    -L  [or --Linux]:      do not complain about things irrelevant for Linux
    -q  [or --quiet]:      suppress warning messages
    You can override the detected geometry using:
    -C# [or --cylinders #]:set the number of cylinders to use
    -H# [or --heads #]:    set the number of heads to use
    -S# [or --sectors #]:  set the number of sectors to use
</screen>


</para>

<para>
You can disable all consistency checking with:


</para>

<para>
<screen>
    -f  [or --force]:      do what I say, even if it is stupid
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sh

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sleep

</emphasis></term>
<listitem><para></para>

<para>
Usage: sleep N


</para>

<para>
Pause for N seconds.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sort

</emphasis></term>
<listitem><para></para>

<para>
Usage: sort [<emphasis>-n</emphasis>] [<emphasis>-r</emphasis>] [FILE]...


</para>

<para>
Sorts lines of text in the specified files


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>swapoff

</emphasis></term>
<listitem><para></para>

<para>
Usage: swapoff [OPTION] [device]


</para>

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


</para>

<para>
Options:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>swapon

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>sync

</emphasis></term>
<listitem><para></para>

<para>
Usage: sync


</para>

<para>
Write all buffered filesystem blocks to disk.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>syslogd

</emphasis></term>
<listitem><para></para>

<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)
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>tail

</emphasis></term>
<listitem><para></para>

<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 standard input.


</para>

<para>
Options:


</para>

<para>
<screen>
        -n NUM          Print last NUM lines instead of first 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>tar

</emphasis></term>
<listitem><para></para>

<para>
Usage: tar -[cxtvO] [<emphasis>--exclude</emphasis> File] [<emphasis>-f</emphasis> tarFile] [FILE] ...


</para>

<para>
Create, extract, or list files from a tar file. Note that this version of
tar treats hard links as separate files.


</para>

<para>
Main operation mode:


</para>

<para>
<screen>
        c               create
        x               extract
        t               list
</screen>


</para>

<para>
File selection:


</para>

<para>
<screen>
        f               name of tarfile or "-" for stdin
        O               extract to stdout
        --exclude       file to exclude
</screen>


</para>

<para>
Informative output:


</para>

<para>
<screen>
        v               verbosely 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>tee

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Copy standard input to each FILE, and also to standard output.


</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
        $ cat /tmp/foo
        Hello
</screen>


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>telnet

</emphasis></term>
<listitem><para></para>

<para>
Usage: telnet host [port]


</para>

<para>
Telnet is used to establish interactive communication with another computer
over a network using the TELNET protocol.


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>test, [

</emphasis></term>
<listitem><para></para>

<para>
Usage: test EXPRESSION or [ EXPRESSION ]


</para>

<para>
Checks file types and compares 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>touch

</emphasis></term>
<listitem><para></para>

<para>
Usage: touch [<emphasis>-c</emphasis>] file [file ...]


</para>

<para>
Update the last-modified date on (or create) the selected file[s].


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>tr

</emphasis></term>
<listitem><para></para>

<para>
Usage: tr [-cds] STRING1 [STRING2]


</para>

<para>
Translate, squeeze, and/or delete characters from standard input, writing
to standard output.


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>true

</emphasis></term>
<listitem><para></para>

<para>
Returns an exit code of TRUE (0)


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>tty

</emphasis></term>
<listitem><para></para>

<para>
Usage: tty


</para>

<para>
Print the file name of the terminal connected to standard input.


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>umount

</emphasis></term>
<listitem><para></para>

<para>
Usage: umount [flags] filesystem|directory


</para>

<para>
Flags:


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>uname

</emphasis></term>
<listitem><para></para>

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


</para>

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


</para>

<para>
Options:


</para>

<para>
<screen>
        -a      print all information
        -m      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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>uniq

</emphasis></term>
<listitem><para></para>

<para>
Usage: uniq [OPTION]... [INPUT [OUTPUT]]


</para>

<para>
Discard all but one of successive identical lines from INPUT (or standard
input), writing to OUTPUT (or standard output).


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>update

</emphasis></term>
<listitem><para></para>

<para>
Usage: update [options]


</para>

<para>
Periodically flushes 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>uptime

</emphasis></term>
<listitem><para></para>

<para>
Usage: uptime


</para>

<para>
Tells 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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>usleep

</emphasis></term>
<listitem><para></para>

<para>
Usage: usleep N


</para>

<para>
Pauses for N microseconds.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>uudecode

</emphasis></term>
<listitem><para></para>

<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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>uuencode

</emphasis></term>
<listitem><para></para>

<para>
Usage: uuencode [OPTION] [INFILE] REMOTEFILE


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>wc

</emphasis></term>
<listitem><para></para>

<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 standard input.


</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>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>which

</emphasis></term>
<listitem><para></para>

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


</para>

<para>
Locates a COMMAND.


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>whoami

</emphasis></term>
<listitem><para></para>

<para>
Usage: whoami


</para>

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


</para>

<para>
Example:


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>yes

</emphasis></term>
<listitem><para></para>

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


</para>

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


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry>
<varlistentry><term><emphasis>zcat

</emphasis></term>
<listitem><para></para>

<para>
This is essentially an alias for invoking ``gunzip <emphasis>-c</emphasis>'', where it decompresses the file in question and send the output to
stdout. 


</para>

<para>
-------------------------------


</para>

</listitem></varlistentry></variablelist>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-6"><title>LIBC NSS

</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>


<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 and 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 and /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>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-7"><title>SEE ALSO

</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>


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


</para>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-8"><title>MAINTAINER

</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>


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


</para>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-9"><title>AUTHORS

</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>


<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>

</sect1>

</chapter>


</book>    <!-- End of the book -->
