diff options
author | Erik Andersen <andersen@codepoet.org> | 2000-05-19 05:35:19 +0000 |
---|---|---|
committer | Erik Andersen <andersen@codepoet.org> | 2000-05-19 05:35:19 +0000 |
commit | 330fd2b5767110f29544131d4c72c77e0506b6df (patch) | |
tree | aa360774a903d3ebb0b2b5f3031c2e359f9c3afb /docs | |
parent | d356c6e9d1bc091c64200ecc401aa9b6ffb53151 (diff) | |
download | busybox-330fd2b5767110f29544131d4c72c77e0506b6df.tar.gz |
More libc portability updates, add in the website (which has not been
archived previously). Wrote 'which' during the meeting today.
-Erik
Diffstat (limited to 'docs')
-rw-r--r-- | docs/busybox.net/BusyBox.html | 2460 | ||||
-rw-r--r-- | docs/busybox.net/images/background.png | bin | 0 -> 4711 bytes | |||
-rw-r--r-- | docs/busybox.net/images/busybox2.jpg | bin | 0 -> 8204 bytes | |||
-rw-r--r-- | docs/busybox.net/index.html | 434 |
4 files changed, 2894 insertions, 0 deletions
diff --git a/docs/busybox.net/BusyBox.html b/docs/busybox.net/BusyBox.html new file mode 100644 index 000000000..5a65db127 --- /dev/null +++ b/docs/busybox.net/BusyBox.html @@ -0,0 +1,2460 @@ +<HTML> +<HEAD> +<TITLE>BusyBox - The Swiss Army Knife of Embedded Linux</TITLE> +<LINK REV="made" HREF="mailto:none"> +</HEAD> + +<BODY> + +<!-- INDEX BEGIN --> + +<UL> + + <LI><A HREF="#NAME">NAME</A> + <LI><A HREF="#SYNTAX">SYNTAX</A> + <LI><A HREF="#DESCRIPTION">DESCRIPTION</A> + <LI><A HREF="#USAGE">USAGE</A> + <LI><A HREF="#COMMON_OPTIONS">COMMON OPTIONS</A> + <LI><A HREF="#COMMANDS">COMMANDS</A> + <LI><A HREF="#LIBC_NSS">LIBC NSS</A> + <LI><A HREF="#SEE_ALSO">SEE ALSO</A> + <LI><A HREF="#MAINTAINER">MAINTAINER</A> + <LI><A HREF="#AUTHORS">AUTHORS</A> +</UL> +<!-- INDEX END --> + +<HR> +<P> +<H1><A NAME="NAME">NAME</A></H1> +<P> +BusyBox - The Swiss Army Knife of Embedded Linux + +<P> +<HR> +<H1><A NAME="SYNTAX">SYNTAX</A></H1> +<P> +<PRE> BusyBox <function> [arguments...] # or +</PRE> +<P> +<PRE> <function> [arguments...] # if symlinked +</PRE> +<P> +<HR> +<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1> +<P> +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 emdedded system. The utilities in BusyBox generally have +fewer options then their full featured GNU cousins; however, the options +that are included provide the expected functionality and behave very much +like their GNU counterparts. + +<P> +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). + +<P> +<HR> +<H1><A NAME="USAGE">USAGE</A></H1> +<P> +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. + +<P> +For example, entering + +<P> +<PRE> ln -s ./BusyBox ls + ./ls +</PRE> +<P> +will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled +into BusyBox). + +<P> +You can also invoke BusyBox by issuing the command as an argument on the +command line. For example, entering + +<P> +<PRE> ./BusyBox ls +</PRE> +<P> +will also cause BusyBox to behave as 'ls'. + +<P> +<HR> +<H1><A NAME="COMMON_OPTIONS">COMMON OPTIONS</A></H1> +<P> +Most BusyBox commands support the <STRONG>--help</STRONG> option to provide a terse runtime description of their behavior. + +<P> +<HR> +<H1><A NAME="COMMANDS">COMMANDS</A></H1> +<P> +Currently defined functions include: + +<P> +basename, cat, chgrp, chmod, chown, chroot, clear, chvt, cp, cut, date, dd, +df, dirname, dmesg, du, dutmp, echo, false, fbset, fdflush, find, free, +freeramdisk, deallocvt, fsck.minix, grep, gunzip, gzip, halt, head, hostid, +hostname, id, init, kill, killall, length, ln, loadacm, loadfont, loadkmap, +logger, logname, ls, lsmod, makedevs, math, mkdir, mkfifo, mkfs.minix, +mknod, mkswap, mktemp, nc, more, mount, mt, mv, nslookup, ping, poweroff, +printf, ps, pwd, reboot, rm, rmdir, rmmod, sed, setkeycodes, sh, sfdisk, +sleep, sort, sync, syslogd, swapon, swapoff, tail, tar, test, tee, touch, +tr, true, tty, umount, uname, uniq, update, uptime, usleep, wc, whoami, +yes, zcat, [ + +<P> +------------------------------- + +<DL> +<DT><STRONG><A NAME="item_basename">basename</A></STRONG><DD> +<P> +Usage: basename FILE [SUFFIX] + +<P> +Strips directory path and suffixes from FILE. If specified, also removes +any trailing SUFFIX. + +<P> +Example: + +<P> +<PRE> $ basename /usr/local/bin/foo + foo + $ basename /usr/local/bin/ + bin + $ basename /foo/bar.txt .txt + bar +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_cat">cat</A></STRONG><DD> +<P> +Usage: cat [FILE ...] + +<P> +Concatenates <CODE>FILE(s)</CODE> and prints them to the standard output. + +<P> +Example: + +<P> +<PRE> $ cat /proc/uptime + 110716.72 17.67 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_chgrp">chgrp</A></STRONG><DD> +<P> +Usage: chgrp [OPTION]... GROUP FILE... + +<P> +Change the group membership of each FILE to GROUP. + +<P> +Options: + +<P> +<PRE> -R change files and directories recursively +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_chmod">chmod</A></STRONG><DD> +<P> +Usage: chmod [<STRONG>-R</STRONG>] MODE[,MODE]... FILE... + +<P> +Changes file access permissions for the specified <CODE>FILE(s)</CODE> (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 PERISSION for <CODE>FILE(s)</CODE> (or directories). + +<P> +WHO may be chosen from + +<P> +<PRE> 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 +</PRE> +<P> +OPERATOR may be chosen from + +<P> +<PRE> + Add a permission + - Remove a permission + = Assign a permission + +PERMISSION may be chosen from +</PRE> +<P> +<PRE> r Read + w Write + x Execute (or access for directories) + s Set user (or group) ID bit + t Stickey bit (for directories prevents removing files by non-owners) +</PRE> +<P> +Alternately, permissions can be set numerically where the first three +numbers are calculated by adding the octal values, such as + +<P> +<PRE> 4 Read + 2 Write + 1 Execute +</PRE> +<P> +An optional fourth digit can also be used to specify + +<P> +<PRE> 4 Set user ID + 2 Set group ID + 1 Stickey bit +</PRE> +<P> +Options: + +<P> +<PRE> -R Change files and directories recursively. + +Example: +</PRE> +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_chown">chown</A></STRONG><DD> +<P> +Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE... + +<P> +Changes the owner and/or group of each FILE to OWNER and/or GROUP. + +<P> +Options: + +<P> +<PRE> -R Changes files and directories recursively +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_chroot">chroot</A></STRONG><DD> +<P> +Usage: chroot NEWROOT [COMMAND...] + +<P> +Run COMMAND with root directory set to NEWROOT. Example: + +<P> +<PRE> $ ls -l /bin/ls + lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /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* +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_clear">clear</A></STRONG><DD> +<P> +Clears the screen. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_chvt">chvt</A></STRONG><DD> +<P> +Usage: chvt N + +<P> +Changes the foreground virtual terminal to /dev/ttyN + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_cp">cp</A></STRONG><DD> +<P> +Usage: cp [OPTION]... SOURCE DEST + +<P> +<PRE> or: cp [OPTION]... SOURCE... DIRECTORY +</PRE> +<P> +Copies SOURCE to DEST, or multiple <CODE>SOURCE(s)</CODE> to DIRECTORY. + +<P> +Options: + +<P> +<PRE> -a Same as -dpR + -d Preserves links + -p Preserves file attributes if possable + -R Copies directories recursively +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_cut">cut</A></STRONG><DD> +<P> +Usage: cut [OPTION]... [FILE]... + +<P> +Prints selected fields from each input FILE to standard output. + +<P> +Options: + +<P> +<PRE> -b LIST Output only bytes from LIST + -c LIST Output only characters from LIST + -d DELIM Use DELIM instead of tab as the field delimiter + -f N Print only these fields + -n Ignored +</PRE> +<P> +Example: + +<P> +<PRE> $ echo "Hello world" | cut -f 1 -d ' ' + Hello + $ echo "Hello world" | cut -f 2 -d ' ' + world +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_date">date</A></STRONG><DD> +<P> +Usage: date [OPTION]... [+FORMAT] + +<P> +<PRE> or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]] +</PRE> +<P> +Displays the current time in the given FORMAT, or sets the system date. + +<P> +Options: + +<P> +<PRE> -R Outputs RFC-822 compliant date string + -s Sets time described by STRING + -u Prints or sets Coordinated Universal Time +</PRE> +<P> +Example: + +<P> +<PRE> $ date + Wed Apr 12 18:52:41 MDT 2000 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_dd">dd</A></STRONG><DD> +<P> +Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n] + +<P> +Copy a file, converting and formatting according to options + +<P> +<PRE> 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 +</PRE> +<P> +Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2) +Example: + +<P> +<PRE> $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4 + 4+0 records in + 4+0 records out +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_df">df</A></STRONG><DD> +<P> +Usage: df [filesystem ...] + +<P> +Prints the filesystem space used and space available. + +<P> +Example: + +<P> +<PRE> $ 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% / +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_dirname">dirname</A></STRONG><DD> +<P> +Usage: dirname NAME + +<P> +Strip non-directory suffix from file name + +<P> +Example: + +<P> +<PRE> $ dirname /tmp/foo + /tmp + $ dirname /tmp/foo/ + /tmp +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_dmesg">dmesg</A></STRONG><DD> +<P> +Usage: dmesg [<STRONG>-c</STRONG>] [<STRONG>-n</STRONG> level] [<STRONG>-s</STRONG> bufsize] Print or controls the kernel ring buffer. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_du">du</A></STRONG><DD> +<P> +Usage: du [OPTION]... [FILE]... + +<P> +Summarize disk space used for each FILE and/or directory. Disk space is +printed in units of 1k (i.e. 1024 bytes). + +<P> +Options: + +<P> +<PRE> -l count sizes many times if hard linked + -s display only a total for each argument +</PRE> +<P> +Example: + +<P> +<PRE> $ ./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 . + +------------------------------- +</PRE> +<DT><STRONG><A NAME="item_dutmp">dutmp</A></STRONG><DD> +<P> +Usage: dutmp [FILE] + +<P> +Dump utmp file format (pipe delimited) from FILE or stdin to stdout. + +<P> +Example: + +<P> +<PRE> $ 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 + +------------------------------- +</PRE> +<DT><STRONG><A NAME="item_echo">echo</A></STRONG><DD> +<P> +Usage: echo [-neE] [ARG ...] + +<P> +Prints the specified ARGs to stdout + +<P> +Options: + +<P> +<PRE> -n suppress trailing newline + -e interpret backslash-escaped characters (i.e. \t=tab etc) + -E disable interpretation of backslash-escaped characters +</PRE> +<P> +Example: + +<P> +<PRE> $ echo "Erik is cool" + Erik is cool + $ echo -e "Erik\nis\ncool" + Erik + is + cool + $ echo "Erik\nis\ncool" + Erik\nis\ncool + +------------------------------- +</PRE> +<DT><STRONG><A NAME="item_false">false</A></STRONG><DD> +<P> +Returns an exit code of FALSE (1) + +<P> +Example: + +<P> +<PRE> $ false + $ echo $? + 1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_fbset">fbset</A></STRONG><DD> +<P> +Usage: fbset [options] [mode] + +<P> +Show and modify frame buffer device settings + +<P> +Options: + +<P> +<PRE> -h + -fb + -db + -a + -i + -g + -t + -accel + -hsync + -vsync + -laced + -double +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_fdflush">fdflush</A></STRONG><DD> +<P> +Usage: fdflush device + +<P> +Force floppy disk drive to detect disk change + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_find">find</A></STRONG><DD> +<P> +Usage: find [PATH...] [EXPRESSION] + +<P> +Search for files in a directory hierarchy. The default PATH is the current +directory; default EXPRESSION is '-print' + +<P> +EXPRESSION may consist of: + +<P> +<PRE> -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. +</PRE> +<P> +Example: + +<P> +<PRE> $ find / -name /etc/passwd + /etc/passwd +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_free">free</A></STRONG><DD> +<P> +Usage: free + +<P> +Displays the amount of free and used system memory. + +<P> +Example: + +<P> +<PRE> $ free + total used free shared buffers + Mem: 257628 248724 8904 59644 93124 + Swap: 128516 8404 120112 + Total: 386144 257128 129016 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_freeramdisk">freeramdisk</A></STRONG><DD> +<P> +Usage: freeramdisk DEVICE + +<P> +Frees all memory used by the specified ramdisk. + +<P> +Example: + +<P> +<PRE> $ freeramdisk /dev/ram2 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_deallocvt">deallocvt</A></STRONG><DD> +<P> +Usage: deallocvt N + +<P> +Deallocates unused virtual terminal /dev/ttyN + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_fsck">fsck.minix</A></STRONG><DD> +<P> +Usage: fsck.minix [<STRONG>-larvsmf</STRONG>] /dev/name + +<P> +Performs a consistency check for MINIX filesystems. + +<P> +OPTIONS: + +<P> +<PRE> -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. +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_grep">grep</A></STRONG><DD> +<P> +Usage: grep [OPTIONS]... PATTERN [FILE]... + +<P> +Search for PATTERN in each FILE or standard input. + +<P> +OPTIONS: + +<P> +<PRE> -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 +</PRE> +<P> +This version of grep matches full regular expresions. + +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_gunzip">gunzip</A></STRONG><DD> +<P> +Usage: gunzip [OPTION]... FILE + +<P> +Uncompress FILE (or standard input if FILE is '-'). + +<P> +Options: + +<P> +<PRE> -c Write output to standard output + -t Test compressed file integrity +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_gzip">gzip</A></STRONG><DD> +<P> +Usage: gzip [OPTION]... FILE + +<P> +Compress FILE with maximum compression. When FILE is '-', reads standard +input. Implies <STRONG>-c</STRONG>. + +<P> +Options: + +<P> +<PRE> -c Write output to standard output instead of FILE.gz +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_halt">halt</A></STRONG><DD> +<P> +Usage: halt + +<P> +This comand halts the system. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_head">head</A></STRONG><DD> +<P> +Usage: head [OPTION] [FILE]... + +<P> +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. + +<P> +Options: + +<P> +<PRE> -n NUM Print first NUM lines instead of first 10 +</PRE> +<P> +Example: + +<P> +<PRE> $ head -n 2 /etc/passwd + root:x:0:0:root:/root:/bin/bash + daemon:x:1:1:daemon:/usr/sbin:/bin/sh +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_hostid">hostid</A></STRONG><DD> +<P> +Usage: hostid + +<P> +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. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_hostname">hostname</A></STRONG><DD> +<P> +Usage: hostname [OPTION] {hostname | <STRONG>-F</STRONG> file} + +<P> +Get or set the hostname or DNS domain name. If a hostname is given (or a +file with the <STRONG>-F</STRONG> parameter), the host name will be set. + +<P> +Options: + +<P> +<PRE> -s Short + -i Addresses for the hostname + -d DNS domain name + -F FILE Use the contents of FILE to specify the hostname +</PRE> +<P> +Example: + +<P> +<PRE> $ hostname + slag +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_id">id</A></STRONG><DD> +<P> +Print information for USERNAME or the current user + +<P> +Options: + +<P> +<PRE> -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) +</PRE> +<P> +Example: + +<P> +<PRE> $ id + uid=1000(andersen) gid=1000(andersen) +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_init">init</A></STRONG><DD> +<P> +Usage: init + +<P> +Init is the parent of all processes. + +<P> +This version of init is designed to be run only by the kernel. + +<P> +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. + +<P> +BusyBox init works just fine without an inittab. If no inittab is found, it +has the following default behavior: + +<P> +<PRE> ::sysinit:/etc/init.d/rcS + ::askfirst:/bin/sh +</PRE> +<P> +if it detects that /dev/console is _not_ a serial console, it will also +run: + +<P> +<PRE> tty2::askfirst:/bin/sh +</PRE> +<P> +If you choose to use an /etc/inittab file, the inittab entry format is as +follows: + +<P> +<PRE> <id>:<runlevels>:<action>:<process> +</PRE> +<P> +<PRE> <id>: +</PRE> +<P> +<PRE> 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. +</PRE> +<P> +<PRE> <runlevels>: +</PRE> +<P> +<PRE> The runlevels field is completely ignored. +</PRE> +<P> +<PRE> <action>: +</PRE> +<P> +<PRE> Valid actions include: sysinit, respawn, askfirst, wait, + once, and ctrlaltdel. +</PRE> +<P> +<PRE> 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. +</PRE> +<P> +<PRE> Unrecognised actions (like initdefault) will cause init to emit + an error message, and then go along with its business. +</PRE> +<P> +<PRE> <process>: +</PRE> +<P> +<PRE> Specifies the process to be executed and it's command line. +</PRE> +<P> +Example /etc/inittab file: + +<P> +<PRE> # This is run first except when booting in single-user mode. + # + ::sysinit:/etc/init.d/rcS +</PRE> +<P> +<PRE> # /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 +</PRE> +<P> +<PRE> # /sbin/getty invocations for selected ttys + # + tty4::respawn:/sbin/getty 38400 tty4 + tty5::respawn:/sbin/getty 38400 tty5 +</PRE> +<P> +<PRE> # 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 +</PRE> +<P> +<PRE> # Stuff to do before rebooting + ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1 + ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_kill">kill</A></STRONG><DD> +<P> +Usage: kill [<STRONG>-signal</STRONG>] process-id [process-id ...] + +<P> +Send a signal (default is SIGTERM) to the specified +<CODE>process(es).</CODE> + +<P> +Options: + +<P> +<PRE> -l List all signal names and numbers. +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_killall">killall</A></STRONG><DD> +<P> +Usage: killall [<STRONG>-signal</STRONG>] process-name [process-name ...] + +<P> +Send a signal (default is SIGTERM) to the specified +<CODE>process(es).</CODE> + +<P> +Options: + +<P> +<PRE> -l List all signal names and numbers. +</PRE> +<P> +Example: + +<P> +<PRE> $ killall apache +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_length">length</A></STRONG><DD> +<P> +Usage: length STRING + +<P> +Prints out the length of the specified STRING. + +<P> +Example: + +<P> +<PRE> $ length "Hello" + 5 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_ln">ln</A></STRONG><DD> +<P> +Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY + +<P> +Create a link named LINK_NAME or DIRECTORY to the specified TARGET Options: + +<P> +<PRE> -s make symbolic links instead of hard links + -f remove existing destination files + +Example: +</PRE> +<P> +<PRE> $ ln -s BusyBox /tmp/ls + $ ls -l /tmp/ls + lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox* +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_loadacm">loadacm</A></STRONG><DD> +<P> +Usage: loadacm + +<P> +Loads an acm from standard input. + +<P> +Example: + +<P> +<PRE> $ loadacm < /etc/i18n/acmname +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_loadfont">loadfont</A></STRONG><DD> +<P> +Usage: loadfont + +<P> +Loads a console font from standard input. + +<P> +Example: + +<P> +<PRE> $ loadfont < /etc/i18n/fontname +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_loadkmap">loadkmap</A></STRONG><DD> +<P> +Usage: loadkmap + +<P> +Loads a binary keyboard translation table from standard input. + +<P> +Example: + +<P> +<PRE> $ loadkmap < /etc/i18n/lang-keymap +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_logger">logger</A></STRONG><DD> +<P> +Usage: logger [OPTION]... [MESSAGE] + +<P> +Write MESSAGE to the system log. If MESSAGE is '-', log stdin. + +<P> +Options: + +<P> +<PRE> -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. +</PRE> +<P> +Example: + +<P> +<PRE> $ logger "hello" +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_logname">logname</A></STRONG><DD> +<P> +Usage: logname + +<P> +Print the name of the current user. + +<P> +Example: + +<P> +<PRE> $ logname + root +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_ls">ls</A></STRONG><DD> +<P> +Usage: ls [<STRONG>-1acdelnpuxACF</STRONG>] [filenames...] + +<P> +Options: + +<P> +<PRE> -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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_lsmod">lsmod</A></STRONG><DD> +<P> +Usage: lsmod + +<P> +Shows a list of all currently loaded kernel modules. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_makedevs">makedevs</A></STRONG><DD> +<P> +Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s] + +<P> +Creates a range of block or character special files + +<P> +TYPEs include: + +<P> +<PRE> 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. +</PRE> +<P> +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. + +<P> +Example: + +<P> +<PRE> $ makedevs /dev/ttyS c 4 66 2 63 + [creates ttyS2-ttyS63] + $ makedevs /dev/hda b 3 0 0 8 s + [creates hda,hda1-hda8] +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_math">math</A></STRONG><DD> +<P> +Usage: math expression ... + +<P> +This is a Tiny RPN calculator that understands the following operations: +, +-, /, *, and, or, not, eor. + +<P> +Example: + +<P> +<PRE> $ math 2 2 add + 4 + $ math 8 8 \* 2 2 + / + 16 + $ math 0 1 and + 0 + $ math 0 1 or + 1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mkdir">mkdir</A></STRONG><DD> +<P> +Usage: mkdir [OPTION] DIRECTORY... + +<P> +Create the <CODE>DIRECTORY(ies),</CODE> if they do not already exist + +<P> +Options: + +<P> +<PRE> -m set permission mode (as in chmod), not rwxrwxrwx - umask + -p no error if dir exists, make parent directories as needed +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mkfifo">mkfifo</A></STRONG><DD> +<P> +Usage: mkfifo [OPTIONS] name + +<P> +Creates a named pipe (identical to 'mknod name p') + +<P> +Options: + +<P> +<PRE> -m create the pipe using the specified mode (default a=rw) +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mkfs">mkfs.minix</A></STRONG><DD> +<P> +Usage: mkfs.minix [<STRONG>-c</STRONG> | <STRONG>-l</STRONG> filename] [<STRONG>-nXX</STRONG>] [<STRONG>-iXX</STRONG>] /dev/name [blocks] + +<P> +Make a MINIX filesystem. + +<P> +OPTIONS: + +<P> +<PRE> -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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mknod">mknod</A></STRONG><DD> +<P> +Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR + +<P> +Create a special file (block, character, or pipe). + +<P> +Options: + +<P> +<PRE> -m create the special file using the specified mode (default a=rw) +</PRE> +<P> +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. + +<P> +Example: + +<P> +<PRE> $ mknod /dev/fd0 b 2 0 + $ mknod -m 644 /tmp/pipe p +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mkswap">mkswap</A></STRONG><DD> +<P> +Usage: mkswap [<STRONG>-c</STRONG>] [<STRONG>-v0</STRONG>|<STRONG>-v1</STRONG>] device [block-count] + +<P> +Prepare a disk partition to be used as a swap partition. + +<P> +Options: + +<P> +<PRE> -c Check for read-ability. + -v0 Make version 0 swap [max 128 Megs]. + -v1 Make version 1 swap [big!] (default for kernels > 2.1.117). + block-count Number of block to use (default is entire partition). +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mktemp">mktemp</A></STRONG><DD> +<P> +Usage: mktemp [<STRONG>-q</STRONG>] TEMPLATE + +<P> +Creates a temporary file with its name based on TEMPLATE. TEMPLATE is any +name with six `Xs' (i.e. /tmp/temp.XXXXXX). + +<P> +Example: + +<P> +<PRE> $ mktemp /tmp/temp.XXXXXX + /tmp/temp.mWiLjM + $ ls -la /tmp/temp.mWiLjM + -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_nc">nc</A></STRONG><DD> +<P> +Usage: nc [IP] [port] + +<P> +Netcat opens a pipe to IP:port + +<P> +Example: + +<P> +<PRE> $ 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 + +------------------------------- +</PRE> +<DT><STRONG><A NAME="item_more">more</A></STRONG><DD> +<P> +Usage: more [file ...] + +<P> +More is a filter for paging through text one screenful at a time. + +<P> +Example: + +<P> +<PRE> $ dmesg | more +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mount">mount</A></STRONG><DD> +<P> +Usage: mount [flags] mount [flags] device directory [<STRONG>-o</STRONG> options,more-options] + +<P> +Flags: + +<P> +<PRE> -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). +</PRE> +<P> +Options for use with the ``<STRONG>-o</STRONG>'' flag: + +<P> +<PRE> 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. +</PRE> +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mt">mt</A></STRONG><DD> +<P> +Usage: mt [<STRONG>-f</STRONG> device] opcode value + +<P> +Control magnetic tape drive operation + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_mv">mv</A></STRONG><DD> +<P> +Usage: mv SOURCE DEST + +<P> +<PRE> or: mv SOURCE... DIRECTORY +</PRE> +<P> +Rename SOURCE to DEST, or move <CODE>SOURCE(s)</CODE> to DIRECTORY. + +<P> +Example: + +<P> +<PRE> $ mv /tmp/foo /bin/bar +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_nslookup">nslookup</A></STRONG><DD> +<P> +Usage: nslookup [HOST] + +<P> +Queries the nameserver for the IP address of the given HOST + +<P> +Example: + +<P> +<PRE> $ nslookup localhost + Server: default + Address: default +</PRE> +<P> +<PRE> Name: debian + Address: 127.0.0.1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_ping">ping</A></STRONG><DD> +<P> +Usage: ping [OPTION]... host + +<P> +Send ICMP ECHO_REQUEST packets to network hosts. + +<P> +Options: + +<P> +<PRE> -c COUNT Send only COUNT pings. + -q Quiet mode, only displays output at start + and when finished. +Example: +</PRE> +<P> +<PRE> $ 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 +</PRE> +<P> +<PRE> --- debian ping statistics --- + 1 packets transmitted, 1 packets received, 0% packet loss + round-trip min/avg/max = 20.1/20.1/20.1 ms +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_poweroff">poweroff</A></STRONG><DD> +<P> +Shuts down the system, and requests that the kernel turn off power upon +halting. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_printf">printf</A></STRONG><DD> +<P> +Usage: printf format [argument...] + +<P> +Formats and prints the given data in a manner similar to the C printf +command. + +<P> +Example: + +<P> +<PRE> $ printf "Val=%d\n" 5 + Val=5 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_ps">ps</A></STRONG><DD> +<P> +Usage: ps + +<P> +Report process status + +<P> +This version of ps accepts no options. + +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_pwd">pwd</A></STRONG><DD> +<P> +Prints the full filename of the current working directory. + +<P> +Example: + +<P> +<PRE> $ pwd + /root +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_reboot">reboot</A></STRONG><DD> +<P> +Instructs the kernel to reboot the system. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_rm">rm</A></STRONG><DD> +<P> +Usage: rm [OPTION]... FILE... + +<P> +Remove (unlink) the <CODE>FILE(s).</CODE> + +<P> +Options: + +<P> +<PRE> -f remove existing destinations, never prompt + -r or -R remove the contents of directories recursively +</PRE> +<P> +Example: + +<P> +<PRE> $ rm -rf /tmp/foo +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_rmdir">rmdir</A></STRONG><DD> +<P> +Usage: rmdir [OPTION]... DIRECTORY... + +<P> +Remove the <CODE>DIRECTORY(ies),</CODE> if they are empty. + +<P> +Example: + +<P> +<PRE> # rmdir /tmp/foo +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_rmmod">rmmod</A></STRONG><DD> +<P> +Usage: rmmod [OPTION]... [MODULE]... + +<P> +Unloads the specified kernel modules from the kernel. + +<P> +Options: + +<P> +<PRE> -a Try to remove all unused kernel modules. +</PRE> +<P> +Example: + +<P> +<PRE> $ rmmod tulip +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sed">sed</A></STRONG><DD> +<P> +Usage: sed [<STRONG>-n</STRONG>] <STRONG>-e</STRONG> script [file...] + +<P> +Allowed sed scripts come in the following form: + +<P> +<PRE> 'ADDR [!] COMMAND' +</PRE> +<P> +<PRE> where address ADDR can be: + NUMBER Match specified line number + $ Match last line + /REGEXP/ Match specified regexp + (! inverts the meaning of the match) +</PRE> +<P> +<PRE> 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. +</PRE> +<P> +<PRE> aTEXT + which appends TEXT after the pattern space +</PRE> +<P> +Options: + +<P> +<PRE> -e add the script to the commands to be executed + -n suppress automatic printing of pattern space +</PRE> +<P> +This version of sed matches full regular expresions. + +<P> +Example: + +<P> +<PRE> $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g' + bar +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_setkeycodes">setkeycodes</A></STRONG><DD> +<P> +Usage: setkeycodes SCANCODE KEYCODE ... + +<P> +Set entries into the kernel's scancode-to-keycode map, allowing unusual +keyboards to generate usable keycodes. + +<P> +SCANCODE may be either xx or e0xx (hexadecimal), and KEYCODE is given in +decimal + +<P> +Example: + +<P> +<PRE> # setkeycodes e030 127 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sh">sh</A></STRONG><DD> +<P> +Usage: sh + +<P> +lash -- the BusyBox LAme SHell (command interpreter) + +<P> +This command does not yet have proper documentation. + +<P> +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. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sfdisk">sfdisk</A></STRONG><DD> +<P> +Usage: sfdisk [options] device ... + +<P> +device: something like /dev/hda or /dev/sda + +<P> +useful options: + +<P> +<PRE> -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 +</PRE> +<P> +dangerous options: + +<P> +<PRE> -g [or --show-geometry]: print the kernel's idea of the geometry + -x [or --show-extended]: also list extended partitions on output +</PRE> +<P> +<PRE> 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 +</PRE> +<P> +You can disable all consistency checking with: + +<P> +<PRE> -f [or --force]: do what I say, even if it is stupid +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sleep">sleep</A></STRONG><DD> +<P> +Usage: sleep N + +<P> +Pause for N seconds. + +<P> +Example: + +<P> +<PRE> $ sleep 2 + [2 second delay results] +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sort">sort</A></STRONG><DD> +<P> +Usage: sort [<STRONG>-n</STRONG>] [<STRONG>-r</STRONG>] [FILE]... + +<P> +Sorts lines of text in the specified files + +<P> +Example: + +<P> +<PRE> $ echo -e "e\nf\nb\nd\nc\na" | sort + a + b + c + d + e + f +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_sync">sync</A></STRONG><DD> +<P> +Usage: sync + +<P> +Write all buffered filesystem blocks to disk. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_syslogd">syslogd</A></STRONG><DD> +<P> +Usage: syslogd [OPTION]... + +<P> +Linux system and kernel (provides klogd) logging utility. Note that this +version of syslogd/klogd ignores /etc/syslog.conf. + +<P> +Options: + +<P> +<PRE> -m Change the mark timestamp interval. default=20min. 0=off + -n Do not fork into the background (for when run by init) + -K Do not start up the klogd process (by default syslogd spawns klogd). + -O Specify an alternate log file. default=/var/log/messages +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_swapon">swapon</A></STRONG><DD> +<P> +Usage: swapon [OPTION] [device] + +<P> +Start swapping virtual memory pages on the given device. + +<P> +Options: + +<P> +<PRE> -a Start swapping on all swap devices +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_swapoff">swapoff</A></STRONG><DD> +<P> +Usage: swapoff [OPTION] [device] + +<P> +Stop swapping virtual memory pages on the given device. + +<P> +Options: + +<P> +<PRE> -a Stop swapping on all swap devices +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_tail">tail</A></STRONG><DD> +<P> +Usage: tail [OPTION] [FILE]... + +<P> +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. + +<P> +Options: + +<P> +<PRE> -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. +</PRE> +<P> +Example: + +<P> +<PRE> $ tail -n 1 /etc/resolv.conf + nameserver 10.0.0.1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_tar">tar</A></STRONG><DD> +<P> +Usage: tar -[cxtvO] [<STRONG>--exclude</STRONG> File] [<STRONG>-f</STRONG> tarFile] [FILE] ... + +<P> +Create, extract, or list files from a tar file. Note that this version of +tar treats hard links as separate files. + +<P> +Main operation mode: + +<P> +<PRE> c create + x extract + t list +</PRE> +<P> +File selection: + +<P> +<PRE> f name of tarfile or "-" for stdin + O extract to stdout + --exclude file to exclude +</PRE> +<P> +Informative output: + +<P> +<PRE> v verbosely list files processed +</PRE> +<P> +Example: + +<P> +<PRE> $ zcat /tmp/tarball.tar.gz | tar -xf - + $ tar -cf /tmp/tarball.tar /usr/local +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_test">test, [</A></STRONG><DD> +<P> +Usage: test EXPRESSION or [ EXPRESSION ] + +<P> +Checks file types and compares values returning an exit code determined by +the value of EXPRESSION. + +<P> +Example: + +<P> +<PRE> $ test 1 -eq 2 + $ echo $? + 1 + $ test 1 -eq 1 + $ echo $? + 0 + $ [ -d /etc ] + $ echo $? + 0 + $ [ -d /junk ] + $ echo $? + 1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_tee">tee</A></STRONG><DD> +<P> +Usage: tee [OPTION]... [FILE]... + +<P> +Copy standard input to each FILE, and also to standard output. + +<P> +Options: + +<P> +<PRE> -a append to the given FILEs, do not overwrite +</PRE> +<P> +Example: + +<P> +<PRE> $ echo "Hello" | tee /tmp/foo + $ cat /tmp/foo + Hello +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_touch">touch</A></STRONG><DD> +<P> +Usage: touch [<STRONG>-c</STRONG>] file [file ...] + +<P> +Update the last-modified date on (or create) the selected file[s]. + +<P> +Example: + +<P> +<PRE> $ 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 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_tr">tr</A></STRONG><DD> +<P> +Usage: tr [-cds] STRING1 [STRING2] + +<P> +Translate, squeeze, and/or delete characters from standard input, writing +to standard output. + +<P> +Options: + +<P> +<PRE> -c take complement of STRING1 + -d delete input characters coded STRING1 + -s squeeze multiple output characters of STRING2 into one character +</PRE> +<P> +Example: + +<P> +<PRE> $ echo "gdkkn vnqkc" | tr [a-y] [b-z] + hello world +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_true">true</A></STRONG><DD> +<P> +Returns an exit code of TRUE (0) + +<P> +Example: + +<P> +<PRE> $ true + $ echo $? + 0 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_tty">tty</A></STRONG><DD> +<P> +Usage: tty + +<P> +Print the file name of the terminal connected to standard input. + +<P> +Options: + +<P> +<PRE> -s print nothing, only return an exit status +</PRE> +<P> +Example: + +<P> +<PRE> $ tty + /dev/tty2 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_umount">umount</A></STRONG><DD> +<P> +Usage: umount [flags] filesystem|directory + +<P> +Flags: + +<P> +<PRE> -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) +</PRE> +<P> +Example: + +<P> +<PRE> $ umount /dev/hdc1 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_uname">uname</A></STRONG><DD> +<P> +Usage: uname [OPTION]... + +<P> +Print certain system information. With no OPTION, same as <STRONG>-s</STRONG>. + +<P> +Options: + +<P> +<PRE> -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 +</PRE> +<P> +Example: + +<P> +<PRE> $ uname -a + Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_uniq">uniq</A></STRONG><DD> +<P> +Usage: uniq [OPTION]... [INPUT [OUTPUT]] + +<P> +Discard all but one of successive identical lines from INPUT (or standard +input), writing to OUTPUT (or standard output). + +<P> +Example: + +<P> +<PRE> $ echo -e "a\na\nb\nc\nc\na" | sort | uniq + a + b + c +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_update">update</A></STRONG><DD> +<P> +Usage: update [options] + +<P> +Periodically flushes filesystem buffers. + +<P> +Options: + +<P> +<PRE> -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) +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_uptime">uptime</A></STRONG><DD> +<P> +Usage: uptime + +<P> +Tells how long the system has been running since boot. + +<P> +Example: + +<P> +<PRE> $ uptime + 1:55pm up 2:30, load average: 0.09, 0.04, 0.00 +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_usleep">usleep</A></STRONG><DD> +<P> +Usage: usleep N + +<P> +Pauses for N microseconds. + +<P> +Example: + +<P> +<PRE> $ usleep 1000000 + [pauses for 1 second] +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_wc">wc</A></STRONG><DD> +<P> +Usage: wc [OPTION]... [FILE]... + +<P> +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. + +<P> +Options: + +<P> +<PRE> -c print the byte counts + -l print the newline counts + -L print the length of the longest line + -w print the word counts +</PRE> +<P> +Example: + +<P> +<PRE> $ wc /etc/passwd + 31 46 1365 /etc/passwd +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_whoami">whoami</A></STRONG><DD> +<P> +Usage: whoami + +<P> +Prints the user name associated with the current effective user id. + +<P> +Example: + +<P> +<PRE> $ whoami + andersen +</PRE> +<P> +------------------------------- + +<DT><STRONG><A NAME="item_yes">yes</A></STRONG><DD> +<P> +Usage: yes [OPTION]... [STRING]... + +<P> +Repeatedly outputs a line with all specified <CODE>STRING(s),</CODE> or +`y'. + +<P> +------------------------------- + +<DT><STRONG><A NAME="item_zcat">zcat</A></STRONG><DD> +<P> +This is essentially an alias for invoking ``gunzip <STRONG>-c</STRONG>'', where it decompresses the file inquestion and send the output to +stdout. + +<P> +------------------------------- + +</DL> +<P> +<HR> +<H1><A NAME="LIBC_NSS">LIBC NSS</A></H1> +<P> +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. + +<P> +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. + +<P> +<HR> +<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1> +<P> +<CODE>textutils(1),</CODE> <CODE>shellutils(1),</CODE> etc... + +<P> +<HR> +<H1><A NAME="MAINTAINER">MAINTAINER</A></H1> +<P> +Erik Andersen <<A +HREF="mailto:andersee@debian.org">andersee@debian.org</A>> <<A +HREF="mailto:andersen@lineo.com">andersen@lineo.com</A>> + +<P> +<HR> +<H1><A NAME="AUTHORS">AUTHORS</A></H1> +<P> +The following people have contributed code to BusyBox whether they know it +or not. + +<P> +Erik Andersen <<A +HREF="mailto:andersee@debian.org">andersee@debian.org</A>> + +<br> + +<P> +John Beppu <<A HREF="mailto:beppu@lineo.com">beppu@lineo.com</A>> + +<br> + +<P> +Brian Candler <<A +HREF="mailto:B.Candler@pobox.com">B.Candler@pobox.com</A>> + +<br> + +<P> +Randolph Chung <<A +HREF="mailto:tausq@debian.org">tausq@debian.org</A>> + +<br> + +<P> +Dave Cinege <<A +HREF="mailto:dcinege@psychosis.com">dcinege@psychosis.com</A>> + +<br> + +<P> +Karl M. Hegbloom <<A +HREF="mailto:karlheg@debian.org">karlheg@debian.org</A>> + +<br> + +<P> +John Lombardo <<A +HREF="mailto:john@deltanet.com">john@deltanet.com</A>> + +<br> + +<P> +Bruce Perens <<A HREF="mailto:bruce@perens.com">bruce@perens.com</A>> + +<br> + +<P> +Linus Torvalds <<A +HREF="mailto:torvalds@transmeta.com">torvalds@transmeta.com</A>> + +<br> + +<P> +Charles P. Wright <<A +HREF="mailto:cpwright@villagenet.com">cpwright@villagenet.com</A>> + +<br> + +<P> +Enrique Zanardi <<A +HREF="mailto:ezanardi@ull.es">ezanardi@ull.es</A>> + +<br> + +</BODY> + +</HTML> diff --git a/docs/busybox.net/images/background.png b/docs/busybox.net/images/background.png Binary files differnew file mode 100644 index 000000000..11666cedb --- /dev/null +++ b/docs/busybox.net/images/background.png diff --git a/docs/busybox.net/images/busybox2.jpg b/docs/busybox.net/images/busybox2.jpg Binary files differnew file mode 100644 index 000000000..abf8f0610 --- /dev/null +++ b/docs/busybox.net/images/busybox2.jpg diff --git a/docs/busybox.net/index.html b/docs/busybox.net/index.html new file mode 100644 index 000000000..ff865dc1e --- /dev/null +++ b/docs/busybox.net/index.html @@ -0,0 +1,434 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> + +<HTML> +<HEAD> +<TITLE>BusyBox</TITLE> +</HEAD> + +<body text="#000000" alink="#660000" link="#660000" bgcolor="#ffffff" vlink="#660000" background="images/background.png" > + +<basefont face="lucida, helvetica, arial" size="3"> + + +<CENTER> + <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> + <TR> + <td bgcolor="#000000"> + <FONT FACE="lucida, helvetica" COLOR="#ccccc0"> + <B>B u s y B o x</B> + </FONT> + </TD> + </TR> + </TABLE> + <a href="/"><IMG SRC="images/busybox2.jpg" alt="BusyBox" border="0" width="360" height="230"</a><BR> + + +<!-- Begin Introduction section --> + + +<TABLE WIDTH=95% CELLSPACING=1 CELLPADDING=4 BORDER=1> +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="intro"> <BIG><B> + The Swiss Army Knife of Embedded Linux + </font> + </A></B></BIG> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> + +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 emdedded system. The utilities in BusyBox generally have fewer options then +their full featured GNU cousins; however, the options that are included provide +the expected functionality and behave very much like their GNU counterparts. +<p> +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). +<p> + +BusyBox is now maintained by +<a href="http://www.xmission.com/~andersen/erik/erik.html"> +Erik Andersen</a>, and its ongoing development is being sponsored by +<a href="http://www.lineo.com/">Lineo</a>. +<p> +BusyBox is licensed under the +<a href="http://www.gnu.org/copyleft/gpl.html">GNU GENERAL PUBLIC LICENSE</a> + + +<!-- Begin Download section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="download"><BIG><B> + Download + </A></B></BIG> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> +<ul> + <li> Source for the latest release can always be downloaded from + <a href="ftp://ftp.lineo.com/pub/busybox">ftp://ftp.lineo.com/pub/busybox</a>. +</ul> + + +<!-- Begin Latest News section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="news"> + <BIG><B> + Latest News</A> + </B></BIG> + </A> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> + +<ul> + + <p> <li> <b>19 April 2000 -- syslogd bugfix</b> + <br> + Turns out that there was still a bug in busybox syslogd. + For example, with the following test app: +<pre> + #include <syslog.h> + + int do_log(char* msg, int delay) + { + openlog("testlog", LOG_PID, LOG_DAEMON); + while(1) { + syslog(LOG_ERR, "%s: testing one, two, three\n", msg); + sleep(delay); + } + closelog(); + return(0); + }; + + int main(void) + { + if (fork()==0) + do_log("A", 2); + do_log("B", 3); + } +</pre> + it should be logging stuff from both "A" and "B". As released in 0.43 only stuff + from "A" would have been logged. This means that if init tries to log something + while say ppp has the syslog open, init would block (which is bad, bad, bad). + <p> + Karl M. Hegbloom has created a + <a href="ftp://ftp.lineo.com/pub/busybox/busybox-0.43-syslog_patch">fix for the problem</a>. + Thanks Karl! + + + <p> <li> <b>18 April 2000 -- BusyBox 0.43 released (finally!)</b> + <br> + I have finally gotten everything into a state where I feel pretty + good about things. This is definitely the most stable, solid release + so far. A lot of bugs have been fixed, and the following new apps + have been added: sh, basename, dirname, killall, uptime, + freeramdisk, tr, echo, test, and usleep. Tar has been completely + rewritten from scratch. Bss size has also been greatly reduced. + More details are available in the + <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">changelog</a>. + Oh, and as a special bonus, I wrote some fairly comprehensive + <em>documentation</em>, complete with examples and full usage information. + + <p> + Many thanks go out to the fine people that have helped by submitting patches + and bug reports; particularly instrumental in helping for this release were + Karl Hegbloom, Pavel Roskin, Friedrich Vedder, Emanuele Caratti, + Bob Tinsley, Nicolas Pitre, Avery Pennarun, Arne Bernin, John Beppu, and Jim Gleason. + There were others so if I somehow forgot to mention you, I'm very sorry. + <p> + + You can grab BusyBox 0.43 tarballs <a href="ftp://ftp.lineo.com/pub/busybox/">here</a>. + + <p> <li> <b>9 April 2000 -- BusyBox 0.43 pre release</b> + <br> + Unfortunately, I have not yet finished all the things I want to + do for BusyBox 0.43, so I am posting this pre-release for people + to poke at. This contains my complete rewrite of tar, which now weighs in at + 5k (7k with all options turned on) and works for reading and writing + tarballs (which it does correctly for everything I have been able to throw + at it). Tar also (optionally) supports the "--exclude" option (mainly because + the Linux Router Project folks asked for it). This also has a pre-release + of the micro shell I have been writing. This pre-release should be stable + enough for production use -- it just isn't a release since I have some structural + changes I still want to make. + <p> + The pre-release can be found <a href="ftp://ftp.lineo.com/pub/busybox/">here</a>. + Please let me know ASAP if you find <em>any</em> bugs. + + <p> <li> <b>28 March 2000 -- Andersen Baby Boy release</b> + <br> + I am pleased to announce that on Tuesday March 28th at 5:48pm, weighing in at 7 + lbs. 12 oz, Micah Erik Andersen was born at LDS Hospital here in Salt Lake City. + He was born in the emergency room less then 5 minutes after we arrived -- and + it was such a relief that we even made it to the hospital at all. Despite the + fact that I was driving at an amazingly unlawful speed and honking at everybody + and thinking decidely unkind thoughts about the people in our way, my wife + (inconsiderate of my feelings and complete lack of medical training) was lying + down in the back seat saying things like "I think I need to start pushing now" + (which she then proceeded to do despite my best encouraging statements to the + contrary). + <p> + Anyway, I'm glad to note that despite the much-faster-than-we-were-expecting + labor, both Shaunalei and our new baby boy are doing wonderfuly. + <p> + So now that I am done with my excuse for the slow release cycle... + Progress on the next release of BusyBox has been slow but steady. I expect + to have a release sometime during the first week of April. This release will + include a number of important changes, including the addition of a shell, a + re-write of tar (to accomodate the Linux Router Project), and syslogd can now + accept multiple concurrent connections, fixing lots of unexpected blocking + problems. + + + <p> <li> <b>11 February 2000 -- BusyBox 0.42 released</b> + <br> + + This is the most solid BusyBox release so far. Many, many + bugs have been fixed. See the +<a href="ftp://ftp.lineo.com/pub/busybox/Changelog">changelog</a> for details. + + Of particular interest, init will now cleanly unmount + filesystems on reboot, cp and mv have been rewritten and + behave much better, and mount and umount no longer leak + loop devices. Many thanks go out to Randolph Chung, + Karl M. Hegbloom, Taketoshi Sano, and Pavel Roskin for + their hard work on this release of BusyBox. Please pound + on it and let me know if you find any bugs. + + <p> <li> <b>19 January 2000 -- BusyBox 0.41 released</b> + <br> + + This release includes bugfixes to cp, mv, logger, true, false, + mkdir, syslogd, and init. New apps include wc, hostid, + logname, tty, whoami, and yes. New features include loop device + support in mount and umount, and better TERM handling by init. + The changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. + + <p> <li> <b>7 January 2000 -- BusyBox 0.40 released</b> + <br> + + This release includes bugfixes to init (now includes inittab support), + syslogd, head, logger, du, grep, cp, mv, sed, dmesg, ls, kill, gunzip, and mknod. + New apps include sort, uniq, lsmod, rmmod, fbset, and loadacm. + In particular, this release fixes an important bug in tar which + in some cases produced serious security problems. + As always, the changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. + + <p> <li> <b>11 December 1999 -- BusyBox Website</b> + <br> + I have received permission from Bruce Perens (the original author of BusyBox) + to set up this site as the new primary website for BusyBox. This website + will always contain pointers to the latest and greatest, and will also + contain the latest documentation on how to use BusyBox, what it can do, + what arguments its apps support, etc. + + <p> <li> <b>10 December 1999 -- BusyBox 0.39 released</b> + <br> + This release includes fixes to init, reboot, halt, kill, and ls, and contains + the new apps ping, hostname, mkfifo, free, tail, du, tee, and head. A full + changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. + <p> <li> <b>5 December 1999 -- BusyBox 0.38 released</b> + <br> + This release includes fixes to tar, cat, ls, dd, rm, umount, find, df, + and make install, and includes new apps syslogd/klogd and logger. +</ul> + + +<!-- Begin Docs section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="docs"><BIG><B> + Documentation + </A></B></BIG> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> +Current documentation for BusyBox includes: +<ul> + <li> <a href="BusyBox.html">BusyBox.html</a> + This is a list of the all the available commands in BusyBox with complete + usage information and examples of how to use each app. I spent + a <em>lot</em> of time updating these docs and trying to make them + fairly comprehensive for the BusyBox 0.43 release. If you find any + errors (factual, grammatical, whatever) please let me know. + + <li> More documentation will follow. +</ul> + + +<!-- Begin Links section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="related"> + <BIG><B> + Related Software</A> + </B></BIG> + </A> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> + +<ul> + + <li><a href="http://www.debian.org/Packages/unstable/shells/ash.html">ash</a> + is a very small Bourne shell. If you need a shell for your embedded systems, this is it. + <p> + + <li><a href="http://www.debian.org/Packages/unstable/base/ae.html">ae</a> + is a tiny full-screen text editor with both modal (vi-like) and modeless + (emacs-like) modes, determined by an ae.rc config file. It makes a nice editor + if people that don't know "vi" will need to work on your embedded system. + <p> + + <li> <a href="http://www.debian.org/Packages/unstable/base/elvis-tiny.html">elvis-tiny</a> + is based on a 1991 Minix version of the elvis "vi" clone. It behaves as one would + expect a minamalist vi to behave, and is very small. + <p> + + <li> <a href="http://www.asty.org/nano/">nano</a> + A small GPLed pico clone that makes a nice editor for people that don't know "vi". + <p> + + <li><a href="http://www.debian.org/Packages/unstable/net/iproute.html">iproute</a> + Much more flexible replacement for ifconfig, route, etc. It is quite small, and for + most networking applications, it is all you need. It also provides support for extremely + advanced networking and provides Quality of Service(QoS) support, but most people will + just need to use the "ip" command and will not even need to install the rest. + <p> + + <li><a href="http://www.debian.org/Packages/unstable/net/pump.html">Pump</a> + This is the DHCP/BOOTP client written by RedHat. When compiled properly, it + gives you dhcp client support for about 35k. + <p> + + <li><a href="http://www.pcug.org.au/~dbell/">sash</a> + The Stand Alone SHell. This is a small shell (not Bourne shell compatable) + that is similar to busybox in that it provides a number of common utilities as built-ins. + <p> + + <li><a href="http://sourceware.cygnus.com/newlib/">NewLib</a> + This is a small C library intended for use on embedded systems. If you are finding + GNU libc is a bit too big for your applications, try NewLib and it may help. + <p> + + <li><a href="http://linuxassembly.org/asmutils.html">asmutils</a> + asmutils is similar to BusyBox in that it provides a number of common application + for embedded systems that are very tiny. In fact, they are a _lot_ smaller than the + equivalent apps in busybox -- but the price you pay for the size is reduced portability + (x86 only) and interfaces that are tied directly to a perticular kernel (no libc involved). + <p> + + <li><a href="http://tinylogin.lineo.com/">TinyLogin</a> + is a nice embedded tool for handling authentication, changing passwords, + and similar tasks, and which nicely complements BusyBox. + <p> + +</ul> + +<!-- Begin Projects section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="docs"><BIG><B> + Projects using BusyBox + </A></B></BIG> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> +I know of the following projects that use BusyBox +<ul> + <li> <a href="http://www.lineo.com/products/embedix.html">Lineo Embedix Linux</a> + <li> <a href="http://cvs.debian.org/boot-floppies/">Debian boot floppies project</a> + <li> <a href="http://www.linuxrouter.org/">Linux Router Project </a> + <li> <a href="http://linux-embedded.org/">LEM</a> + <li> <a href="http://www.toms.net/rb/">tomsrtbt</a> + +</ul> +Do you use BusyBox? I'd love to know about it and I'd be happy to link to you. + + + +<!-- Begin Links section --> + +<TR><TD BGCOLOR="#ccccc0" ALIGN=center> + <A NAME="links"> + <BIG><B> + Important Links</A> + </B></BIG> + </A> +</TD></TR> +<TR><TD BGCOLOR="#eeeee0"> + +<ul> + + <li> <A HREF="http://perens.com/FreeSoftware/"> + Free Software from Bruce Perens</A><br> + The original idea for BusyBox, and all versions up to 0.26 were written + by <A HREF="mailto:bruce@perens.com">Bruce Perens</a>. This is his BusyBox website. + <p> + + <li> <A HREF="http://freshmeat.net/appindex/1999/04/11/923859921.html"> + Freshmeat AppIndex record for BusyBox</A> + <p> + + <li> <A HREF="http://www.lineo.com/">Lineo</A> is sponsoring BusyBox development. + <p> + +</ul> + + + + +<!-- End of Table --> + +</TD></TR> +</TABLE> +</P> + + + +<!-- Footer --> +<HR> +<TABLE WIDTH="100%"> + <TR> + <TD> + <font size="-1" face="arial, helvetica, sans-serif"> + Mail all comments, insults, suggestions and bribes to + <a href="mailto:andersen@lineo.com">Erik Andersen</a><BR> + The Busybox logo is copyright 1999,2000, Erik Andersen. + </font> + </TD> + + <TD> + <a href="http://www.vim.org"><img border=0 width=88 height=32 + src="images/anim.written.in.vi.gif" + alt="This site created with the vi editor"></a> + </TD> + + <TD> + <a href="http://www.gimp.org/"><img border=0 width=88 height=38 + src="images/gfx_by_gimp.gif" alt="Graphics by GIMP"></a> + </TD> + + <TD> + <a href="http://www.linuxtoday.com"><img width=90 height=36 + src="images/ltbutton2.jpg" alt="Linux Today"></a> + </TD> + + <TD> + <p><a href="http://slashdot.org"><img width=90 height=36 + src="images/sdsmall.gif" alt="Slashdot"></a> + </TD> + + <TD> + <a href="http://freshmeat.net"><img width=90 height=36 + src="images/fm.mini.jpg" alt="Freshmeat"></a> + </TD> + + </TR> +</TABLE> + + +</BODY> +</HTML> + |