=head1 SYNTAX
- BusyBox <function> [arguments...] # or
+ busybox <applet> [arguments...] # or
- <function> [arguments...] # if symlinked
+ <applet> [arguments...] # if symlinked
=head1 DESCRIPTION
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. Then 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, in the target directory
+specified by CONFIG_PREFIX. CONFIG_PREFIX can be set when configuring BusyBox,
+or you can specify an alternative location at install time (i.e., with a
+command line like 'make CONFIG_PREFIX=/tmp/foo install'). If you enabled
+any applet installation scheme (either as symlinks or hardlinks), these will
+also be installed in the location pointed to by CONFIG_PREFIX.
=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 applets 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:
-
- 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, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap,
- dumpleases, dutmp, echo, egrep, env, expr, false, fbset, fdflush,
- fdformat, 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, ip, ipcalc, iplink, iproute, iptunnel, kill,
- killall, klogd, lash, length, linuxrc, ln, loadfont, loadkmap, logger,
- login, logname, logread, losetup, ls, lsmod, makedevs, md5sum, mesg,
- minit, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe,
- more, mount, msh, msvc, mt, mv, nameif, nc, netstat, nslookup, od,
- openvt, passwd, patch, pidfilehack, pidof, ping, ping6, pivot_root,
- poweroff, printf, ps, pwd, rdate, readlink, realpath, reboot, renice,
- reset, rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, sed,
- setkeycodes, sha1sum, sleep, sort, start-stop-daemon, strings, stty,
- su, sulogin, swapoff, swapon, sync, 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, [
-
-=over 4
-
-
+Currently available applets include: