X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=docs%2Fbusybox.sgml;h=2d372506b190a3ccd2591b3c00e22b87f845c0ac;hb=4bcdd7214217bfdaa2c4015425d439686d5b8b0b;hp=d590237bf10dd5d7cf622bef5cecef70d48a5fe2;hpb=918507eddaa70b3f75196802b8f905f97bd5f5b6;p=oweals%2Fbusybox.git diff --git a/docs/busybox.sgml b/docs/busybox.sgml index d590237bf..2d372506b 100644 --- a/docs/busybox.sgml +++ b/docs/busybox.sgml @@ -1,4 +1,4 @@ - + BusyBox - The Swiss Army Knife of Embedded Linux @@ -59,8 +59,8 @@ How to use BusyBox - - Syntax + Syntax @@ -75,7 +75,9 @@ - + + Invoking BusyBox + 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 @@ -115,7 +117,9 @@ - + + Common options + Most BusyBox commands support the --help option to provide a terse runtime description of their behavior. @@ -125,7 +129,7 @@ BusyBox Commands - + Available BusyBox Commands Currently defined functions include: @@ -133,8 +137,8 @@ ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, - cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, du, - dumpkmap, dutmp, echo, false, fbset, fdflush, find, free, + cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dpkg-deb, + du, dumpkmap, 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, @@ -741,6 +745,57 @@ + + dos2unix + + + Usage: dos2unix < dosfile > unixfile + + + + Converts a text file from dos format to unix format. + + + + + + dpkg-deb + + + Usage: dpkg-deb [OPTION] archive [directory] + + + + Debian package archive (.deb) manipulation tool + + + + Options: + + + + + -c List the contents of the filesystem tree archive portion of the package + -e Extracts the control information files from a package archive into the specified directory. + If no directory is specified then a subdirectory DEBIAN in the current directory is used. + -x Silently extracts the filesystem tree from a package archive into the specified directory. + -X Extracts the filesystem tree from a package archive into the specified directory, listing the files as it goes. + If required the specified directory (but not its parents) will be created. + + + + + Example: + + + + + dpkg-deb -e ./busybox_0.48-1_i386.deb + dpkg-deb -x ./busybox_0.48-1_i386.deb ./unpack_dir + + + + du @@ -750,7 +805,7 @@ Summarize the disk space used for each FILE or current - directory. Disk space printed in units of 1k (i.e. + directory. Disk space printed in units of 1k (i.e., 1024 bytes). @@ -794,7 +849,17 @@ - Prints out a binary keyboard translation table to standard input. + Prints out a binary keyboard translation table to standard output. + + + + Example: + + + + + $ dumpkmap < keymap + @@ -869,6 +934,58 @@ + + expr + + + Usage: expr EXPRESSION + + + + Prints the value of EXPRESSION to standard output. + + + + EXPRESSION may be: + + + + + ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2 + ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0 + ARG1 < ARG2 ARG1 is less than ARG2 + ARG1 <= ARG2 ARG1 is less than or equal to ARG2 + ARG1 = ARG2 ARG1 is equal to ARG2 + ARG1 != ARG2 ARG1 is unequal to ARG2 + ARG1 >= ARG2 ARG1 is greater than or equal to ARG2 + ARG1 > ARG2 ARG1 is greater than ARG2 + ARG1 + ARG2 arithmetic sum of ARG1 and ARG2 + ARG1 - ARG2 arithmetic difference of ARG1 and ARG2 + ARG1 * ARG2 arithmetic product of ARG1 and ARG2 + ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2 + ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2 + STRING : REGEXP anchored pattern match of REGEXP in STRING + match STRING REGEXP same as STRING : REGEXP + substr STRING POS LENGTH substring of STRING, POS counted from 1 + index STRING CHARS index in STRING where any CHARS is found, or 0 + length STRING length of STRING + quote TOKEN interpret TOKEN as a string, even if it is a + keyword like `match' or an operator like `/' + ( EXPRESSION ) value of EXPRESSION + + + + + Beware that many operators need to be escaped or quoted for shells. + Comparisons are arithmetic if both ARGs are numbers, else + lexicographical. Pattern matches return the string matched between + \( and \) or null; if \( and \) are not used, they return the number + of characters matched or 0. + + + + + false @@ -971,7 +1088,9 @@ -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 + -type X Filetype matches X (where X is one of: f,d,l,b,c,...) + -perm PERMS Permissions match any of (+NNN); all of (-NNN); or exactly (NNN) + -mtime TIME Modified time is greater than (+N); less than (-N); or exactly (N) days @@ -1199,7 +1318,7 @@ -< + gzip @@ -1218,6 +1337,7 @@ -c Write output to standard output + -d decompress @@ -1318,10 +1438,10 @@ - -s Short - -i Addresses for the hostname - -d DNS domain name - -F FILE Use the contents of FILE to specify the hostname + -s Short + -i Addresses for the hostname + -d DNS domain name + -F, --file FILE Use the contents of FILE to specify the hostname @@ -1356,6 +1476,7 @@ -g Print only the group ID -u Print only the user ID + -n print a name instead of a number (with for -ug) -r Print the real user ID instead of the effective ID (with -ug) @@ -1427,24 +1548,23 @@ <id>:<runlevels>:<action>:<process> - + id - 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. + + 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, the controlling tty is set + to the console. Also note that if BusyBox detects that a serial + console is in use, then only entries whose controlling tty is + either the serial console or /dev/null will be run. BusyBox init + does nothing with utmp. We don't need no stinkin' utmp. + @@ -1459,24 +1579,56 @@ action + + + Valid actions include: sysinit, respawn, askfirst, wait, + once, and ctrlaltdel. + + + + + The available actions can be classified into two groups: actions + that are run only once, and actions that are re-run when the specified + process exits. + + + + Run only-once actions: + + - Valid actions include: sysinit, respawn, - askfirst, wait, once, and ctrlaltdel. + 'sysinit' is the first item run on boot. init waits until all + sysinit actions are completed before continuing. Following the + completion of all sysinit actions, all 'wait' actions are run. + 'wait' actions, like 'sysinit' actions, cause init to wait until + the specified task completes. 'once' actions are asyncronous, + therefore, init does not wait for them to complete. 'ctrlaltdel' + actions are run immediately before init causes the system to reboot + (unmounting filesystems with a 'ctrlaltdel' action is a very good + idea). - 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. + Run repeatedly actions: - Unrecognized actions (like initdefault) will - cause init to emit an error message, and then go - along with its business. + 'respawn' actions are run after the 'once' actions. When a process + started with a 'respawn' action exits, init automatically restarts + it. Unlike sysvinit, BusyBox init does not stop processes from + respawning out of control. The 'askfirst' actions acts just like + respawn, except that 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. + + + Unrecognized actions (like initdefault) will cause init to emit an + error message, and then go along with its business. All actions are + run in the reverse order from how they appear in /etc/inittab. + + @@ -1488,41 +1640,43 @@ - - Example /etc/inittab file: - - - - - # This is run first except when booting in single-user mode. - # - ::sysinit:/etc/init.d/rcS - - # /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 - - # /sbin/getty invocations for selected ttys - # - tty4::respawn:/sbin/getty 38400 tty4 - tty5::respawn:/sbin/getty 38400 tty5 - - # 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 - - # Stuff to do before rebooting - ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1 - ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1 - - + + Example /etc/inittab file + + + + # This is run first except when booting in single-user mode. + # + ::sysinit:/etc/init.d/rcS + + # /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-4 + tty2::askfirst:-/bin/sh + tty2::askfirst:-/bin/sh + tty2::askfirst:-/bin/sh + + # /sbin/getty invocations for selected ttys + # + tty4::respawn:/sbin/getty 38400 tty5 + tty5::respawn:/sbin/getty 38400 tty6 + + # Example of how to put a getty on a serial line (for a terminal) + # + #::respawn:/sbin/getty -L ttyS0 9600 vt100 + #::respawn:/sbin/getty -L ttyS1 9600 vt100 + # + # Example how to put a getty on a modem line. + #::respawn:/sbin/getty 57600 ttyS2 + + # Stuff to do before rebooting + ::ctrlaltdel:/bin/umount -a -r + ::ctrlaltdel:/sbin/swapoff + + + @@ -1546,6 +1700,7 @@ -k Make module autoclean-able. -v Verbose output -x Do not export externs + -L Prevent simultaneous loads of the same module @@ -1759,7 +1914,7 @@ - Write MESSAGE to the system log. If MESSAGE is '-', log + Write MESSAGE to the system log. If MESSAGE is omitted, log stdin. @@ -1841,6 +1996,7 @@ -A Do not list implied . and .. -C List entries by columns -F Append indicator (one of */=@|) to entries + -L list entries pointed to by symbolic links -R List subdirectories recursively @@ -2129,7 +2285,7 @@ Creates a temporary file with its name based on - TEMPLATE. TEMPLATE is any name with six `Xs' (i.e. + TEMPLATE. TEMPLATE is any name with six `Xs' (i.e., /tmp/temp.XXXXXX). @@ -2296,7 +2452,12 @@ - Open a pipe to HOST:PORT. + or: nc -p PORT -l + + + + + Open a pipe to HOST:PORT or listen for a connection on PORT. @@ -2567,6 +2728,7 @@ + -i Always prompt before removing each destinations -f Remove existing destinations, never prompt -r or -R Remove the contents of directories recursively @@ -2908,7 +3070,8 @@ -n Run as a foreground process -K Do not start up the klogd process -O FILE Use an alternate log file (default=/var/log/messages) - -R HOST[:PORT] Log messages to HOST on PORT (default=514) over UDP. + -R HOST[:PORT] Log remotely to IP or hostname on PORT (default PORT=514/UDP) + -L Log locally as well as network logging (default is network only) @@ -3066,8 +3229,8 @@ - or: [ EXPRESSION ] + Check file types and compare values returning an exit @@ -3244,7 +3407,7 @@ -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) + -f Force filesystem umount (i.e., unreachable NFS server) -l Do not free loop device (if a loop device has been used) @@ -3312,6 +3475,18 @@ INPUT (or stdin), writing to OUTPUT (or stdout). + + Options: + + + + + -c prefix lines by the number of occurrences + -d only print duplicate lines + -u only print unique lines + + + Example: @@ -3325,6 +3500,32 @@ + + + unix2dos + + + Usage: unix2dos < unixfile > dosfile + + + + Converts a text file from unix format to dos format. + + + + + + unrpm + + + Usage: unrpm < package.rpm | gzip -d | cpio -idmuv + + + + Extracts an rpm archive. + + + update @@ -3467,6 +3668,18 @@ + + watchdog + + + Usage: watchdog device + + + + Periodically writes to watchdog device B. + + + wc @@ -3552,6 +3765,40 @@ + + xargs + + + Usage: xargs [OPTIONS] [COMMAND] [ARGS...] + + + + Executes COMMAND on every item given by standard input. + + + + Options: + + + + + -t Print the command just before it is run + + + + + + Example: + + + + + $ ls | xargs gzip + $ find . -name '*.c' -print | xargs rm + + + + yes @@ -3642,14 +3889,18 @@ AUTHORS - The following people have contributed code to BusyBox whether - they know it or not. + The following people have made significant contributions to + BusyBox -- whether they know it or not. Erik Andersen <andersee@debian.org> + + Edward Betts <edward@debian.org> + + John Beppu <beppu@lineo.com> @@ -3670,6 +3921,14 @@ Karl M. Hegbloom <karlheg@debian.org> + + Daniel Jacobowitz <dan@debian.org> + + + + Matt Kraai <kraai@alumni.carnegiemellon.edu> + + John Lombardo <john@deltanet.com> @@ -3682,14 +3941,26 @@ Bruce Perens <bruce@perens.com> + + Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com> + + Pavel Roskin <proski@gnu.org> + + Gyepi Sam <gyepi@praxis-sw.com> + + Linus Torvalds <torvalds@transmeta.com> + + Mark Whitley <markw@lineo.com> + + Charles P. Wright <cpwright@villagenet.com> @@ -3697,5 +3968,7 @@ Enrique Zanardi <ezanardi@ull.es> + +