diff --git a/Changelog b/Changelog index e3467f3b9..d18244215 100644 --- a/Changelog +++ b/Changelog @@ -10,13 +10,20 @@ Fix thanks to Marc Nijdam * Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport. Fix thanks to Arne Bernin - * Added support for "sh -c command args...", thanks to - Marius Groeger + * Several fixes from Marius Groeger + - Added support for "sh -c command args..." + - Fixed globbing, i.e. 'echo * *' and 'echo "******"' now work. + - Added shell environment variable substitution + - Added the "read" shell builtin. + * Fixed cursor editing in cmdedit.c. The following keyboard sequence + used to create an infinite loop: ls, cursor up, left, down. * Added support for being a login shell, so things like '-su' or '-sh' (stuff where argv[0][0]=='-') will now always invoke the shell. Now you can use BusyBox as a login shell. * ls.c now ignores '-g', since some ftp clients like that sort of thing. Patch thanks to David Vrabel + * Fix to init.c from Stuart Menefy so that + it always sets the controlling terminal before running any programs -Erik Andersen @@ -45,7 +52,7 @@ * Replaced the telnet implementation with one written by Tomi Ollila It works great and costs 3k. * BusyBox sh (lash) now supports being used as a standalone shell. When - BB_FEATURE_STANDALONE_SHELL is defined, all the busybox commands may + BB_FEATURE_SH_STANDALONE_SHELL is defined, all the busybox commands may be invoked as shell internals. Best used when compiling staticly (i.e. DOSTATIC=true) * BusyBox sh (lash) internals now behave as expected wrt pipes diff --git a/Makefile b/Makefile index 16573ea89..f1153830b 100644 --- a/Makefile +++ b/Makefile @@ -87,24 +87,52 @@ ifdef BB_INIT_SCRIPT CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"' endif -all: busybox busybox.links doc +all: busybox busybox.links olddoc #doc -doc: docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html -docs/BusyBox.txt: docs/busybox.pod +# New docs based on DOCBOOK SGML +doc: docs/BusyBox.txt docs/BusyBox.html docs/BusyBox.pdf + +docs/BusyBox.txt: docs/busybox.sgml @echo @echo BusyBox Documentation @echo - - pod2text docs/busybox.pod > docs/BusyBox.txt + (cd docs; sgmltools -b txt busybox.sgml) -docs/BusyBox.1: docs/busybox.pod - - pod2man --center=BusyBox --release="version $(VERSION)" docs/busybox.pod > docs/BusyBox.1 +docs/BusyBox.dvi: docs/busybox.sgml + (cd docs; sgmltools -b dvi busybox.sgml) + +docs/BusyBox.ps: docs/BusyBox.dvi + (cd docs; sgmltools -b ps busybox.sgml) + +docs/BusyBox.pdf: docs/BusyBox.ps + (cd docs; ps2pdf busybox.ps) + +docs/busybox.lineo.com/BusyBox.html: docs/busybox.sgml + (cd docs/busybox.lineo.com; sgmltools -b html ../busybox.sgml) docs/BusyBox.html: docs/busybox.lineo.com/BusyBox.html - rm -f docs/BusyBox.html - ln -s busybox.lineo.com/BusyBox.html docs/BusyBox.html -docs/busybox.lineo.com/BusyBox.html: docs/busybox.pod + +# Old Docs... +olddoc: olddoc/BusyBox.txt olddoc/BusyBox.1 olddoc/BusyBox.html + +olddoc/BusyBox.txt: docs/busybox.pod + @echo + @echo BusyBox Documentation + @echo + - pod2text docs/busybox.pod > docs/BusyBox.txt + +olddoc/BusyBox.1: docs/busybox.pod + - pod2man --center=BusyBox --release="version $(VERSION)" docs/busybox.pod > docs/BusyBox.1 + +olddoc/BusyBox.html: olddoc/busybox.lineo.com/BusyBox.html + - rm -f docs/BusyBox.html + - ln -s busybox.lineo.com/BusyBox.html docs/BusyBox.html + +olddoc/busybox.lineo.com/BusyBox.html: docs/busybox.pod - pod2html docs/busybox.pod > docs/busybox.lineo.com/BusyBox.html - rm -f pod2html* @@ -125,8 +153,9 @@ clean: - rm -f busybox.links *~ *.o core - rm -rf _install - cd tests && $(MAKE) clean - - rm -f docs/BusyBox.html docs/busybox.lineo.com/BusyBox.html \ - docs/BusyBox.1 docs/BusyBox.txt pod2html* + - rm -f docs/busybox.txt docs/busybox.dvi docs/busybox.ps \ + docs/busybox.pdf docs/busybox.lineo.com/busybox.html + - rm -rf docs/busybox distclean: clean - rm -f busybox diff --git a/docs/busybox.net/index.html b/docs/busybox.net/index.html index 806f2f058..f98f6ea00 100644 --- a/docs/busybox.net/index.html +++ b/docs/busybox.net/index.html @@ -170,6 +170,7 @@ I know of the following projects that use BusyBox
  • tomsrtbt
  • Stormix Installer
  • EMAC Linux 2.0 SBC +
  • Trinux Do you use BusyBox? I'd love to know about it and I'd be happy to link to you. diff --git a/docs/busybox.sgml b/docs/busybox.sgml index cf7161a23..ac3e7e749 100644 --- a/docs/busybox.sgml +++ b/docs/busybox.sgml @@ -1,326 +1,235 @@ - - - - - - - + + + + BusyBox - The Swiss Army Knife of Embedded Linux + + + + This documentation is free software; you can redistribute + it and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later + version. + + + + This program is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + + + You should have received a copy of the GNU General Public + License along with this program; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + MA 02111-1307 USA + + + + For more details see the file COPYING in the source + distribution of Linux. + + + + + + + Introduction + + + 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. + + + + 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). + + + + + + How to use BusyBox + + Syntax + + BusyBox <function> [arguments...] # or + + + + + + <function> [arguments...] # if symlinked + + + + + + + + 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. + + + + For example, entering + + + + + ln -s ./BusyBox ls + ./ls + + + + + will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled + into BusyBox). + + + + 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'. + + + + + + + Most BusyBox commands support the --help option to provide + a terse runtime description of their behavior. + + + + + + BusyBox Commands + + Available BusyBox Commands + + Currently defined functions include: + + + + ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date, + dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset, + fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt, + head, hostid, hostname, id, init, insmod, kill, killall, length, ln, + loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir, + mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc, + nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed, + setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail, + tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update, + uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [ + + + + + + ar + + + Usage: ar [optxvV] archive [filenames] + + + + Extract or list files from an ar archive. + + + + Options: + + + + + o preserve original dates + p extract to stdout + t list + x extract + v verbosely list files processed + + + + + + + + + basename + + Usage: basename FILE [SUFFIX] + + + + Strips directory path and suffixes from FILE. If specified, also removes + any trailing SUFFIX. + + + + Example: + + + + + $ basename /usr/local/bin/foo + foo + $ basename /usr/local/bin/ + bin + $ basename /foo/bar.txt .txt + bar + + + + + + + cat + + + Usage: cat [FILE ...] + + + + Concatenates FILE(s) and prints them to the standard + output. + + + + Example: + + + + + $ cat /proc/uptime + 110716.72 17.67 + + + + - - -BusyBox - The Swiss Army Knife of Embedded Linux - - -NAME - - - - - - - - -BusyBox - The Swiss Army Knife of Embedded Linux - - - - -SYNTAX - - - - - - - - - - BusyBox <function> [arguments...] # or - - - - - - - - <function> [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 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. - - - - - -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). - - - - - - -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. - - - - - -For example, entering - - - - - - - ln -s ./BusyBox ls - ./ls - - - - - - -will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled -into BusyBox). - - - - - -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'. - - - - - - -COMMON OPTIONS - - - - - - - - -Most BusyBox commands support the --help option to provide a terse runtime description of their behavior. - - - - - - -COMMANDS - - - - - - - - -Currently defined functions include: - - - - - -ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date, -dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset, -fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt, -head, hostid, hostname, id, init, insmod, kill, killall, length, ln, -loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir, -mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc, -nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed, -setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail, -tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update, -uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [ - - - - - -------------------------------- - - - - - -ar - - - - - -Usage: ar [optxvV] archive [filenames] - - - - - -Extract or list files from an ar archive. - - - - - -Options: - - - - - - - o preserve original dates - p extract to stdout - t list - x extract - v verbosely list files processed - - - - - - -------------------------------- - - - - - -basename - - - - - -Usage: basename FILE [SUFFIX] - - - - - -Strips directory path and suffixes from FILE. If specified, also removes -any trailing SUFFIX. - - - - - -Example: - - - - - - - $ basename /usr/local/bin/foo - foo - $ basename /usr/local/bin/ - bin - $ basename /foo/bar.txt .txt - bar - - - - - - -------------------------------- - - - - - -cat - - - - - -Usage: cat [FILE ...] - - - - - -Concatenates FILE(s) and prints them to the standard -output. - - - - - -Example: - - - - - - - $ cat /proc/uptime - 110716.72 17.67 - - - - -------------------------------