fixup cut-n-paste problem
[oweals/busybox.git] / docs / busybox_header.pod
index 5b64cd7d7a55bd59051944a90b1f8bc8777feec9..c531bad8882494687a1a6e5b890edd41e73f1052 100644 (file)
@@ -14,59 +14,98 @@ BusyBox - The Swiss Army Knife of Embedded Linux
 
 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. 
+you usually find in GNU coreutils, util-linux, etc. 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.
 
 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).
+features) at compile time. This makes it easy to customize your embedded
+systems. To create a working system, just add /dev, /etc, and a Linux kernel.
+BusyBox provides a fairly complete POSIX environment for any small or embedded
+system.
+
+BusyBox is extremely configurable.  This allows you to include only the
+components you need, thereby reducing binary size. Run 'make config' or 'make
+menuconfig' to select the functionality that you wish to enable.  The run
+'make' to compile BusyBox using your configuration.
+
+After the compile has finished, you should use 'make install' to install
+BusyBox.  This will install the '/bin/busybox' binary, and will also create
+symlinks pointing to the '/bin/busybox' binary for each utility that you
+compile into BusyBox.  By default, 'make install' will place these symlinks
+into the './_install' directory, unless you have defined 'PREFIX', thereby
+specifying some alternative location (i.e., 'make PREFIX=/tmp/foo install').
+If you wish to install using hardlinks, rather than the default of using
+symlinks, you can use 'make PREFIX=/tmp/foo install-hardlinks' instead.
 
 =head1 USAGE
 
-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.
+BusyBox is a multi-call binary.  A multi-call binary is an executable program
+that performs the same job as more than one utility program.  That means there
+is just a single BusyBox binary, but that single binary acts like a large
+number of utilities.  This allows BusyBox to be smaller since all the built-in
+utility programs (we call them applets) can share code for many common operations.
+
+You can also invoke BusyBox by issuing a command as an argument on the
+command line.  For example, entering
+
+       /bin/busybox ls
+
+will also cause BusyBox to behave as 'ls'.
+
+Of course, adding '/bin/busybox' into every command would be painful.  So most
+people will invoke BusyBox using links to the BusyBox binary.
 
 For example, entering
 
-       ln -s ./BusyBox ls
+       ln -s /bin/busybox ls
        ./ls
 
 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
-into BusyBox). 
+into BusyBox).  Generally speaking, you should never need to make all these
+links yourself, as the BusyBox build system will do this for you when you run
+the 'make install' command.
 
-You can also invoke BusyBox by issuing the command as an argument on the
-command line.  For example, entering
-
-       ./BusyBox ls
-
-will also cause BusyBox to behave as 'ls'. 
+If you invoke BusyBox with no arguments, it will provide you with a list of the
+applets that have been compiled into your BusyBox binary.
 
 =head1 COMMON OPTIONS
 
-Most BusyBox commands support the B<-h> option to provide a
-terse runtime description of their behavior. 
+Most BusyBox commands support the B<--help> argument to provide a terse runtime
+description of their behavior.  If the CONFIG_FEATURE_VERBOSE_USAGE option has
+been enabled, more detailed usage information will also be available.
 
 =head1 COMMANDS
 
 Currently defined functions include:
 
-adjtimex, ar, basename, busybox, cat, chgrp, chmod, chown, chroot, chvt, clear,
-cmp, cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dos2unix, dpkg,
-dpkg-deb, du, dumpkmap, dutmp, echo, expr, false, fbset, fdflush, find, free,
-freeramdisk, fsck.minix, getopt, grep, gunzip, gzip, halt, head, hostid,
-hostname, id, ifconfig, init, insmod, kill, killall, klogd, length, ln,
-loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, md5sum,
-mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
-nslookup, ping, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, reboot,
-renice, reset, rm, rmdir, rmmod, route, rpmunpack, sed, setkeycodes, sh, sleep,
-sort, stty, swapoff, swapon, sync, syslogd, tail, tar, tee, telnet, test, tftp,
-touch, tr, true, tty, umount, uname, uniq, unix2dos, update, uptime, usleep,
-uudecode, uuencode, watchdog, wc, wget, which, whoami, xargs, yes, zcat, [
+       addgroup, adduser, adjtimex, ar, arping, ash, awk, basename, bunzip2,
+       busybox, bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp,
+       cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
+       devfsd, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap,
+       dumpleases, echo, egrep, env, expr, false, fbset, fdflush, fdformat, fdisk,
+       fgrep, find, fold, free, freeramdisk, fsck.minix, ftpget, ftpput, getopt,
+       getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname,
+       httpd, hush, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod,
+       install, ip, ipcalc, iplink, iproute, iptunnel, kill, killall, klogd, lash,
+       last, length, linuxrc, ln, loadfont, loadkmap, logger, login, logname,
+       logread, losetup, ls, lsmod, makedevs, md5sum, mesg, mkdir, mkfifo,
+       mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, msh, mt, mv,
+       nameif, nc, netstat, nslookup, od, openvt, passwd, patch, pidof, ping,
+       ping6, pipe_progress, pivot_root, poweroff, printf, ps, pwd, rdate,
+       readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, rpm,
+       rpm2cpio, run-parts, rx, sed, seq, setkeycodes, sha1sum, sleep, sort,
+       start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, sync,
+       sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, tftp, time, top,
+       touch, tr, traceroute, true, tty, udhcpc, udhcpd, umount, uname,
+       uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode,
+       vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs,
+       yes, zcat
+
+=head1 COMMAND DESCRIPTIONS
 
 =over 4
 
+