summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/docs/busybox.sgml
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
commit008d0be72b2f160382c6e880765e96b64a050c65 (patch)
tree36f48a98a3815a408e2ce1693dd182af90f80305 /release/src/router/busybox/docs/busybox.sgml
parent611becfb8726c60cb060368541ad98191d4532f5 (diff)
downloadtomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.gz
tomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.bz2
imported original firmware WRT54GL_v4.30.11_11_US
Diffstat (limited to 'release/src/router/busybox/docs/busybox.sgml')
-rw-r--r--release/src/router/busybox/docs/busybox.sgml3974
1 files changed, 3974 insertions, 0 deletions
diff --git a/release/src/router/busybox/docs/busybox.sgml b/release/src/router/busybox/docs/busybox.sgml
new file mode 100644
index 00000000..2d372506
--- /dev/null
+++ b/release/src/router/busybox/docs/busybox.sgml
@@ -0,0 +1,3974 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ ]>
+<book id="BusyBoxDocumentation">
+ <bookinfo>
+ <title>BusyBox - The Swiss Army Knife of Embedded Linux</title>
+
+ <legalnotice>
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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
+ </para>
+
+ <para>
+ For more details see the file COPYING in the source
+ distribution of Linux.
+ </para>
+ </legalnotice>
+ </bookinfo>
+
+<toc></toc>
+ <chapter id="Introduction">
+ <title>Introduction</title>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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).
+ </para>
+ </chapter>
+
+ <chapter id="Syntax">
+ <title>How to use BusyBox</title>
+ <sect1 id="How-to-use-BusyBox">
+ <title>Syntax</title>
+
+ <para>
+ <screen>
+ BusyBox &lt;function&gt; [arguments...] # or
+ </screen>
+ </para>
+
+ <para>
+ <screen>
+ &lt;function&gt; [arguments...] # if symlinked
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="Invoking-BusyBox">
+ <title>Invoking BusyBox</title>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ For example, entering
+ </para>
+
+ <para>
+ <screen>
+ ln -s ./BusyBox ls
+ ./ls
+ </screen>
+ </para>
+
+ <para>
+ will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
+ into BusyBox).
+ </para>
+
+ <para>
+ You can also invoke BusyBox by issuing the command as an argument on the
+ command line. For example, entering
+ </para>
+
+ <para>
+ <screen>
+ ./BusyBox ls
+ </screen>
+ </para>
+
+ <para>
+ will also cause BusyBox to behave as 'ls'.
+ </para>
+
+ </sect1>
+
+ <sect1 id="Common-options">
+ <title>Common options</title>
+
+ <para>
+ Most BusyBox commands support the <emphasis>--help</emphasis> option to provide
+ a terse runtime description of their behavior.
+ </para>
+ </sect1>
+ </chapter>
+
+ <chapter id="Commands">
+ <title>BusyBox Commands</title>
+ <sect1 id="Available-BusyBox-Commands">
+ <title>Available BusyBox Commands</title>
+ <para>
+ Currently defined functions include:
+ </para>
+
+ <para>
+ ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear,
+ 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,
+ makedevs, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp,
+ more, mount, mt, mv, nc, nslookup, ping, poweroff, printf, ps,
+ pwd, reboot, renice, reset, rm, rmdir, rmmod, sed, setkeycodes, 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, [
+ </para>
+ </sect1>
+
+ <sect1 id="ar">
+ <title>ar</title>
+
+ <para>
+ Usage: ar [OPTION] archive [FILENAME]...
+ </para>
+
+ <para>
+ Extract or list files from an ar archive.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ o Preserve original dates
+ p Extract to stdout
+ t List
+ x Extract
+ v Verbosely list files processed
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="basename">
+ <title>basename</title>
+ <para>
+ Usage: basename FILE [SUFFIX]
+ </para>
+
+ <para>
+ Strip directory path and suffixes from FILE. If specified, also removes
+ any trailing SUFFIX.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ basename /usr/local/bin/foo
+ foo
+ $ basename /usr/local/bin/
+ bin
+ $ basename /foo/bar.txt .txt
+ bar
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="cat">
+ <title>cat</title>
+
+ <para>
+ Usage: cat [FILE]...
+ </para>
+
+ <para>
+ Concatenate <literal>FILE(s)</literal> and prints them to the standard
+ output.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ cat /proc/uptime
+ 110716.72 17.67
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="chgrp">
+ <title>chgrp</title>
+
+ <para>
+ Usage: chgrp [OPTION]... GROUP FILE...
+ </para>
+
+ <para>
+ Change the group membership of each FILE to GROUP.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -R Change files and directories recursively
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="chmod">
+ <title>chmod</title>
+
+ <para>
+ Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
+ </para>
+
+ <para>
+ Change file access permissions for the specified
+ <literal>FILE(s)</literal> (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 PERMISSION for
+ <literal>FILE(s)</literal> (or directories).
+ </para>
+
+ <para>
+ WHO may be chosen from
+ </para>
+
+ <para>
+ <screen>
+ 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
+ </screen>
+ </para>
+
+ <para>
+ OPERATOR may be chosen from
+ </para>
+
+ <para>
+ <screen>
+ + Add a permission
+ - Remove a permission
+ = Assign a permission
+ </screen>
+ </para>
+
+ <para>
+ PERMISSION may be chosen from
+ </para>
+
+ <para>
+ <screen>
+ r Read
+ w Write
+ x Execute (or access for directories)
+ s Set user (or group) ID bit
+ t Sticky bit (for directories prevents removing files by non-owners)
+ </screen>
+ </para>
+
+ <para>
+ Alternately, permissions can be set numerically where the first three
+ numbers are calculated by adding the octal values, such as
+ </para>
+
+ <para>
+ <screen>
+ 4 Read
+ 2 Write
+ 1 Execute
+ </screen>
+ </para>
+
+ <para>
+ An optional fourth digit can also be used to specify
+ </para>
+
+ <para>
+ <screen>
+ 4 Set user ID
+ 2 Set group ID
+ 1 Sticky bit
+ </screen>
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -R Change files and directories recursively.
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="chown">
+ <title>chown</title>
+ <para>
+ Usage: chown [OPTION]... OWNER[&lt;.|:&gt;[GROUP] FILE...
+ </para>
+
+ <para>
+ Change the owner and/or group of each FILE to OWNER and/or GROUP.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -R Change files and directories recursively
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="chroot">
+ <title>chroot</title>
+ <para>
+ Usage: chroot NEWROOT [COMMAND...]
+ </para>
+
+ <para>
+ Run COMMAND with root directory set to NEWROOT.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ ls -l /bin/ls
+ lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -&gt; /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*
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="chvt">
+ <title>chvt</title>
+ <para>
+ Usage: chvt N
+ </para>
+
+ <para>
+ Change the foreground virtual terminal to /dev/ttyN
+ </para>
+ </sect1>
+
+ <sect1 id="clear">
+ <title>clear</title>
+
+ <para>
+ Usage: clear
+ </para>
+
+ <para>
+ Clear the screen.
+ </para>
+ </sect1>
+
+ <sect1 id="cp">
+ <title>cp</title>
+
+ <para>
+ Usage: cp [OPTION]... SOURCE DEST
+ </para>
+
+ <para>
+ <screen>
+ or: cp [OPTION]... SOURCE... DIRECTORY
+ </screen>
+ </para>
+
+ <para>
+ Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
+ DIRECTORY.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Same as -dpR
+ -d Preserve links
+ -p Preserve file attributes if possible
+ -R Copy directories recursively
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="cut">
+ <title>cut</title>
+
+ <para>
+ Usage: cut [OPTION]... [FILE]...
+ </para>
+
+ <para>
+ Print selected fields from each input FILE to standard output.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -b LIST Output only bytes from LIST
+ -c LIST Output only characters from LIST
+ -d CHAR Use CHAR instead of tab as the field delimiter
+ -s Output only the lines containing delimiter
+ -f N Print only these fields
+ -n Ignored
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo "Hello world" | cut -f 1 -d ' '
+ Hello
+ $ echo "Hello world" | cut -f 2 -d ' '
+ world
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="date">
+ <title>date</title>
+
+ <para>
+ Usage: date [OPTION]... [+FORMAT]
+ </para>
+
+ <para>
+ <screen>
+ or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
+ </screen>
+ </para>
+
+ <para>
+ Display the current time in the given FORMAT, or set the system date.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -R Output RFC-822 compliant date string
+ -s Set time described by STRING
+ -u Print or set Coordinated Universal Time
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ date
+ Wed Apr 12 18:52:41 MDT 2000
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dc">
+ <title>dc</title>
+
+ <para>
+ Usage: dc [EXPRESSION]
+ </para>
+
+ <para>
+ This is a Tiny RPN calculator that understands the
+ following operations: +, -, /, *, and, or, not, eor. If
+ no arguments are given, dc will process input from
+ stdin.
+ </para>
+
+ <para>
+ The behaviour of BusyBox/dc deviates (just a little ;-)
+ from GNU/dc, but this will be remedied in the future.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ dc 2 2 +
+ 4
+ $ dc 8 8 \* 2 2 + /
+ 16
+ $ dc 0 1 and
+ 0
+ $ dc 0 1 or
+ 1
+ $ echo 72 9 div 8 mul | dc
+ 64
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dd">
+ <title>dd</title>
+
+ <para>
+ Usage: dd [OPTION]...
+ </para>
+
+ <para>
+ Copy a file, converting and formatting according to
+ options.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ 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
+ </screen>
+ </para>
+
+ <para>
+ Numbers may be suffixed by w (x2), k (x1024), b (x512),
+ or M (x1024^2).
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
+ 4+0 records in
+ 4+0 records out
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="deallocvt">
+ <title>deallocvt</title>
+
+ <para>
+ Usage: deallocvt N
+ </para>
+
+ <para>
+ Deallocate unused virtual terminal /dev/ttyN.
+ </para>
+ </sect1>
+
+ <sect1 id="df">
+ <title>df</title>
+
+ <para>
+ Usage: df [FILE]...
+ </para>
+
+ <para>
+ Print the filesystem space used and space available.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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% /
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dirname">
+ <title>dirname</title>
+
+ <para>
+ Usage: dirname NAME
+ </para>
+
+ <para>
+ Strip non-directory suffix from NAME.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ dirname /tmp/foo
+ /tmp
+ $ dirname /tmp/foo/
+ /tmp
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dmesg">
+ <title>dmesg</title>
+
+ <para>
+ Usage: dmesg [OPTION]...
+ </para>
+
+ <para>
+ Print or control the kernel ring buffer.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Clear the ring buffer after printing
+ -n LEVEL Set the console logging level to LEVEL
+ -s BUFSIZE Query ring buffer using a buffer of BUFSIZE
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dos2unix">
+ <title>dos2unix</title>
+
+ <para>
+ Usage: dos2unix < dosfile > unixfile
+ </para>
+
+ <para>
+ Converts a text file from dos format to unix format.
+ </para>
+
+ </sect1>
+
+ <sect1 id="dpkg-deb">
+ <title>dpkg-deb</title>
+
+ <para>
+ Usage: dpkg-deb [OPTION] archive [directory]
+ </para>
+
+ <para>
+ Debian package archive (.deb) manipulation tool
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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.
+ </screen>
+ <para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ dpkg-deb -e ./busybox_0.48-1_i386.deb
+ dpkg-deb -x ./busybox_0.48-1_i386.deb ./unpack_dir
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="du">
+ <title>du</title>
+
+ <para>
+ Usage: du [OPTION]... [FILE]...
+ </para>
+
+ <para>
+ Summarize the disk space used for each FILE or current
+ directory. Disk space printed in units of 1k (i.e.,
+ 1024 bytes).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -l Count sizes many times if hard linked
+ -s Display only a total for each argument
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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 .
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dumpkmap">
+ <title>dumpkmap</title>
+
+ <para>
+ Usage: dumpkmap
+ </para>
+
+ <para>
+ Prints out a binary keyboard translation table to standard output.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ dumpkmap &lt; keymap
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="dutmp">
+ <title>dutmp</title>
+
+ <para>
+ Usage: dutmp [FILE]
+ </para>
+
+ <para>
+ Dump utmp file format (pipe delimited) from FILE or
+ stdin to stdout.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="echo">
+ <title>echo</title>
+
+ <para>
+ Usage: echo [OPTION]... [ARG]...
+ </para>
+
+ <para>
+ Print ARGs to stdout.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -n Suppress trailing newline
+ -e Enable interpretation of escaped characters
+ -E Disable interpretation of escaped characters
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo "Erik is cool"
+ Erik is cool
+ $ echo -e "Erik\nis\ncool"
+ Erik
+ is
+ cool
+ $ echo "Erik\nis\ncool"
+ Erik\nis\ncool
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="expr">
+ <title>expr</title>
+
+ <para>
+ Usage: expr EXPRESSION
+ </para>
+
+ <para>
+ Prints the value of EXPRESSION to standard output.
+ </para>
+
+ <para>
+ EXPRESSION may be:
+ </para>
+
+ <para>
+ <screen>
+ 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 &lt ARG2 ARG1 is less than ARG2
+ ARG1 &lt= ARG2 ARG1 is less than or equal to ARG2
+ ARG1 = ARG2 ARG1 is equal to ARG2
+ ARG1 != ARG2 ARG1 is unequal to ARG2
+ ARG1 &gt= ARG2 ARG1 is greater than or equal to ARG2
+ ARG1 &gt 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
+ </screen>
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ </sect1>
+
+
+ <sect1 id="false">
+ <title>false</title>
+
+ <para>
+ Usage: false
+ </para>
+
+ <para>
+ Return an exit code of FALSE (1).
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ false
+ $ echo $?
+ 1
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="fbset">
+ <title>fbset</title>
+
+ <para>
+ Usage: fbset [OPTION]... [MODE]
+ </para>
+
+ <para>
+ Show and modify frame buffer device settings.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -h Display option summary
+ -fb DEVICE Operate on DEVICE
+ -db FILE Use FILE for mode database
+ -g XRES YRES VXRES VYRES DEPTH Set all geometry parameters
+ -t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN Set all timing parameters
+ -xres RES Set visible horizontal resolution
+ -yres RES Set visible vertical resolution
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="fdflush">
+ <title>fdflush</title>
+
+ <para>
+ Usage: fdflush DEVICE
+ </para>
+
+ <para>
+ Force floppy disk drive to detect disk change on DEVICE.
+ </para>
+ </sect1>
+
+ <sect1 id="find">
+ <title>find</title>
+
+ <para>
+ Usage: find [PATH]... [EXPRESSION]
+ </para>
+
+ <para>
+ Search for files in a directory hierarchy. The default
+ PATH is the current directory; default EXPRESSION is
+ '-print'.
+ </para>
+
+ <para>
+ EXPRESSION may consist of:
+ </para>
+
+ <para>
+ <screen>
+ -follow Dereference symbolic links
+ -name PATTERN File name (leading directories removed) matches PATTERN
+ -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
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ find / -name /etc/passwd
+ /etc/passwd
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="free">
+ <title>free</title>
+
+ <para>
+ Usage: free
+ </para>
+
+ <para>
+ Displays the amount of free and used system memory.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ free
+ total used free shared buffers
+ Mem: 257628 248724 8904 59644 93124
+ Swap: 128516 8404 120112
+ Total: 386144 257128 129016
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="freeramdisk">
+ <title>freeramdisk</title>
+
+ <para>
+ Usage: freeramdisk DEVICE
+ </para>
+
+ <para>
+ Free all memory used by the ramdisk DEVICE.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ freeramdisk /dev/ram2
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="fsck.minix">
+ <title>fsck.minix</title>
+
+ <para>
+ Usage: fsck.minix [OPTION]... DEVICE
+ </para>
+
+ <para>
+ Perform a consistency check on the MINIX filesystem on
+ DEVICE.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -l List all filenames
+ -r Perform interactive repairs
+ -a Perform automatic repairs
+ -v Verbose
+ -s Output super-block information
+ -m Activate MINIX-like "mode not cleared" warnings
+ -f Force file system check.
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="getopt">
+ <title>getopt</title>
+
+ <para>
+ Usage: getopt [OPTIONS]...
+ </para>
+
+ <para>
+ Parse command options
+ </para>
+
+ <para>
+ <screen>
+ -a, --alternative Allow long options starting with single -\n"
+ -l, --longoptions=longopts Long options to be recognized\n"
+ -n, --name=progname The name under which errors are reported\n"
+ -o, --options=optstring Short options to be recognized\n"
+ -q, --quiet Disable error reporting by getopt(3)\n"
+ -Q, --quiet-output No normal output\n"
+ -s, --shell=shell Set shell quoting conventions\n"
+ -T, --test Test for getopt(1) version\n"
+ -u, --unqote Do not quote the output\n"
+ </screen>
+ </para>
+
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ cat getopt.test
+ #!/bin/sh
+ GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \
+ -n 'example.busybox' -- "$@"`
+ if [ $? != 0 ] ; then exit 1 ; fi
+ eval set -- "$GETOPT"
+ while true ; do
+ case $1 in
+ -a|--a-long) echo "Option a" ; shift ;;
+ -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;
+ -c|--c-long)
+ case "$2" in
+ "") echo "Option c, no argument"; shift 2 ;;
+ *) echo "Option c, argument \`$2'" ; shift 2 ;;
+ esac ;;
+ --) shift ; break ;;
+ *) echo "Internal error!" ; exit 1 ;;
+ esac
+ done
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="grep">
+ <title>grep</title>
+
+ <para>
+ Usage: grep [OPTIONS]... PATTERN [FILE]...
+ </para>
+
+ <para>
+ Search for PATTERN in each FILE or stdin.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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
+ </screen>
+ </para>
+
+ <para>
+ This version of grep matches full regular expressions.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="gunzip">
+ <title>gunzip</title>
+
+ <para>
+ Usage: gunzip [OPTION]... FILE
+ </para>
+
+ <para>
+ Uncompress FILE (or stdin if FILE is '-').
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Write output to standard output
+ -t Test compressed file integrity
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="gzip">
+ <title>gzip</title>
+
+ <para>
+ Usage: gzip [OPTION]... FILE
+ </para>
+
+ <para>
+ Compress FILE (or stdin if FILE is '-') with maximum
+ compression to FILE.gz (or stdout if FILE is '-').
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Write output to standard output
+ -d decompress
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="halt">
+ <title>halt</title>
+
+ <para>
+ Usage: halt
+ </para>
+
+ <para>
+ Halt the system.
+ </para>
+ </sect1>
+
+ <sect1 id="head">
+ <title>head</title>
+
+ <para>
+ Usage: head [OPTION] FILE...
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -n NUM Print first NUM lines instead of first 10
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ head -n 2 /etc/passwd
+ root:x:0:0:root:/root:/bin/bash
+ daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="hostid">
+ <title>hostid</title>
+
+ <para>
+ Usage: hostid
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </sect1>
+
+ <sect1 id="hostname">
+ <title>hostname</title>
+
+ <para>
+ Usage: hostname [OPTION]... [HOSTNAME|-F FILE]
+ </para>
+
+ <para>
+ Get or set the hostname or DNS domain name. If a
+ hostname is given (or a file with the -F parameter), the
+ host name will be set.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -s Short
+ -i Addresses for the hostname
+ -d DNS domain name
+ -F, --file FILE Use the contents of FILE to specify the hostname
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ hostname
+ slag
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="id">
+ <title>id</title>
+
+ <para>
+ Usage: id [OPTION]... [USERNAME]
+ </para>
+
+ <para>
+ Print information for USERNAME or the current user.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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)
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ id
+ uid=1000(andersen) gid=1000(andersen)
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="init">
+ <title>init</title>
+
+ <para>
+ Usage: init
+ </para>
+
+ <para>
+ Init is the parent of all processes.
+ </para>
+
+ <para>
+ This version of init is designed to be run only by the
+ kernel.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ BusyBox init works just fine without an inittab. If no
+ inittab is found, it has the following default behavior:
+ </para>
+
+ <para>
+ <screen>
+ ::sysinit:/etc/init.d/rcS
+ ::askfirst:/bin/sh
+ </screen>
+ </para>
+
+ <para>
+ If it detects that /dev/console is _not_ a serial
+ console, it will also run:
+ </para>
+
+ <para>
+ <screen>
+ tty2::askfirst:/bin/sh
+ </screen>
+ </para>
+
+ <para>
+ If you choose to use an /etc/inittab file, the inittab
+ entry format is as follows:
+ </para>
+
+ <para>
+ <screen>
+ &lt;id&gt;:&lt;runlevels&gt;:&lt;action&gt;:&lt;process&gt;
+ </screen>
+ </para>
+
+ <sect2>
+ <title>id</title>
+ <para>
+
+ 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.
+
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>runlevels</title>
+
+ <para>
+ The runlevels field is completely ignored.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>action</title>
+
+
+ <para>
+ Valid actions include: sysinit, respawn, askfirst, wait,
+ once, and ctrlaltdel.
+ </para>
+
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Run only-once actions:
+ </para>
+
+ <para>
+ '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).
+ </para>
+
+ <para>
+ Run repeatedly actions:
+ </para>
+
+ <para>
+ '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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>process</title>
+
+ <para>
+ Specifies the process to be executed and its
+ command line.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Example /etc/inittab file</title>
+
+ <para>
+ <screen>
+ # 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
+ </screen>
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="insmod">
+ <title>insmod</title>
+
+ <para>
+ Usage: insmod [OPTION]... MODULE [symbol=value]...
+ </para>
+
+ <para>
+ Load MODULE into the kernel.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -f Force module to load into the wrong kernel version.
+ -k Make module autoclean-able.
+ -v Verbose output
+ -x Do not export externs
+ -L Prevent simultaneous loads of the same module
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="kill">
+ <title>kill</title>
+
+ <para>
+ Usage: kill [OPTION] PID...
+ </para>
+
+ <para>
+ Send a signal (default is SIGTERM) to the specified
+ PID(s).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -l List all signal names and numbers
+ -SIG Send signal SIG
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="killall">
+ <title>killall</title>
+
+ <para>
+ Usage: killall [OPTION] NAME...
+ </para>
+
+ <para>
+ Send a signal (default is SIGTERM) to the specified
+ NAME(s).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -l List all signal names and numbers
+ -SIG Send signal SIG
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ killall apache
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="length">
+ <title>length</title>
+
+ <para>
+ Usage: length STRING
+ </para>
+
+ <para>
+ Print the length of STRING.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ length "Hello"
+ 5
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="ln">
+ <title>ln</title>
+
+ <para>
+ Usage: ln [OPTION]... TARGET FILE|DIRECTORY
+ </para>
+
+ <para>
+ Create a link named FILE or DIRECTORY to the specified
+ TARGET. You may use '--' to indicate that all following
+ arguments are non-options.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -s Make symbolic link instead of hard link
+ -f Remove existing destination file
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ ln -s BusyBox /tmp/ls
+ $ ls -l /tmp/ls
+ lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -&gt; BusyBox*
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="loadacm">
+ <title>loadacm</title>
+
+ <para>
+ Usage: loadacm
+ </para>
+
+ <para>
+ Load an acm from stdin.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ loadacm &lt; /etc/i18n/acmname
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="loadfont">
+ <title>loadfont</title>
+
+ <para>
+ Usage: loadfont
+ </para>
+
+ <para>
+ Load a console font from stdin.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ loadfont &lt; /etc/i18n/fontname
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="loadkmap">
+ <title>loadkmap</title>
+
+ <para>
+ Usage: loadkmap
+ </para>
+
+ <para>
+ Load a binary keyboard translation table from stdin.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ loadkmap &lt; /etc/i18n/lang-keymap
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="logger">
+ <title>logger</title>
+
+ <para>
+ Usage: logger [OPTION]... [MESSAGE]
+ </para>
+
+ <para>
+ Write MESSAGE to the system log. If MESSAGE is omitted, log
+ stdin.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ logger "hello"
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="logname">
+ <title>logname</title>
+
+ <para>
+ Usage: logname
+ </para>
+
+ <para>
+ Print the name of the current user.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ logname
+ root
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="ls">
+ <title>ls</title>
+
+ <para>
+ Usage: ls [OPTION]... [FILE]...
+ </para>
+
+ <para>
+
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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
+ -L list entries pointed to by symbolic links
+ -R List subdirectories recursively
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="lsmod">
+ <title>lsmod</title>
+
+ <para>
+ Usage: lsmod
+ </para>
+
+ <para>
+ List currently loaded kernel modules.
+ </para>
+ </sect1>
+
+ <sect1 id="makedevs">
+ <title>makedevs</title>
+
+ <para>
+ Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s]
+ </para>
+
+ <para>
+ Create a range of block or character special files.
+ </para>
+
+ <para>
+ TYPE may be:
+ </para>
+
+ <para>
+ <screen>
+ 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
+ </screen>
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ makedevs /dev/ttyS c 4 66 2 63
+ [creates ttyS2-ttyS63]
+ $ makedevs /dev/hda b 3 0 0 8 s
+ [creates hda,hda1-hda8]
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="md5sum">
+ <title>md5sum</title>
+
+ <para>
+ Usage: md5sum [OPTION]... FILE...
+ </para>
+
+ <para>
+ Print or check MD5 checksums.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -b Read files in binary mode
+ -c Check MD5 sums against given list
+ -t Read files in text mode (default)
+ -g Read a string
+ </screen>
+ </para>
+
+ <para>
+ The following two options are useful only when verifying
+ checksums:
+ </para>
+
+ <para>
+ <screen>
+ -s Don't output anything, status code shows success
+ -w Warn about improperly formated MD5 checksum lines
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ md5sum busybox
+ 6fd11e98b98a58f64ff3398d7b324003 busybox
+ $ md5sum -c
+ 6fd11e98b98a58f64ff3398d7b324003 busybox
+ 6fd11e98b98a58f64ff3398d7b324002 busybox
+ md5sum: MD5 check failed for 'busybox'
+ ^D
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mkdir">
+ <title>mkdir</title>
+
+ <para>
+ Usage: mkdir [OPTION]... DIRECTORY...
+ </para>
+
+ <para>
+ Create the DIRECTORY(s), if they do not already exist.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -m Set permission mode (as in chmod), not rwxrwxrwx - umask
+ -p No error if directory exists, make parent directories as needed
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mkfifo">
+ <title>mkfifo</title>
+
+ <para>
+ Usage: mkfifo [OPTION] NAME
+ </para>
+
+ <para>
+ Create a named pipe (identical to 'mknod NAME p').
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -m MODE Create the pipe using the specified mode (default a=rw)
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mkfs.minix">
+ <title>mkfs.minix</title>
+
+ <para>
+ Usage: mkfs.minix [OPTION]... NAME [BLOCKS]
+ </para>
+
+ <para>
+ Make a MINIX filesystem.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mknod">
+ <title>mknod</title>
+
+ <para>
+ Usage: mknod [OPTION]... NAME TYPE MAJOR MINOR
+ </para>
+
+ <para>
+ Create a special file (block, character, or pipe).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -m Create the special file using the specified mode (default a=rw)
+ </screen>
+ </para>
+
+ <para>
+ TYPE may be:
+ </para>
+
+ <para>
+ <screen>
+ 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
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ mknod /dev/fd0 b 2 0
+ $ mknod -m 644 /tmp/pipe p
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mkswap">
+ <title>mkswap</title>
+
+ <para>
+ Usage: mkswap [OPTION]... DEVICE [BLOCKS]
+ </para>
+
+ <para>
+ Prepare a disk partition to be used as a swap partition.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Check for read-ability.
+ -v0 Make version 0 swap [max 128 Megs].
+ -v1 Make version 1 swap [big!] (default for kernels &gt; 2.1.117).
+ BLOCKS Number of block to use (default is entire partition).
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mktemp">
+ <title>mktemp</title>
+
+ <para>
+ Usage: mktemp TEMPLATE
+ </para>
+
+ <para>
+ Creates a temporary file with its name based on
+ TEMPLATE. TEMPLATE is any name with six `Xs' (i.e.,
+ /tmp/temp.XXXXXX).
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ mktemp /tmp/temp.XXXXXX
+ /tmp/temp.mWiLjM
+ $ ls -la /tmp/temp.mWiLjM
+ -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="more">
+ <title>more</title>
+
+ <para>
+ Usage: more [FILE]...
+ </para>
+
+ <para>
+ Page through text one screenful at a time.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ dmesg | more
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mount">
+ <title>mount</title>
+
+ <para>
+ Usage: mount [OPTION]...
+ </para>
+
+ <para>
+ <screen>
+ or: mount [OPTION]... DEVICE DIRECTORY
+ </screen>
+ </para>
+
+ <para>
+ Mount filesystems.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Mount all filesystems in /etc/fstab
+ -o One of the many filesystem options listed below
+ -r Mount the filesystem read-only
+ -t TYPE Specify the filesystem type
+ -w Mount the filesystem read-write
+ </screen>
+ </para>
+
+ <para>
+ Options for use with the -o flag:
+ </para>
+
+ <para>
+ <screen>
+ async/sync Writes are asynchronous / synchronous
+ atime/noatime Enable / disable updates to inode access times
+ dev/nodev Allow / disallow use of special device files
+ exec/noexec Allow / disallow use of executable files
+ loop Mount a file via loop device
+ suid/nosuid Allow / disallow set-user-id-root programs
+ remount Remount a currently mounted filesystem
+ ro/rw Mount filesystem read-only / read-write
+ </screen>
+ </para>
+
+ <para>
+ There are even more flags that are filesystem specific.
+ You'll have to see the written documentation for those.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mt">
+ <title>mt</title>
+
+ <para>
+ Usage: mt [OPTION] OPCODE VALUE
+ </para>
+
+ <para>
+ Control magnetic tape drive operation.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -f DEVICE Control DEVICE
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="mv">
+ <title>mv</title>
+
+ <para>
+ Usage: mv SOURCE DEST
+ </para>
+
+ <para>
+ <screen>
+ or: mv SOURCE... DIRECTORY
+ </screen>
+ </para>
+
+ <para>
+ Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ mv /tmp/foo /bin/bar
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="nc">
+ <title>nc</title>
+
+ <para>
+ Usage: nc HOST PORT
+ </para>
+
+ <para>
+ or: nc -p PORT -l
+ </para>
+
+
+ <para>
+ Open a pipe to HOST:PORT or listen for a connection on PORT.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="nslookup">
+ <title>nslookup</title>
+
+ <para>
+ Usage: nslookup [HOST]
+ </para>
+
+ <para>
+ Query the nameserver for the IP address of the given
+ HOST.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ nslookup localhost
+ Server: default
+ Address: default
+
+ Name: debian
+ Address: 127.0.0.1
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="ping">
+ <title>ping</title>
+
+ <para>
+ Usage: ping [OPTION]... HOST
+ </para>
+
+ <para>
+ Send ICMP ECHO_REQUEST packets to HOST.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c COUNT Send only COUNT pings
+ -s SIZE Send SIZE data bytes in packets (default=56)
+ -q Quiet mode, only displays output at start and when finished
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+
+ --- debian ping statistics ---
+ 1 packets transmitted, 1 packets received, 0% packet loss
+ round-trip min/avg/max = 20.1/20.1/20.1 ms
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="poweroff">
+ <title>poweroff</title>
+
+ <para>
+ Usage: poweroff
+ </para>
+
+ <para>
+ Shut down the system, and request that the kernel turn
+ off power upon halting.
+ </para>
+ </sect1>
+
+ <sect1 id="printf">
+ <title>printf</title>
+
+ <para>
+ Usage: printf FORMAT [ARGUMENT]...
+ </para>
+
+ <para>
+ Format and print the given data in a manner similar to
+ the C printf command.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ printf "Val=%d\n" 5
+ Val=5
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="ps">
+ <title>ps</title>
+
+ <para>
+ Usage: ps
+ </para>
+
+ <para>
+ Report process status. This version of ps accepts no
+ options.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="pwd">
+ <title>pwd</title>
+
+ <para>
+ Usage: pwd
+ </para>
+
+ <para>
+ Print the full filename of the current working
+ directory.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ pwd
+ /root
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="rdate">
+ <title>rdate</title>
+
+ <para>
+ Usage: rdate [OPTION] HOST
+ </para>
+
+ <para>
+ Get and possibly set the system date and time from a remote HOST.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -s Set the system date and time (default).
+ -p Print the date and time.
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="reboot">
+ <title>reboot</title>
+
+ <para>
+ Usage: reboot
+ </para>
+
+ <para>
+ Reboot the system.
+ </para>
+ </sect1>
+
+ <sect1 id="renice">
+ <title>renice</title>
+
+ <para>
+ Usage: renice priority pid [pid ...]
+ </para>
+
+ <para>
+ Changes priority of running processes. Allowed priorities range
+ from 20 (the process runs only when nothing else is running) to 0
+ (default priority) to -20 (almost nothing else ever gets to run).
+ </para>
+ </sect1>
+
+ <sect1 id="reset">
+ <title>reset</title>
+
+ <para>
+ Usage: reset
+ </para>
+
+ <para>
+ Resets the screen.
+ </para>
+ </sect1>
+
+ <sect1 id="rm">
+ <title>rm</title>
+
+ <para>
+ Usage: rm [OPTION]... FILE...
+ </para>
+
+ <para>
+ Remove (unlink) the FILE(s). You may use '--' to
+ indicate that all following arguments are non-options.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -i Always prompt before removing each destinations
+ -f Remove existing destinations, never prompt
+ -r or -R Remove the contents of directories recursively
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ rm -rf /tmp/foo
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="rmdir">
+ <title>rmdir</title>
+
+ <para>
+ Usage: rmdir DIRECTORY...
+ </para>
+
+ <para>
+ Remove DIRECTORY(s) if they are empty.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ rmdir /tmp/foo
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="rmmod">
+ <title>rmmod</title>
+
+ <para>
+ Usage: rmmod [OPTION]... [MODULE]...
+ </para>
+
+ <para>
+ Unload MODULE(s) from the kernel.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Try to remove all unused kernel modules
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ rmmod tulip
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="sed">
+ <title>sed</title>
+
+ <para>
+ Usage: sed [OPTION]... SCRIPT [FILE]...
+ </para>
+
+ <para>
+ Allowed sed scripts come in the following form:
+ </para>
+
+ <para>
+ <screen>
+ ADDR [!] COMMAND
+ </screen>
+ </para>
+
+ <para>
+ ADDR can be:
+ </para>
+
+ <para>
+ <screen>
+ NUMBER Match specified line number
+ $ Match last line
+ /REGEXP/ Match specified regexp
+ </screen>
+ </para>
+
+ <para>
+ ! inverts the meaning of the match
+ </para>
+
+ <para>
+ COMMAND can be:
+ </para>
+
+ <para>
+ <screen>
+ s/regexp/replacement/[igp]
+ which attempt to match regexp against the pattern space
+ and if successful replaces the matched portion with replacement.
+ aTEXT
+ which appends TEXT after the pattern space
+ </screen>
+ </para>
+
+ <para>
+ This version of sed matches full regular expressions.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -e Add the script to the commands to be executed
+ -n Suppress automatic printing of pattern space
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
+ bar
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="setkeycodes">
+ <title>setkeycodes</title>
+
+ <para>
+ Usage: setkeycodes SCANCODE KEYCODE ...
+ </para>
+
+ <para>
+ Set entries into the kernel's scancode-to-keycode map,
+ allowing unusual keyboards to generate usable keycodes.
+ </para>
+
+ <para>
+ SCANCODE may be either xx or e0xx (hexadecimal), and
+ KEYCODE is given in decimal.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ setkeycodes e030 127
+ </screen>
+ </para>
+ </sect1>
+
+
+ <sect1 id="sh">
+ <title>sh</title>
+
+ <para>
+ Usage: sh
+ </para>
+
+ <para>
+ lash -- the BusyBox LAme SHell (command interpreter)
+ </para>
+
+ <para>
+ This command does not yet have proper documentation.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </sect1>
+
+ <sect1 id="sleep">
+ <title>sleep</title>
+
+ <para>
+ Usage: sleep N
+ </para>
+
+ <para>
+ Pause for N seconds.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ sleep 2
+ [2 second delay results]
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="sort">
+ <title>sort</title>
+
+ <para>
+ Usage: sort [OPTION]... [FILE]...
+ </para>
+
+ <para>
+ Sort lines of text in FILE(s).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -n Compare numerically
+ -r Reverse after sorting
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo -e "e\nf\nb\nd\nc\na" | sort
+ a
+ b
+ c
+ d
+ e
+ f
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="swapoff">
+ <title>swapoff</title>
+
+ <para>
+ Usage: swapoff [OPTION] [DEVICE]
+ </para>
+
+ <para>
+ Stop swapping virtual memory pages on DEVICE.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Stop swapping on all swap devices
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="swapon">
+ <title>swapon</title>
+
+ <para>
+ Usage: swapon [OPTION] [DEVICE]
+ </para>
+
+ <para>
+ Start swapping virtual memory pages on the given device.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Start swapping on all swap devices
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="sync">
+ <title>sync</title>
+
+ <para>
+ Usage: sync
+ </para>
+
+ <para>
+ Write all buffered filesystem blocks to disk.
+ </para>
+ </sect1>
+
+ <sect1 id="syslogd">
+ <title>syslogd</title>
+
+ <para>
+ Usage: syslogd [OPTION]...
+ </para>
+
+ <para>
+ Linux system and kernel (provides klogd) logging
+ utility. Note that this version of syslogd/klogd ignores
+ /etc/syslog.conf.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -m NUM Interval between MARK lines (default=20min, 0=off)
+ -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 remotely to IP or hostname on PORT (default PORT=514/UDP)
+ -L Log locally as well as network logging (default is network only)
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ syslogd -R masterlog:514
+ $ syslogd -R 192.168.1.1:601
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="tail">
+ <title>tail</title>
+
+ <para>
+ Usage: tail [OPTION] [FILE]...
+ </para>
+
+ <para>
+ 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 stdin.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -n NUM Print last NUM lines instead of last 10
+ -f Output data as the file grows. This version
+ of 'tail -f' supports only one file at a time.
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ tail -n 1 /etc/resolv.conf
+ nameserver 10.0.0.1
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="tar">
+ <title>tar</title>
+
+ <para>
+ Usage: tar [MODE] [OPTION] [FILE]...
+ </para>
+
+ <para>
+
+ </para>
+
+ <para>
+ MODE may be chosen from
+ </para>
+
+ <para>
+ <screen>
+ c Create
+ x Extract
+ t List
+ </screen>
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ f FILE Use FILE for tarfile (or stdin if '-')
+ O Extract to stdout
+ exclude FILE File to exclude
+ v List files processed
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ zcat /tmp/tarball.tar.gz | tar -xf -
+ $ tar -cf /tmp/tarball.tar /usr/local
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="tee">
+ <title>tee</title>
+
+ <para>
+ Usage: tee [OPTION]... [FILE]...
+ </para>
+
+ <para>
+ Copy stdin to FILE(s), and also to stdout.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Append to the given FILEs, do not overwrite
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo "Hello" | tee /tmp/foo
+ Hello
+ $ cat /tmp/foo
+ Hello
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="telnet">
+ <title>telnet</title>
+
+ <para>
+ Usage: telnet HOST [PORT]
+ </para>
+
+ <para>
+ Establish interactive communication with another
+ computer over a network using the TELNET protocol.
+ </para>
+ </sect1>
+
+ <sect1 id="test">
+ <title>test, [</title>
+
+ <para>
+ Usage: test EXPRESSION
+ </para>
+
+ <para>
+ or: [ EXPRESSION ]
+ </para>
+
+ <para>
+ Check file types and compare values returning an exit
+ code determined by the value of EXPRESSION.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ test 1 -eq 2
+ $ echo $?
+ 1
+ $ test 1 -eq 1
+ $ echo $?
+ 0
+ $ [ -d /etc ]
+ $ echo $?
+ 0
+ $ [ -d /junk ]
+ $ echo $?
+ 1
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="touch">
+ <title>touch</title>
+
+ <para>
+ Usage: touch [OPTION]... FILE...
+ </para>
+
+ <para>
+ Update the last-modified date on (or create) FILE(s).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Do not create files
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ 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
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="tr">
+ <title>tr</title>
+
+ <para>
+ Usage: tr [OPTION]... STRING1 [STRING2]
+ </para>
+
+ <para>
+ Translate, squeeze, and/or delete characters from stdin,
+ writing to stdout.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Take complement of STRING1
+ -d Delete input characters coded STRING1
+ -s Squeeze multiple output characters of STRING2 into one character
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
+ hello world
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="true">
+ <title>true</title>
+
+ <para>
+ Usage: true
+ </para>
+
+ <para>
+ Return an exit code of TRUE (1).
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ true
+ $ echo $?
+ 0
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="tty">
+ <title>tty</title>
+
+ <para>
+ Usage: tty
+ </para>
+
+ <para>
+ Print the file name of the terminal connected to stdin.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -s Print nothing, only return an exit status
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ tty
+ /dev/tty2
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="umount">
+ <title>umount</title>
+
+ <para>
+ Usage: umount [OPTION]... DEVICE|DIRECTORY
+ </para>
+
+ <para>
+
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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)
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ umount /dev/hdc1
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="uname">
+ <title>uname</title>
+
+ <para>
+ Usage: uname [OPTION]...
+ </para>
+
+ <para>
+ Print certain system information. With no OPTION, same
+ as -s.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -a Print all information
+ -m Print 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
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ uname -a
+ Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="uniq">
+ <title>uniq</title>
+
+ <para>
+ Usage: uniq [INPUT [OUTPUT]]
+ </para>
+
+ <para>
+ Discard all but one of successive identical lines from
+ INPUT (or stdin), writing to OUTPUT (or stdout).
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c prefix lines by the number of occurrences
+ -d only print duplicate lines
+ -u only print unique lines
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
+ a
+ b
+ c
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="unix2dos">
+ <title>unix2dos</title>
+
+ <para>
+ Usage: unix2dos < unixfile > dosfile
+ </para>
+
+ <para>
+ Converts a text file from unix format to dos format.
+ </para>
+
+ </sect1>
+
+ <sect1 id="unrpm">
+ <title>unrpm</title>
+
+ <para>
+ Usage: unrpm < package.rpm | gzip -d | cpio -idmuv
+ </para>
+
+ <para>
+ Extracts an rpm archive.
+ </para>
+
+ </sect1>
+
+ <sect1 id="update">
+ <title>update</title>
+
+ <para>
+ Usage: update [OPTION]...
+ </para>
+
+ <para>
+ Periodically flush filesystem buffers.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -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)
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="uptime">
+ <title>uptime</title>
+
+ <para>
+ Usage: uptime
+ </para>
+
+ <para>
+ Display how long the system has been running since boot.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ uptime
+ 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="usleep">
+ <title>usleep</title>
+
+ <para>
+ Usage: usleep N
+ </para>
+
+ <para>
+ Pause for N microseconds.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ usleep 1000000
+ [pauses for 1 second]
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="uudecode">
+ <title>uudecode</title>
+
+ <para>
+ Usage: uudecode [OPTION] [FILE]
+ </para>
+
+ <para>
+ Uudecode a uuencoded file.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -o FILE Direct output to FILE
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ uudecode -o busybox busybox.uu
+ $ ls -l busybox
+ -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="uuencode">
+ <title>uuencode</title>
+
+ <para>
+ Usage: uuencode [OPTION] [INFILE] OUTFILE
+ </para>
+
+ <para>
+ Uuencode a file.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -m Use base64 encoding as of RFC1521
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ uuencode busybox busybox
+ begin 755 busybox
+ M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&amp;
+ .....
+ $ uudecode busybox busybox &gt; busybox.uu
+ $
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="watchdog">
+ <title>watchdog</title>
+
+ <para>
+ Usage: watchdog device
+ </para>
+
+ <para>
+ Periodically writes to watchdog device B<device>.
+ </para>
+ </sect1>
+
+ <sect1 id="wc">
+ <title>wc</title>
+
+ <para>
+ Usage: wc [OPTION]... [FILE]...
+ </para>
+
+ <para>
+ Print line, word, and byte counts for each FILE, and a
+ total line if more than one FILE is specified. With no
+ FILE, read stdin.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -c Print the byte counts
+ -l Print the newline counts
+ -L Print the length of the longest line
+ -w Print the word counts
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ wc /etc/passwd
+ 31 46 1365 /etc/passwd
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="which">
+ <title>which</title>
+
+ <para>
+ Usage: which [COMMAND]...
+ </para>
+
+ <para>
+ Locate COMMAND(s).
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ which login
+ /bin/login
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="whoami">
+ <title>whoami</title>
+
+ <para>
+ Usage: whoami
+ </para>
+
+ <para>
+ Print the user name associated with the current
+ effective user id.
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ whoami
+ andersen
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="xargs">
+ <title>xargs</title>
+
+ <para>
+ Usage: xargs [OPTIONS] [COMMAND] [ARGS...]
+ </para>
+
+ <para>
+ Executes COMMAND on every item given by standard input.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -t Print the command just before it is run
+ </screen>
+ </para>
+
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ $ ls | xargs gzip
+ $ find . -name '*.c' -print | xargs rm
+ </screen>
+ </para>
+ </sect1>
+
+ <sect1 id="yes">
+ <title>yes</title>
+
+ <para>
+ Usage: yes [STRING]...
+ </para>
+
+ <para>
+ Repeatedly output a line with all specified STRING(s),
+ or `y'.
+ </para>
+ </sect1>
+
+ <sect1 id="zcat">
+ <title>zcat</title>
+
+ <para>
+ Usage: zcat [OPTION]... FILE
+ </para>
+
+ <para>
+ Uncompress FILE (or stdin if FILE is '-') to stdout.
+ </para>
+
+ <para>
+ Options:
+ </para>
+
+ <para>
+ <screen>
+ -t Test compressed file integrity
+ </screen>
+ </para>
+
+ <para>
+ Example:
+ </para>
+
+ <para>
+ <screen>
+ </screen>
+ </para>
+ </sect1>
+ </chapter>
+
+ <chapter id="LIBC-NSS">
+ <title>LIBC NSS</title>
+
+ <para>
+ 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 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 /lib/libnss_*
+ libraries installed.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </chapter>
+
+ <chapter id="SEE-ALSO">
+ <title>SEE ALSO</title>
+
+ <para>
+ <literal>textutils(1),</literal>
+ <literal>shellutils(1),</literal>
+ etc...
+ </para>
+ </chapter>
+
+ <chapter id="MAINTAINER">
+ <title>MAINTAINER</title>
+
+ <para>
+ Erik Andersen &lt;andersee@debian.org&gt; &lt;andersen@lineo.com&gt;
+ </para>
+ </chapter>
+
+ <chapter id="AUTHORS">
+ <title>AUTHORS</title>
+
+ <para>
+ The following people have made significant contributions to
+ BusyBox -- whether they know it or not.
+ </para>
+
+ <para>
+ Erik Andersen &lt;andersee@debian.org&gt;
+ </para>
+
+ <para>
+ Edward Betts &lt;edward@debian.org&gt;
+ </para>
+
+ <para>
+ John Beppu &lt;beppu@lineo.com&gt;
+ </para>
+
+ <para>
+ Brian Candler &lt;B.Candler@pobox.com&gt;
+ </para>
+
+ <para>
+ Randolph Chung &lt;tausq@debian.org&gt;
+ </para>
+
+ <para>
+ Dave Cinege &lt;dcinege@psychosis.com&gt;
+ </para>
+
+ <para>
+ Karl M. Hegbloom &lt;karlheg@debian.org&gt;
+ </para>
+
+ <para>
+ Daniel Jacobowitz &lt;dan@debian.org&gt;
+ </para>
+
+ <para>
+ Matt Kraai &lt;kraai@alumni.carnegiemellon.edu&gt;
+ </para>
+
+ <para>
+ John Lombardo &lt;john@deltanet.com&gt;
+ </para>
+
+ <para>
+ Glenn McGrath &lt;bug1@netconnect.com.au&gt;
+ </para>
+
+ <para>
+ Bruce Perens &lt;bruce@perens.com&gt;
+ </para>
+
+ <para>
+ Chip Rosenthal &lt;chip@unicom.com&gt;, &lt;crosenth@covad.com&gt;
+ </para>
+
+ <para>
+ Pavel Roskin &lt;proski@gnu.org&gt;
+ </para>
+
+ <para>
+ Gyepi Sam &lt;gyepi@praxis-sw.com&gt;
+ </para>
+
+ <para>
+ Linus Torvalds &lt;torvalds@transmeta.com&gt;
+ </para>
+
+ <para>
+ Mark Whitley &lt;markw@lineo.com&gt;
+ </para>
+
+ <para>
+ Charles P. Wright &lt;cpwright@villagenet.com&gt;
+ </para>
+
+ <para>
+ Enrique Zanardi &lt;ezanardi@ull.es&gt;
+ </para>
+
+
+ </chapter>
+</book> <!-- End of the book -->