467 lines
13 KiB
Plaintext
467 lines
13 KiB
Plaintext
NAME
|
|
BusyBox - The Swiss Army Knife of Embedded Linux
|
|
|
|
SYNTAX
|
|
busybox <applet> [arguments...] # or
|
|
|
|
<applet> [arguments...] # if symlinked
|
|
|
|
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 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 /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.
|
|
|
|
USAGE
|
|
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 /bin/busybox ls
|
|
./ls
|
|
|
|
will cause BusyBox to behave as 'ls' (if the 'ls' command has been
|
|
compiled 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.
|
|
|
|
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.
|
|
|
|
COMMON OPTIONS
|
|
Most BusyBox applets support the --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.
|
|
|
|
COMMANDS
|
|
Currently available applets include:
|
|
|
|
[, [[, arping, ash, awk, basename, blkid, cat, chmod, cp, cut, date,
|
|
dd, df, echo, egrep, env, fdisk, fgrep, find, free, getty, grep,
|
|
gzip, halt, head, ifconfig, init, insmod, ipcrm, ipcs, kill,
|
|
killall, linuxrc, ln, logger, login, ls, lsmod, mkdir, mount,
|
|
netstat, pidof, ping, ping6, poweroff, ps, reboot, renice, rm,
|
|
rmmod, route, sed, sh, sleep, tail, tar, taskset, telnet, telnetd,
|
|
test, tftp, top, touch, tr, umount, uname, vconfig
|
|
|
|
COMMAND DESCRIPTIONS
|
|
arping
|
|
arping [-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP
|
|
|
|
ash ash [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE
|
|
[ARGS]]
|
|
|
|
awk awk [OPTIONS] [AWK_PROGRAM] [FILE]...
|
|
|
|
basename
|
|
basename FILE [SUFFIX]
|
|
|
|
blkid
|
|
blkid [BLOCKDEV]...
|
|
|
|
cat cat [FILE]...
|
|
|
|
chmod
|
|
chmod [-R] MODE[,MODE]... FILE...
|
|
|
|
cp cp [OPTIONS] SOURCE... DEST
|
|
|
|
cut cut [OPTIONS] [FILE]...
|
|
|
|
date
|
|
date [OPTIONS] [+FMT] [TIME]
|
|
|
|
dd dd [if=FILE] [of=FILE] [ibs=N] [obs=N] [bs=N] [count=N] [skip=N]
|
|
[seek=N] [conv=notrunc|noerror|sync|fsync]
|
|
|
|
df df [-PkT] [FILESYSTEM]...
|
|
|
|
echo
|
|
echo [ARG]...
|
|
|
|
env env [-iu] [-] [name=value]... [PROG ARGS]
|
|
|
|
fdisk
|
|
fdisk [-ul] [-C CYLINDERS] [-H HEADS] [-S SECTORS] [-b SSZ] DISK
|
|
|
|
find
|
|
find [-HL] [PATH]... [OPTIONS] [ACTIONS]
|
|
|
|
free
|
|
free
|
|
|
|
getty
|
|
getty [OPTIONS] BAUD_RATE[,BAUD_RATE]... TTY [TERMTYPE]
|
|
|
|
grep
|
|
grep [-HhnlLoqvsriwFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f
|
|
FILE [FILE]...
|
|
|
|
gzip
|
|
gzip [-cfd] [FILE]...
|
|
|
|
halt
|
|
halt [-d DELAY] [-n] [-f]
|
|
|
|
head
|
|
head [OPTIONS] [FILE]...
|
|
|
|
ifconfig
|
|
ifconfig [-a] interface [address]
|
|
|
|
init
|
|
init
|
|
|
|
insmod
|
|
insmod FILE [SYMBOL=VALUE]...
|
|
|
|
ipcrm
|
|
ipcrm [-MQS key] [-mqs id]
|
|
|
|
ipcs
|
|
ipcs [[-smq] -i shmid] | [[-asmq] [-tcplu]]
|
|
|
|
kill
|
|
kill [-l] [-SIG] PID...
|
|
|
|
killall
|
|
killall [-l] [-q] [-SIG] PROCESS_NAME...
|
|
|
|
ln ln [OPTIONS] TARGET... LINK|DIR
|
|
|
|
logger
|
|
logger [OPTIONS] [MESSAGE]
|
|
|
|
login
|
|
login [-p] [-h HOST] [[-f] USER]
|
|
|
|
ls ls [-1AaCxdLHlins] [FILE]...
|
|
|
|
lsmod
|
|
lsmod
|
|
|
|
mkdir
|
|
mkdir [OPTIONS] DIRECTORY...
|
|
|
|
mount
|
|
mount [OPTIONS] [-o OPTS] DEVICE NODE
|
|
|
|
netstat
|
|
netstat [-ral] [-tuwx] [-enWp]
|
|
|
|
pidof
|
|
pidof [NAME]...
|
|
|
|
ping
|
|
ping [OPTIONS] HOST
|
|
|
|
ping6
|
|
ping6 [OPTIONS] HOST
|
|
|
|
poweroff
|
|
poweroff [-d DELAY] [-n] [-f]
|
|
|
|
ps ps
|
|
|
|
reboot
|
|
reboot [-d DELAY] [-n] [-f]
|
|
|
|
renice
|
|
renice {{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]
|
|
|
|
rm rm [-irf] FILE...
|
|
|
|
rmmod
|
|
rmmod [-wfa] [MODULE]...
|
|
|
|
route
|
|
route [{add|del|delete}]
|
|
|
|
sed sed [-inrE] [-f FILE]... [-e CMD]... [FILE]... or: sed [-inrE] CMD
|
|
[FILE]...
|
|
|
|
sh sh [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE
|
|
[ARGS]]
|
|
|
|
sleep
|
|
sleep N
|
|
|
|
tail
|
|
tail [OPTIONS] [FILE]...
|
|
|
|
tar tar -[cxtzhmvO] [-X FILE] [-T FILE] [-f TARFILE] [-C DIR] [FILE]...
|
|
|
|
taskset
|
|
taskset [-p] [MASK] [PID | PROG ARGS]
|
|
|
|
telnet
|
|
telnet HOST [PORT]
|
|
|
|
telnetd
|
|
telnetd [OPTIONS]
|
|
|
|
test
|
|
test EXPRESSION ]
|
|
|
|
tftp
|
|
tftp [OPTIONS] HOST [PORT]
|
|
|
|
top top [-b] [-nCOUNT] [-dSECONDS] [-m]
|
|
|
|
touch
|
|
touch [-c] FILE...
|
|
|
|
tr tr [-cds] STRING1 [STRING2]
|
|
|
|
umount
|
|
umount [OPTIONS] FILESYSTEM|DIRECTORY
|
|
|
|
uname
|
|
uname [-amnrspvio]
|
|
|
|
vconfig
|
|
vconfig COMMAND [OPTIONS]
|
|
|
|
LIBC NSS
|
|
GNU Libc (glibc) 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. This
|
|
is implemented using an /etc/nsswitch.conf configuration file, and using
|
|
one or more of the /lib/libnss_* libraries. BusyBox tries to avoid using
|
|
any libc calls that make use of NSS. Some applets however, such as login
|
|
and su, will use libc functions that require NSS.
|
|
|
|
If you enable CONFIG_USE_BB_PWD_GRP, BusyBox will use internal functions
|
|
to directly access the /etc/passwd, /etc/group, and /etc/shadow files
|
|
without using NSS. This may allow you to run your system without the
|
|
need for installing any of the NSS configuration files and libraries.
|
|
|
|
When used with glibc, the BusyBox 'networking' applets will similarly
|
|
require that you install at least some of the glibc NSS stuff (in
|
|
particular, /etc/nsswitch.conf, /lib/libnss_dns*, /lib/libnss_files*,
|
|
and /lib/libresolv*).
|
|
|
|
Shameless Plug: As an alternative, one could use a C library such as
|
|
uClibc. In addition to making your system significantly smaller, uClibc
|
|
does not require the use of any NSS support files or libraries.
|
|
|
|
MAINTAINER
|
|
Denis Vlasenko <vda.linux@googlemail.com>
|
|
|
|
AUTHORS
|
|
The following people have contributed code to BusyBox whether they know
|
|
it or not. If you have written code included in BusyBox, you should
|
|
probably be listed here so you can obtain your bit of eternal glory. If
|
|
you should be listed here, or the description of what you have done
|
|
needs more detail, or is incorrect, please send in an update.
|
|
|
|
Emanuele Aina <emanuele.aina@tiscali.it> run-parts
|
|
|
|
Erik Andersen <andersen@codepoet.org>
|
|
|
|
Tons of new stuff, major rewrite of most of the
|
|
core apps, tons of new apps as noted in header files.
|
|
Lots of tedious effort writing these boring docs that
|
|
nobody is going to actually read.
|
|
|
|
Laurence Anderson <l.d.anderson@warwick.ac.uk>
|
|
|
|
rpm2cpio, unzip, get_header_cpio, read_gz interface, rpm
|
|
|
|
Jeff Angielski <jeff@theptrgroup.com>
|
|
|
|
ftpput, ftpget
|
|
|
|
Edward Betts <edward@debian.org>
|
|
|
|
expr, hostid, logname, whoami
|
|
|
|
John Beppu <beppu@codepoet.org>
|
|
|
|
du, nslookup, sort
|
|
|
|
Brian Candler <B.Candler@pobox.com>
|
|
|
|
tiny-ls(ls)
|
|
|
|
Randolph Chung <tausq@debian.org>
|
|
|
|
fbset, ping, hostname
|
|
|
|
Dave Cinege <dcinege@psychosis.com>
|
|
|
|
more(v2), makedevs, dutmp, modularization, auto links file,
|
|
various fixes, Linux Router Project maintenance
|
|
|
|
Jordan Crouse <jordan@cosmicpenguin.net>
|
|
|
|
ipcalc
|
|
|
|
Magnus Damm <damm@opensource.se>
|
|
|
|
tftp client insmod powerpc support
|
|
|
|
Larry Doolittle <ldoolitt@recycle.lbl.gov>
|
|
|
|
pristine source directory compilation, lots of patches and fixes.
|
|
|
|
Glenn Engel <glenne@engel.org>
|
|
|
|
httpd
|
|
|
|
Gennady Feldman <gfeldman@gena01.com>
|
|
|
|
Sysklogd (single threaded syslogd, IPC Circular buffer support,
|
|
logread), various fixes.
|
|
|
|
Karl M. Hegbloom <karlheg@debian.org>
|
|
|
|
cp_mv.c, the test suite, various fixes to utility.c, &c.
|
|
|
|
Daniel Jacobowitz <dan@debian.org>
|
|
|
|
mktemp.c
|
|
|
|
Matt Kraai <kraai@alumni.cmu.edu>
|
|
|
|
documentation, bugfixes, test suite
|
|
|
|
Stephan Linz <linz@li-pro.net>
|
|
|
|
ipcalc, Red Hat equivalence
|
|
|
|
John Lombardo <john@deltanet.com>
|
|
|
|
tr
|
|
|
|
Glenn McGrath <bug1@iinet.net.au>
|
|
|
|
Common unarchiving code and unarchiving applets, ifupdown, ftpgetput,
|
|
nameif, sed, patch, fold, install, uudecode.
|
|
Various bugfixes, review and apply numerous patches.
|
|
|
|
Manuel Novoa III <mjn3@codepoet.org>
|
|
|
|
cat, head, mkfifo, mknod, rmdir, sleep, tee, tty, uniq, usleep, wc, yes,
|
|
mesg, vconfig, make_directory, parse_mode, dirname, mode_string,
|
|
get_last_path_component, simplify_path, and a number trivial libbb routines
|
|
|
|
also bug fixes, partial rewrites, and size optimizations in
|
|
ash, basename, cal, cmp, cp, df, du, echo, env, ln, logname, md5sum, mkdir,
|
|
mv, realpath, rm, sort, tail, touch, uname, watch, arith, human_readable,
|
|
interface, dutmp, ifconfig, route
|
|
|
|
Vladimir Oleynik <dzo@simtreas.ru>
|
|
|
|
cmdedit; xargs(current), httpd(current);
|
|
ports: ash, crond, fdisk, inetd, stty, traceroute, top;
|
|
locale, various fixes
|
|
and irreconcilable critic of everything not perfect.
|
|
|
|
Bruce Perens <bruce@pixar.com>
|
|
|
|
Original author of BusyBox in 1995, 1996. Some of his code can
|
|
still be found hiding here and there...
|
|
|
|
Tim Riker <Tim@Rikers.org>
|
|
|
|
bug fixes, member of fan club
|
|
|
|
Kent Robotti <robotti@metconnect.com>
|
|
|
|
reset, tons and tons of bug reports and patches.
|
|
|
|
Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com>
|
|
|
|
wget - Contributed by permission of Covad Communications
|
|
|
|
Pavel Roskin <proski@gnu.org>
|
|
|
|
Lots of bugs fixes and patches.
|
|
|
|
Gyepi Sam <gyepi@praxis-sw.com>
|
|
|
|
Remote logging feature for syslogd
|
|
|
|
Linus Torvalds <torvalds@transmeta.com>
|
|
|
|
mkswap, fsck.minix, mkfs.minix
|
|
|
|
Mark Whitley <markw@codepoet.org>
|
|
|
|
grep, sed, cut, xargs(previous),
|
|
style-guide, new-applet-HOWTO, bug fixes, etc.
|
|
|
|
Charles P. Wright <cpwright@villagenet.com>
|
|
|
|
gzip, mini-netcat(nc)
|
|
|
|
Enrique Zanardi <ezanardi@ull.es>
|
|
|
|
tarcat (since removed), loadkmap, various fixes, Debian maintenance
|
|
|
|
Tito Ragusa <farmatito@tiscali.it>
|
|
|
|
devfsd and size optimizations in strings, openvt and deallocvt.
|
|
|
|
Paul Fox <pgf@foxharp.boston.ma.us>
|
|
|
|
vi editing mode for ash, various other patches/fixes
|
|
|
|
Roberto A. Foglietta <me@roberto.foglietta.name>
|
|
|
|
port: dnsd
|
|
|
|
Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
|
|
misc
|
|
|
|
Mike Frysinger <vapier@gentoo.org>
|
|
|
|
initial e2fsprogs, printenv, setarch, sum, misc
|
|
|
|
Jie Zhang <jie.zhang@analog.com>
|
|
|
|
fixed two bugs in msh and hush (exitcode of killed processes)
|
|
|