1 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [...]>
2 <book id="BusyBoxDocumentation">
4 <title>BusyBox - The Swiss Army Knife of Embedded Linux</title>
8 This documentation is free software; you can redistribute
9 it and/or modify it under the terms of the GNU General Public
10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later
16 This program is distributed in the hope that it will be
17 useful, but WITHOUT ANY WARRANTY; without even the implied
18 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 See the GNU General Public License for more details.
23 You should have received a copy of the GNU General Public
24 License along with this program; if not, write to the Free
25 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
30 For more details see the file COPYING in the source
31 distribution of Linux.
37 <chapter id="Introduction">
38 <title>Introduction</title>
41 BusyBox combines tiny versions of many common UNIX utilities into a single
42 small executable. It provides minimalist replacements for most of the
43 utilities you usually find in fileutils, shellutils, findutils, textutils,
44 grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment
45 for any small or embedded system. The utilities in BusyBox generally have
46 fewer options than their full-featured GNU cousins; however, the options
47 that are included provide the expected functionality and behave very much
48 like their GNU counterparts.
52 BusyBox has been written with size-optimization and limited resources in
53 mind. It is also extremely modular so you can easily include or exclude
54 commands (or features) at compile time. This makes it easy to customize
55 your embedded systems. To create a working system, just add a kernel, a
56 shell (such as ash), and an editor (such as elvis-tiny or ae).
62 <title>How to use BusyBox</title>
63 <sect1 id="How to use BusyBox">
68 BusyBox <function> [arguments...] # or
74 <function> [arguments...] # if symlinked
80 <sect1 id="Invoking BusyBox">
82 When you create a link to BusyBox for the function you wish to use, when
83 BusyBox is called using that link it will behave as if the command itself
99 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
104 You can also invoke BusyBox by issuing the command as an argument on the
105 command line. For example, entering
115 will also cause BusyBox to behave as 'ls'.
120 <sect1 id="Common options">
122 Most BusyBox commands support the <emphasis>--help</emphasis> option to provide
123 a terse runtime description of their behavior.
128 <chapter id="Commands">
129 <title>BusyBox Commands</title>
130 <sect1 id="Available BusyBox Commands">
131 <title>Available BusyBox Commands</title>
133 Currently defined functions include:
137 ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
138 dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
139 fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
140 head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
141 loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
142 mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
143 nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
144 setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
145 tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
146 uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
155 Usage: ar [optxvV] archive [filenames]
159 Extract or list files from an ar archive.
168 o preserve original dates
172 v verbosely list files processed
180 <sect1 id="basename">
181 <title>basename</title>
183 Usage: basename FILE [SUFFIX]
187 Strips directory path and suffixes from FILE. If specified, also removes
197 $ basename /usr/local/bin/foo
199 $ basename /usr/local/bin/
201 $ basename /foo/bar.txt .txt
212 Usage: cat [FILE ...]
216 Concatenates <literal>FILE(s)</literal> and prints them to the standard
235 -------------------------------
240 </listitem></varlistentry>
241 <varlistentry><term><emphasis>chgrp
244 <listitem><para></para>
247 Usage: chgrp [OPTION]... GROUP FILE...
253 Change the group membership of each FILE to GROUP.
266 -R change files and directories recursively
281 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
282 $ chgrp root /tmp/foo
284 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
291 -------------------------------
296 </listitem></varlistentry>
297 <varlistentry><term><emphasis>chmod
300 <listitem><para></para>
303 Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
309 Changes file access permissions for the specified
310 <literal>FILE(s)</literal> (or directories). Each MODE is defined by
311 combining the letters for WHO has access to the file, an OPERATOR for
312 selecting how the permissions should be changed, and a PERMISSION for
313 <literal>FILE(s)</literal> (or directories).
319 WHO may be chosen from
326 u User who owns the file
327 g Users in the file's Group
328 o Other users not in the file's group
336 OPERATOR may be chosen from
344 - Remove a permission
345 = Assign a permission
352 PERMISSION may be chosen from
361 x Execute (or access for directories)
362 s Set user (or group) ID bit
363 t Sticky bit (for directories prevents removing files by non-owners)
370 Alternately, permissions can be set numerically where the first three
371 numbers are calculated by adding the octal values, such as
387 An optional fourth digit can also be used to specify
410 -R Change files and directories recursively.
425 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
428 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
431 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
438 -------------------------------
443 </listitem></varlistentry>
444 <varlistentry><term><emphasis>chown
447 <listitem><para></para>
450 Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE...
456 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
469 -R Changes files and directories recursively
484 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
485 $ chown root /tmp/foo
487 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
488 $ chown root.root /tmp/foo
490 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
497 -------------------------------
502 </listitem></varlistentry>
503 <varlistentry><term><emphasis>chroot
506 <listitem><para></para>
509 Usage: chroot NEWROOT [COMMAND...]
515 Run COMMAND with root directory set to NEWROOT.
529 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox
530 $ mount /dev/hdc1 /mnt -t minix
533 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
540 -------------------------------
545 </listitem></varlistentry>
546 <varlistentry><term><emphasis>clear
549 <listitem><para></para>
558 -------------------------------
563 </listitem></varlistentry>
564 <varlistentry><term><emphasis>chvt
567 <listitem><para></para>
576 Changes the foreground virtual terminal to /dev/ttyN
582 -------------------------------
587 </listitem></varlistentry>
588 <varlistentry><term><emphasis>cp
591 <listitem><para></para>
594 Usage: cp [OPTION]... SOURCE DEST
601 or: cp [OPTION]... SOURCE... DIRECTORY
608 Copies SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
624 -p Preserves file attributes if possible
625 -R Copies directories recursively
632 -------------------------------
637 </listitem></varlistentry>
638 <varlistentry><term><emphasis>cut
641 <listitem><para></para>
644 Usage: cut [OPTION]... [FILE]...
650 Prints selected fields from each input FILE to standard output.
663 -b LIST Output only bytes from LIST
664 -c LIST Output only characters from LIST
665 -d CHAR Use CHAR instead of tab as the field delimiter
666 -s Only output Lines if the include DELIM
667 -f N Print only these fields
682 $ echo "Hello world" | cut -f 1 -d ' '
684 $ echo "Hello world" | cut -f 2 -d ' '
692 -------------------------------
697 </listitem></varlistentry>
698 <varlistentry><term><emphasis>date
701 <listitem><para></para>
704 Usage: date [OPTION]... [+FORMAT]
711 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
718 Displays the current time in the given FORMAT, or sets the system date.
731 -R Outputs RFC-822 compliant date string
732 -s Sets time described by STRING
733 -u Prints or sets Coordinated Universal Time
748 Wed Apr 12 18:52:41 MDT 2000
755 -------------------------------
760 </listitem></varlistentry>
761 <varlistentry><term><emphasis>dc
764 <listitem><para></para>
767 Usage: dc expression ...
773 This is a Tiny RPN calculator that understands the following operations: +,
774 -, /, *, and, or, not, eor. If no arguments are given, dc will process
781 The behaviour of BusyBox/dc deviates (just a little ;-) from GNU/dc, but
782 this will be remedied in the future.
803 $ echo 72 9 div 8 mul | dc
811 -------------------------------
816 </listitem></varlistentry>
817 <varlistentry><term><emphasis>dd
820 <listitem><para></para>
823 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
829 Copy a file, converting and formatting according to options
836 if=FILE read from FILE instead of stdin
837 of=FILE write to FILE instead of stdout
838 bs=n read and write n bytes at a time
839 count=n copy only n input blocks
840 skip=n skip n input blocks
841 seek=n skip n output blocks
848 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
861 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
870 -------------------------------
875 </listitem></varlistentry>
876 <varlistentry><term><emphasis>df
879 <listitem><para></para>
882 Usage: df [filesystem ...]
888 Prints the filesystem space used and space available.
902 Filesystem 1k-blocks Used Available Use% Mounted on
903 /dev/sda3 8690864 8553540 137324 98% /
904 /dev/sda1 64216 36364 27852 57% /boot
906 Filesystem 1k-blocks Used Available Use% Mounted on
907 /dev/sda3 8690864 8553540 137324 98% /
914 -------------------------------
919 </listitem></varlistentry>
920 <varlistentry><term><emphasis>dirname
923 <listitem><para></para>
932 Strip non-directory suffix from file name
955 -------------------------------
960 </listitem></varlistentry>
961 <varlistentry><term><emphasis>dmesg
964 <listitem><para></para>
967 Usage: dmesg [<emphasis>-c</emphasis>] [<emphasis>-n</emphasis> level] [<emphasis>-s</emphasis> bufsize]
973 Print or controls the kernel ring buffer.
979 -------------------------------
984 </listitem></varlistentry>
985 <varlistentry><term><emphasis>du
988 <listitem><para></para>
991 Usage: du [OPTION]... [FILE]...
997 Summarize disk space used for each FILE and/or directory. Disk space is
998 printed in units of 1k (i.e. 1024 bytes).
1011 -l count sizes many times if hard linked
1012 -s display only a total for each argument
1028 12 ./kernel-patches/CVS
1043 -------------------------------
1048 </listitem></varlistentry>
1049 <varlistentry><term><emphasis>dutmp
1052 <listitem><para></para>
1061 Dump utmp file format (pipe delimited) from FILE or stdin to stdout.
1074 $ dutmp /var/run/utmp
1075 8|7||si|||0|0|0|955637625|760097|0
1076 2|0|~|~~|reboot||0|0|0|955637625|782235|0
1077 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
1078 8|125||l4|||0|0|0|955637629|998367|0
1079 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
1080 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
1081 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
1088 -------------------------------
1093 </listitem></varlistentry>
1094 <varlistentry><term><emphasis>echo
1097 <listitem><para></para>
1100 Usage: echo [-neE] [ARG ...]
1106 Prints the specified ARGs to stdout
1119 -n suppress trailing newline
1120 -e interpret backslash-escaped characters (i.e. \t=tab etc)
1121 -E disable interpretation of backslash-escaped characters
1135 $ echo "Erik is cool"
1137 $ echo -e "Erik\nis\ncool"
1141 $ echo "Erik\nis\ncool"
1149 -------------------------------
1154 </listitem></varlistentry>
1155 <varlistentry><term><emphasis>false
1158 <listitem><para></para>
1161 Returns an exit code of FALSE (1)
1183 -------------------------------
1188 </listitem></varlistentry>
1189 <varlistentry><term><emphasis>fbset
1192 <listitem><para></para>
1195 Usage: fbset [options] [mode]
1201 Show and modify frame buffer device settings
1241 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
1242 geometry 1024 768 1024 768 16
1243 timings 12714 128 32 16 4 128 4
1245 rgba 5/11,6/5,5/0,0/0
1253 -------------------------------
1258 </listitem></varlistentry>
1259 <varlistentry><term><emphasis>fdflush
1262 <listitem><para></para>
1265 Usage: fdflush device
1271 Force floppy disk drive to detect disk change
1277 -------------------------------
1282 </listitem></varlistentry>
1283 <varlistentry><term><emphasis>find
1286 <listitem><para></para>
1289 Usage: find [PATH...] [EXPRESSION]
1295 Search for files in a directory hierarchy. The default PATH is the current
1296 directory; default EXPRESSION is '-print'
1302 EXPRESSION may consist of:
1309 -follow Dereference symbolic links.
1310 -name PATTERN File name (leading directories removed) matches PATTERN.
1311 -print print the full file name followed by a newline to stdout.
1325 $ find / -name /etc/passwd
1333 -------------------------------
1338 </listitem></varlistentry>
1339 <varlistentry><term><emphasis>free
1342 <listitem><para></para>
1351 Displays the amount of free and used system memory.
1365 total used free shared buffers
1366 Mem: 257628 248724 8904 59644 93124
1367 Swap: 128516 8404 120112
1368 Total: 386144 257128 129016
1375 -------------------------------
1380 </listitem></varlistentry>
1381 <varlistentry><term><emphasis>freeramdisk
1384 <listitem><para></para>
1387 Usage: freeramdisk DEVICE
1393 Frees all memory used by the specified ramdisk.
1406 $ freeramdisk /dev/ram2
1413 -------------------------------
1418 </listitem></varlistentry>
1419 <varlistentry><term><emphasis>deallocvt
1422 <listitem><para></para>
1431 Deallocates unused virtual terminal /dev/ttyN
1437 -------------------------------
1442 </listitem></varlistentry>
1443 <varlistentry><term><emphasis>fsck.minix
1446 <listitem><para></para>
1449 Usage: fsck.minix [<emphasis>-larvsmf</emphasis>] /dev/name
1455 Performs a consistency check for MINIX filesystems.
1468 -l Lists all filenames
1469 -r Perform interactive repairs
1470 -a Perform automatic repairs
1472 -s Outputs super-block information
1473 -m Activates MINIX-like "mode not cleared" warnings
1474 -f Force file system check.
1481 -------------------------------
1486 </listitem></varlistentry>
1487 <varlistentry><term><emphasis>grep
1490 <listitem><para></para>
1493 Usage: grep [OPTIONS]... PATTERN [FILE]...
1499 Search for PATTERN in each FILE or standard input.
1512 -h suppress the prefixing filename on output
1513 -i ignore case distinctions
1514 -n print line number with output lines
1515 -q be quiet. Returns 0 if result was found, 1 otherwise
1516 -v select non-matching lines
1523 This version of grep matches full regular expressions.
1536 $ grep root /etc/passwd
1537 root:x:0:0:root:/root:/bin/bash
1538 $ grep ^[rR]oo. /etc/passwd
1539 root:x:0:0:root:/root:/bin/bash
1546 -------------------------------
1551 </listitem></varlistentry>
1552 <varlistentry><term><emphasis>gunzip
1555 <listitem><para></para>
1558 Usage: gunzip [OPTION]... FILE
1564 Uncompress FILE (or standard input if FILE is '-').
1577 -c Write output to standard output
1578 -t Test compressed file integrity
1592 $ ls -la /tmp/BusyBox*
1593 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
1594 $ gunzip /tmp/BusyBox-0.43.tar.gz
1595 $ ls -la /tmp/BusyBox*
1596 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1603 -------------------------------
1608 </listitem></varlistentry>
1609 <varlistentry><term><emphasis>gzip
1612 <listitem><para></para>
1615 Usage: gzip [OPTION]... FILE
1621 Compress FILE with maximum compression. When FILE is '-', reads standard
1622 input. Implies <emphasis>-c</emphasis>.
1635 -c Write output to standard output instead of FILE.gz
1649 $ ls -la /tmp/BusyBox*
1650 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1651 $ gzip /tmp/BusyBox-0.43.tar
1652 $ ls -la /tmp/BusyBox*
1653 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
1660 -------------------------------
1665 </listitem></varlistentry>
1666 <varlistentry><term><emphasis>halt
1669 <listitem><para></para>
1678 This command halts the system.
1684 -------------------------------
1689 </listitem></varlistentry>
1690 <varlistentry><term><emphasis>head
1693 <listitem><para></para>
1696 Usage: head [OPTION] [FILE]...
1702 Print first 10 lines of each FILE to standard output. With more than one
1703 FILE, precede each with a header giving the file name. With no FILE, or
1704 when FILE is -, read standard input.
1717 -n NUM Print first NUM lines instead of first 10
1731 $ head -n 2 /etc/passwd
1732 root:x:0:0:root:/root:/bin/bash
1733 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
1740 -------------------------------
1745 </listitem></varlistentry>
1746 <varlistentry><term><emphasis>hostid
1749 <listitem><para></para>
1758 Prints out a unique 32-bit identifier for the current machine. The 32-bit
1759 identifier is intended to be unique among all UNIX systems in existence.
1765 -------------------------------
1770 </listitem></varlistentry>
1771 <varlistentry><term><emphasis>hostname
1774 <listitem><para></para>
1777 Usage: hostname [OPTION] {hostname | <emphasis>-F</emphasis> file}
1783 Get or set the hostname or DNS domain name. If a hostname is given (or a
1784 file with the <emphasis>-F</emphasis> parameter), the host name will be set.
1798 -i Addresses for the hostname
1800 -F FILE Use the contents of FILE to specify the hostname
1822 -------------------------------
1827 </listitem></varlistentry>
1828 <varlistentry><term><emphasis>id
1831 <listitem><para></para>
1834 Print information for USERNAME or the current user
1847 -g prints only the group ID
1848 -u prints only the user ID
1849 -r prints the real user ID instead of the effective ID (with -ug)
1864 uid=1000(andersen) gid=1000(andersen)
1871 -------------------------------
1876 </listitem></varlistentry>
1877 <varlistentry><term><emphasis>init
1880 <listitem><para></para>
1889 Init is the parent of all processes.
1895 This version of init is designed to be run only by the kernel.
1901 BusyBox init doesn't support multiple runlevels. The runlevels field of the
1902 /etc/inittab file is completely ignored by BusyBox init. If you want
1903 runlevels, use sysvinit.
1909 BusyBox init works just fine without an inittab. If no inittab is found, it
1910 has the following default behavior:
1917 ::sysinit:/etc/init.d/rcS
1925 if it detects that /dev/console is _not_ a serial console, it will also
1933 tty2::askfirst:/bin/sh
1940 If you choose to use an /etc/inittab file, the inittab entry format is as
1948 <id>:<runlevels>:<action>:<process>
1964 WARNING: This field has a non-traditional meaning for BusyBox init!
1965 The id field is used by BusyBox init to specify the controlling tty for
1966 the specified process to run on. The contents of this field are
1967 appended to "/dev/" and used as-is. There is no need for this field to
1968 be unique, although if it isn't you may have strange results. If this
1969 field is left blank, it is completely ignored. Also note that if
1970 BusyBox detects that a serial console is in use, then all entries
1971 containing non-empty id fields will _not_ be run. BusyBox init does
1972 nothing with utmp. We don't need no stinkin' utmp.
1988 The runlevels field is completely ignored.
2004 Valid actions include: sysinit, respawn, askfirst, wait,
2005 once, and ctrlaltdel.
2013 askfirst acts just like respawn, but before running the specified
2014 process it displays the line "Please press Enter to activate this
2015 console." and then waits for the user to press enter before starting
2016 the specified process.
2024 Unrecognized actions (like initdefault) will cause init to emit
2025 an error message, and then go along with its business.
2041 Specifies the process to be executed and it's command line.
2048 Example /etc/inittab file:
2055 # This is run first except when booting in single-user mode.
2057 ::sysinit:/etc/init.d/rcS
2065 # /bin/sh invocations on selected ttys
2067 # Start an "askfirst" shell on the console (whatever that may be)
2069 # Start an "askfirst" shell on /dev/tty2
2070 tty2::askfirst:/bin/sh
2078 # /sbin/getty invocations for selected ttys
2080 tty4::respawn:/sbin/getty 38400 tty4
2081 tty5::respawn:/sbin/getty 38400 tty5
2089 # Example of how to put a getty on a serial line (for a terminal)
2091 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
2092 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
2094 # Example how to put a getty on a modem line.
2095 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
2103 # Stuff to do before rebooting
2104 ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
2105 ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
2112 -------------------------------
2117 </listitem></varlistentry>
2118 <varlistentry><term><emphasis>insmod
2121 <listitem><para></para>
2124 Usage: insmod [OPTION]... MODULE [symbol=value]...
2130 Loads the specified kernel modules into the kernel.
2143 -f Force module to load into the wrong kernel version.
2144 -k Make module autoclean-able.
2146 -x do not export externs
2153 -------------------------------
2158 </listitem></varlistentry>
2159 <varlistentry><term><emphasis>kill
2162 <listitem><para></para>
2165 Usage: kill [<emphasis>-signal</emphasis>] process-id [process-id ...]
2171 Send a signal (default is SIGTERM) to the specified
2172 <literal>process(es).</literal>
2185 -l List all signal names and numbers.
2200 252 root root S [apache]
2201 263 www-data www-data S [apache]
2202 264 www-data www-data S [apache]
2203 265 www-data www-data S [apache]
2204 266 www-data www-data S [apache]
2205 267 www-data www-data S [apache]
2213 -------------------------------
2218 </listitem></varlistentry>
2219 <varlistentry><term><emphasis>killall
2222 <listitem><para></para>
2225 Usage: killall [<emphasis>-signal</emphasis>] process-name [process-name ...]
2231 Send a signal (default is SIGTERM) to the specified
2232 <literal>process(es).</literal>
2245 -l List all signal names and numbers.
2266 -------------------------------
2271 </listitem></varlistentry>
2272 <varlistentry><term><emphasis>length
2275 <listitem><para></para>
2278 Usage: length STRING
2284 Prints out the length of the specified STRING.
2305 -------------------------------
2310 </listitem></varlistentry>
2311 <varlistentry><term><emphasis>ln
2314 <listitem><para></para>
2317 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
2323 Create a link named LINK_NAME or DIRECTORY to the specified TARGET You may
2324 use '--' to indicate that all following arguments are non-options.
2337 -s make symbolic links instead of hard links
2338 -f remove existing destination files
2352 $ ln -s BusyBox /tmp/ls
2354 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
2361 -------------------------------
2366 </listitem></varlistentry>
2367 <varlistentry><term><emphasis>loadacm
2370 <listitem><para></para>
2379 Loads an acm from standard input.
2392 $ loadacm < /etc/i18n/acmname
2399 -------------------------------
2404 </listitem></varlistentry>
2405 <varlistentry><term><emphasis>loadfont
2408 <listitem><para></para>
2417 Loads a console font from standard input.
2430 $ loadfont < /etc/i18n/fontname
2437 -------------------------------
2442 </listitem></varlistentry>
2443 <varlistentry><term><emphasis>loadkmap
2446 <listitem><para></para>
2455 Loads a binary keyboard translation table from standard input.
2468 $ loadkmap < /etc/i18n/lang-keymap
2475 -------------------------------
2480 </listitem></varlistentry>
2481 <varlistentry><term><emphasis>logger
2484 <listitem><para></para>
2487 Usage: logger [OPTION]... [MESSAGE]
2493 Write MESSAGE to the system log. If MESSAGE is '-', log stdin.
2506 -s Log to stderr as well as the system log.
2507 -t Log using the specified tag (defaults to user name).
2508 -p Enter the message with the specified priority.
2509 This may be numerical or a ``facility.level'' pair.
2530 -------------------------------
2535 </listitem></varlistentry>
2536 <varlistentry><term><emphasis>logname
2539 <listitem><para></para>
2548 Print the name of the current user.
2569 -------------------------------
2574 </listitem></varlistentry>
2575 <varlistentry><term><emphasis>ls
2578 <listitem><para></para>
2581 Usage: ls [<emphasis>-1acdelnpuxACFR</emphasis>] [filenames...]
2594 -a do not hide entries starting with .
2595 -c with -l: show ctime (the time of last
2596 modification of file status information)
2597 -d list directory entries instead of contents
2598 -e list both full date and full time
2599 -l use a long listing format
2600 -n list numeric UIDs and GIDs instead of names
2601 -p append indicator (one of /=@|) to entries
2602 -u with -l: show access time (the time of last
2604 -x list entries by lines instead of by columns
2605 -A do not list implied . and ..
2606 -C list entries by columns
2607 -F append indicator (one of */=@|) to entries
2608 -R list subdirectories recursively
2615 -------------------------------
2620 </listitem></varlistentry>
2621 <varlistentry><term><emphasis>lsmod
2624 <listitem><para></para>
2633 Shows a list of all currently loaded kernel modules.
2639 -------------------------------
2644 </listitem></varlistentry>
2645 <varlistentry><term><emphasis>makedevs
2648 <listitem><para></para>
2651 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
2657 Creates a range of block or character special files
2670 b: Make a block (buffered) device.
2671 c or u: Make a character (un-buffered) device.
2672 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
2679 FIRST specifies the number appended to NAME to create the first device.
2680 LAST specifies the number of the last item that should be created. If 's'
2681 is the last argument, the base device is created as well.
2694 $ makedevs /dev/ttyS c 4 66 2 63
2695 [creates ttyS2-ttyS63]
2696 $ makedevs /dev/hda b 3 0 0 8 s
2697 [creates hda,hda1-hda8]
2704 -------------------------------
2709 </listitem></varlistentry>
2710 <varlistentry><term><emphasis>md5sum
2713 <listitem><para></para>
2716 Usage: md5sum [OPTION] [file ...]
2722 Print or check MD5 checksums.
2735 -b read files in binary mode
2736 -c check MD5 sums against given list
2737 -t read files in text mode (default)
2745 The following two options are useful only when verifying checksums:
2752 -s don't output anything, status code shows success
2753 -w warn about improperly formated MD5 checksum lines
2768 6fd11e98b98a58f64ff3398d7b324003 busybox
2770 6fd11e98b98a58f64ff3398d7b324003 busybox
2779 -------------------------------
2784 </listitem></varlistentry>
2785 <varlistentry><term><emphasis>mkdir
2788 <listitem><para></para>
2791 Usage: mkdir [OPTION] DIRECTORY...
2797 Create the <literal>DIRECTORY(ies),</literal> if they do not already exist
2810 -m set permission mode (as in chmod), not rwxrwxrwx - umask
2811 -p no error if directory exists, make parent directories as needed
2827 /tmp/foo: File exists
2828 $ mkdir /tmp/foo/bar/baz
2829 /tmp/foo/bar/baz: No such file or directory
2830 $ mkdir -p /tmp/foo/bar/baz
2837 -------------------------------
2842 </listitem></varlistentry>
2843 <varlistentry><term><emphasis>mkfifo
2846 <listitem><para></para>
2849 Usage: mkfifo [OPTIONS] name
2855 Creates a named pipe (identical to 'mknod name p')
2868 -m create the pipe using the specified mode (default a=rw)
2875 -------------------------------
2880 </listitem></varlistentry>
2881 <varlistentry><term><emphasis>mkfs.minix
2884 <listitem><para></para>
2887 Usage: mkfs.minix [<emphasis>-c</emphasis> | <emphasis>-l</emphasis> filename] [<emphasis>-nXX</emphasis>] [<emphasis>-iXX</emphasis>] /dev/name [blocks]
2893 Make a MINIX filesystem.
2906 -c Check the device for bad blocks
2907 -n [14|30] Specify the maximum length of filenames
2908 -i Specify the number of inodes for the filesystem
2909 -l FILENAME Read the bad blocks list from FILENAME
2910 -v Make a Minix version 2 filesystem
2917 -------------------------------
2922 </listitem></varlistentry>
2923 <varlistentry><term><emphasis>mknod
2926 <listitem><para></para>
2929 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
2935 Create a special file (block, character, or pipe).
2948 -m create the special file using the specified mode (default a=rw)
2955 TYPEs include: b: Make a block (buffered) device. c or u: Make a character
2956 (un-buffered) device. p: Make a named pipe. MAJOR and MINOR are ignored for
2970 $ mknod /dev/fd0 b 2 0
2971 $ mknod -m 644 /tmp/pipe p
2978 -------------------------------
2983 </listitem></varlistentry>
2984 <varlistentry><term><emphasis>mkswap
2987 <listitem><para></para>
2990 Usage: mkswap [<emphasis>-c</emphasis>] [<emphasis>-v0</emphasis>|<emphasis>-v1</emphasis>] device [block-count]
2996 Prepare a disk partition to be used as a swap partition.
3009 -c Check for read-ability.
3010 -v0 Make version 0 swap [max 128 Megs].
3011 -v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
3012 block-count Number of block to use (default is entire partition).
3019 -------------------------------
3024 </listitem></varlistentry>
3025 <varlistentry><term><emphasis>mktemp
3028 <listitem><para></para>
3031 Usage: mktemp [<emphasis>-q</emphasis>] TEMPLATE
3037 Creates a temporary file with its name based on TEMPLATE. TEMPLATE is any
3038 name with six `Xs' (i.e. /tmp/temp.XXXXXX).
3051 $ mktemp /tmp/temp.XXXXXX
3053 $ ls -la /tmp/temp.mWiLjM
3054 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
3061 -------------------------------
3066 </listitem></varlistentry>
3067 <varlistentry><term><emphasis>nc
3070 <listitem><para></para>
3073 Usage: nc [IP] [port]
3079 Netcat opens a pipe to IP:port
3092 $ nc foobar.somedomain.com 25
3093 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
3095 214-Commands supported:
3096 214- HELO EHLO MAIL RCPT DATA AUTH
3097 214 NOOP QUIT RSET HELP
3099 221 foobar closing connection
3106 -------------------------------
3111 </listitem></varlistentry>
3112 <varlistentry><term><emphasis>more
3115 <listitem><para></para>
3118 Usage: more [file ...]
3124 More is a filter for paging through text one screenful at a time.
3144 -------------------------------
3149 </listitem></varlistentry>
3150 <varlistentry><term><emphasis>mount
3153 <listitem><para></para>
3156 Usage: mount [flags] mount [flags] device directory [<emphasis>-o</emphasis> options,more-options]
3169 -a: Mount all file systems in fstab.
3170 -o option: One of many filesystem options, listed below.
3171 -r: Mount the filesystem read-only.
3172 -t fs-type: Specify the filesystem type.
3173 -w: Mount for reading and writing (default).
3180 Options for use with the ``<emphasis>-o</emphasis>'' flag:
3187 async/sync: Writes are asynchronous / synchronous.
3188 atime/noatime: Enable / disable updates to inode access times.
3189 dev/nodev: Allow use of special device files / disallow them.
3190 exec/noexec: Allow use of executable files / disallow them.
3191 loop: Mounts a file via loop device.
3192 suid/nosuid: Allow set-user-id-root programs / disallow them.
3193 remount: Re-mount a currently-mounted filesystem, changing its flags.
3194 ro/rw: Mount for read-only / read-write.
3195 There are EVEN MORE flags that are specific to each filesystem.
3196 You'll have to see the written documentation for those.
3211 /dev/hda3 on / type minix (rw)
3212 proc on /proc type proc (rw)
3213 devpts on /dev/pts type devpts (rw)
3214 $ mount /dev/fd0 /mnt -t msdos -o ro
3215 $ mount /tmp/diskimage /opt -t ext2 -o loop
3222 -------------------------------
3227 </listitem></varlistentry>
3228 <varlistentry><term><emphasis>mt
3231 <listitem><para></para>
3234 Usage: mt [<emphasis>-f</emphasis> device] opcode value
3240 Control magnetic tape drive operation
3246 -------------------------------
3251 </listitem></varlistentry>
3252 <varlistentry><term><emphasis>mv
3255 <listitem><para></para>
3258 Usage: mv SOURCE DEST
3265 or: mv SOURCE... DIRECTORY
3272 Rename SOURCE to DEST, or move <literal>SOURCE(s)</literal> to DIRECTORY.
3285 $ mv /tmp/foo /bin/bar
3292 -------------------------------
3297 </listitem></varlistentry>
3298 <varlistentry><term><emphasis>nslookup
3301 <listitem><para></para>
3304 Usage: nslookup [HOST]
3310 Queries the nameserver for the IP address of the given HOST
3323 $ nslookup localhost
3341 -------------------------------
3346 </listitem></varlistentry>
3347 <varlistentry><term><emphasis>ping
3350 <listitem><para></para>
3353 Usage: ping [OPTION]... host
3359 Send ICMP ECHO_REQUEST packets to network hosts.
3372 -c COUNT Send only COUNT pings.
3373 -s SIZE Send SIZE data bytes in packets (default=56).
3374 -q Quiet mode, only displays output at start
3385 PING slag (127.0.0.1): 56 data bytes
3386 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
3394 --- debian ping statistics ---
3395 1 packets transmitted, 1 packets received, 0% packet loss
3396 round-trip min/avg/max = 20.1/20.1/20.1 ms
3403 -------------------------------
3408 </listitem></varlistentry>
3409 <varlistentry><term><emphasis>poweroff
3412 <listitem><para></para>
3415 Shuts down the system, and requests that the kernel turn off power upon
3422 -------------------------------
3427 </listitem></varlistentry>
3428 <varlistentry><term><emphasis>printf
3431 <listitem><para></para>
3434 Usage: printf format [argument...]
3440 Formats and prints the given data in a manner similar to the C printf
3454 $ printf "Val=%d\n" 5
3462 -------------------------------
3467 </listitem></varlistentry>
3468 <varlistentry><term><emphasis>ps
3471 <listitem><para></para>
3480 Report process status
3486 This version of ps accepts no options.
3500 PID Uid Gid State Command
3502 2 root root S [kflushd]
3503 3 root root S [kupdate]
3504 4 root root S [kpiod]
3505 5 root root S [kswapd]
3506 742 andersen andersen S [bash]
3507 743 andersen andersen S -bash
3508 745 root root S [getty]
3509 2990 andersen andersen R ps
3516 -------------------------------
3521 </listitem></varlistentry>
3522 <varlistentry><term><emphasis>pwd
3525 <listitem><para></para>
3528 Prints the full filename of the current working directory.
3549 -------------------------------
3554 </listitem></varlistentry>
3555 <varlistentry><term><emphasis>reboot
3558 <listitem><para></para>
3561 Instructs the kernel to reboot the system.
3567 -------------------------------
3572 </listitem></varlistentry>
3573 <varlistentry><term><emphasis>rm
3576 <listitem><para></para>
3579 Usage: rm [OPTION]... FILE...
3585 Remove (unlink) the <literal>FILE(s).</literal> You may use '--' to
3586 indicate that all following arguments are non-options.
3599 -f remove existing destinations, never prompt
3600 -r or -R remove the contents of directories recursively
3621 -------------------------------
3626 </listitem></varlistentry>
3627 <varlistentry><term><emphasis>rmdir
3630 <listitem><para></para>
3633 Usage: rmdir [OPTION]... DIRECTORY...
3639 Remove the <literal>DIRECTORY(ies),</literal> if they are empty.
3659 -------------------------------
3664 </listitem></varlistentry>
3665 <varlistentry><term><emphasis>rmmod
3668 <listitem><para></para>
3671 Usage: rmmod [OPTION]... [MODULE]...
3677 Unloads the specified kernel modules from the kernel.
3690 -a Try to remove all unused kernel modules.
3711 -------------------------------
3716 </listitem></varlistentry>
3717 <varlistentry><term><emphasis>sed
3720 <listitem><para></para>
3723 Usage: sed [<emphasis>-n</emphasis>] <emphasis>-e</emphasis> script [file...]
3729 Allowed sed scripts come in the following form:
3744 where address ADDR can be:
3745 NUMBER Match specified line number
3747 /REGEXP/ Match specified regexp
3748 (! inverts the meaning of the match)
3757 s/regexp/replacement/[igp]
3758 which attempt to match regexp against the pattern space
3759 and if successful replaces the matched portion with replacement.
3768 which appends TEXT after the pattern space
3782 -e add the script to the commands to be executed
3783 -n suppress automatic printing of pattern space
3790 This version of sed matches full regular expressions.
3803 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
3811 -------------------------------
3816 </listitem></varlistentry>
3817 <varlistentry><term><emphasis>setkeycodes
3820 <listitem><para></para>
3823 Usage: setkeycodes SCANCODE KEYCODE ...
3829 Set entries into the kernel's scancode-to-keycode map, allowing unusual
3830 keyboards to generate usable keycodes.
3836 SCANCODE may be either xx or e0xx (hexadecimal), and KEYCODE is given in
3850 # setkeycodes e030 127
3857 -------------------------------
3862 </listitem></varlistentry>
3863 <varlistentry><term><emphasis>sh
3866 <listitem><para></para>
3875 lash -- the BusyBox LAme SHell (command interpreter)
3881 This command does not yet have proper documentation.
3887 Use lash just as you would use any other shell. It properly handles pipes,
3888 redirects, job control, can be used as the shell for scripts (#!/bin/sh),
3889 and has a sufficient set of builtins to do what is needed. It does not
3890 (yet) support Bourne Shell syntax. If you need things like
3891 ``if-then-else'', ``while'', and such, use ash or bash. If you just need a
3892 very simple and extremely small shell, this will do the job.
3898 -------------------------------
3903 </listitem></varlistentry>
3904 <varlistentry><term><emphasis>sfdisk
3907 <listitem><para></para>
3910 Usage: sfdisk [options] device ...
3916 device: something like /dev/hda or /dev/sda
3929 -s [or --show-size]: list size of a partition
3930 -c [or --id]: print or change partition Id
3931 -l [or --list]: list partitions of each device
3932 -d [or --dump]: idem, but in a format suitable for later input
3933 -i [or --increment]: number cylinders etc. from 1 instead of from 0
3934 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
3935 -T [or --list-types]:list the known partition types
3936 -D [or --DOS]: for DOS-compatibility: waste a little space
3937 -R [or --re-read]: make kernel reread partition table
3938 -N# : change only the partition with number #
3939 -n : do not actually write to disk
3940 -O file : save the sectors that will be overwritten to file
3941 -I file : restore these sectors again
3942 -v [or --version]: print version
3943 -? [or --help]: print this message
3957 -g [or --show-geometry]: print the kernel's idea of the geometry
3958 -x [or --show-extended]: also list extended partitions on output
3966 or expect descriptors for them on input
3967 -L [or --Linux]: do not complain about things irrelevant for Linux
3968 -q [or --quiet]: suppress warning messages
3969 You can override the detected geometry using:
3970 -C# [or --cylinders #]:set the number of cylinders to use
3971 -H# [or --heads #]: set the number of heads to use
3972 -S# [or --sectors #]: set the number of sectors to use
3979 You can disable all consistency checking with:
3986 -f [or --force]: do what I say, even if it is stupid
3993 -------------------------------
3998 </listitem></varlistentry>
3999 <varlistentry><term><emphasis>sleep
4002 <listitem><para></para>
4011 Pause for N seconds.
4025 [2 second delay results]
4032 -------------------------------
4037 </listitem></varlistentry>
4038 <varlistentry><term><emphasis>sort
4041 <listitem><para></para>
4044 Usage: sort [<emphasis>-n</emphasis>] [<emphasis>-r</emphasis>] [FILE]...
4050 Sorts lines of text in the specified files
4063 $ echo -e "e\nf\nb\nd\nc\na" | sort
4076 -------------------------------
4081 </listitem></varlistentry>
4082 <varlistentry><term><emphasis>sync
4085 <listitem><para></para>
4094 Write all buffered filesystem blocks to disk.
4100 -------------------------------
4105 </listitem></varlistentry>
4106 <varlistentry><term><emphasis>syslogd
4109 <listitem><para></para>
4112 Usage: syslogd [OPTION]...
4118 Linux system and kernel (provides klogd) logging utility. Note that this
4119 version of syslogd/klogd ignores /etc/syslog.conf.
4132 -m NUM Interval between MARK lines (default=20min, 0=off)
4133 -n Run as a foreground process
4134 -K Do not start up the klogd process
4135 -O FILE Use an alternate log file (default=/var/log/messages)
4142 -------------------------------
4147 </listitem></varlistentry>
4148 <varlistentry><term><emphasis>swapon
4151 <listitem><para></para>
4154 Usage: swapon [OPTION] [device]
4160 Start swapping virtual memory pages on the given device.
4173 -a Start swapping on all swap devices
4180 -------------------------------
4185 </listitem></varlistentry>
4186 <varlistentry><term><emphasis>swapoff
4189 <listitem><para></para>
4192 Usage: swapoff [OPTION] [device]
4198 Stop swapping virtual memory pages on the given device.
4211 -a Stop swapping on all swap devices
4218 -------------------------------
4223 </listitem></varlistentry>
4224 <varlistentry><term><emphasis>tail
4227 <listitem><para></para>
4230 Usage: tail [OPTION] [FILE]...
4236 Print last 10 lines of each FILE to standard output. With more than one
4237 FILE, precede each with a header giving the file name. With no FILE, or
4238 when FILE is -, read standard input.
4251 -n NUM Print last NUM lines instead of first 10
4252 -f Output data as the file grows. This version
4253 of 'tail -f' supports only one file at a time.
4267 $ tail -n 1 /etc/resolv.conf
4275 -------------------------------
4280 </listitem></varlistentry>
4281 <varlistentry><term><emphasis>tar
4284 <listitem><para></para>
4287 Usage: tar -[cxtvO] [<emphasis>--exclude</emphasis> File] [<emphasis>-f</emphasis> tarFile] [FILE] ...
4293 Create, extract, or list files from a tar file. Note that this version of
4294 tar treats hard links as separate files.
4300 Main operation mode:
4323 f name of tarfile or "-" for stdin
4325 --exclude file to exclude
4339 v verbosely list files processed
4353 $ zcat /tmp/tarball.tar.gz | tar -xf -
4354 $ tar -cf /tmp/tarball.tar /usr/local
4361 -------------------------------
4366 </listitem></varlistentry>
4367 <varlistentry><term><emphasis>test, [
4370 <listitem><para></para>
4373 Usage: test EXPRESSION or [ EXPRESSION ]
4379 Checks file types and compares values returning an exit code determined by
4380 the value of EXPRESSION.
4411 -------------------------------
4416 </listitem></varlistentry>
4417 <varlistentry><term><emphasis>telnet
4420 <listitem><para></para>
4423 Usage: telnet host [port]
4429 Telnet is used to establish interactive communication with another computer
4430 over a network using the TELNET protocol.
4436 -------------------------------
4441 </listitem></varlistentry>
4442 <varlistentry><term><emphasis>tee
4445 <listitem><para></para>
4448 Usage: tee [OPTION]... [FILE]...
4454 Copy standard input to each FILE, and also to standard output.
4467 -a append to the given FILEs, do not overwrite
4481 $ echo "Hello" | tee /tmp/foo
4490 -------------------------------
4495 </listitem></varlistentry>
4496 <varlistentry><term><emphasis>touch
4499 <listitem><para></para>
4502 Usage: touch [<emphasis>-c</emphasis>] file [file ...]
4508 Update the last-modified date on (or create) the selected file[s].
4522 /bin/ls: /tmp/foo: No such file or directory
4525 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
4532 -------------------------------
4537 </listitem></varlistentry>
4538 <varlistentry><term><emphasis>tr
4541 <listitem><para></para>
4544 Usage: tr [-cds] STRING1 [STRING2]
4550 Translate, squeeze, and/or delete characters from standard input, writing
4564 -c take complement of STRING1
4565 -d delete input characters coded STRING1
4566 -s squeeze multiple output characters of STRING2 into one character
4580 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
4588 -------------------------------
4593 </listitem></varlistentry>
4594 <varlistentry><term><emphasis>true
4597 <listitem><para></para>
4600 Returns an exit code of TRUE (0)
4622 -------------------------------
4627 </listitem></varlistentry>
4628 <varlistentry><term><emphasis>tty
4631 <listitem><para></para>
4640 Print the file name of the terminal connected to standard input.
4653 -s print nothing, only return an exit status
4675 -------------------------------
4680 </listitem></varlistentry>
4681 <varlistentry><term><emphasis>uuencode
4684 <listitem><para></para>
4687 Usage: uuencode [OPTION] [INFILE] REMOTEFILE
4706 -m use base64 encoding as of RFC1521
4720 $ uuencode busybox busybox
4722 M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&
4724 $ uudecode busybox busybox > busybox.uu
4732 -------------------------------
4737 </listitem></varlistentry>
4738 <varlistentry><term><emphasis>uudecode
4741 <listitem><para></para>
4744 Usage: uudecode [OPTION] [FILE]
4750 Uudecode a uuencoded file
4763 -o FILE direct output to FILE
4777 $ uudecode -o busybox busybox.uu
4779 -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
4786 -------------------------------
4791 </listitem></varlistentry>
4792 <varlistentry><term><emphasis>umount
4795 <listitem><para></para>
4798 Usage: umount [flags] filesystem|directory
4811 -a: Unmount all file systems
4812 -r: Try to remount devices as read-only if mount is busy
4813 -f: Force filesystem umount (i.e. unreachable NFS server)
4814 -l: Do not free loop device (if a loop device has been used)
4835 -------------------------------
4840 </listitem></varlistentry>
4841 <varlistentry><term><emphasis>uname
4844 <listitem><para></para>
4847 Usage: uname [OPTION]...
4853 Print certain system information. With no OPTION, same as <emphasis>-s</emphasis>.
4866 -a print all information
4867 -m the machine (hardware) type
4868 -n print the machine's network node hostname
4869 -r print the operating system release
4870 -s print the operating system name
4871 -p print the host processor type
4872 -v print the operating system version
4887 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
4894 -------------------------------
4899 </listitem></varlistentry>
4900 <varlistentry><term><emphasis>uniq
4903 <listitem><para></para>
4906 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
4912 Discard all but one of successive identical lines from INPUT (or standard
4913 input), writing to OUTPUT (or standard output).
4926 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
4936 -------------------------------
4941 </listitem></varlistentry>
4942 <varlistentry><term><emphasis>update
4945 <listitem><para></para>
4948 Usage: update [options]
4954 Periodically flushes filesystem buffers.
4967 -S force use of sync(2) instead of flushing
4968 -s SECS call sync this often (default 30)
4969 -f SECS flush some buffers this often (default 5)
4976 -------------------------------
4981 </listitem></varlistentry>
4982 <varlistentry><term><emphasis>uptime
4985 <listitem><para></para>
4994 Tells how long the system has been running since boot.
5008 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
5015 -------------------------------
5020 </listitem></varlistentry>
5021 <varlistentry><term><emphasis>usleep
5024 <listitem><para></para>
5033 Pauses for N microseconds.
5047 [pauses for 1 second]
5054 -------------------------------
5059 </listitem></varlistentry>
5060 <varlistentry><term><emphasis>wc
5063 <listitem><para></para>
5066 Usage: wc [OPTION]... [FILE]...
5072 Print line, word, and byte counts for each FILE, and a total line if more
5073 than one FILE is specified. With no FILE, read standard input.
5086 -c print the byte counts
5087 -l print the newline counts
5088 -L print the length of the longest line
5089 -w print the word counts
5104 31 46 1365 /etc/passwd
5111 -------------------------------
5116 </listitem></varlistentry>
5117 <varlistentry><term><emphasis>which
5120 <listitem><para></para>
5123 Usage: which [COMMAND ...]
5150 -------------------------------
5155 </listitem></varlistentry>
5156 <varlistentry><term><emphasis>whoami
5159 <listitem><para></para>
5168 Prints the user name associated with the current effective user id.
5189 -------------------------------
5194 </listitem></varlistentry>
5195 <varlistentry><term><emphasis>yes
5198 <listitem><para></para>
5201 Usage: yes [OPTION]... [STRING]...
5207 Repeatedly outputs a line with all specified <literal>STRING(s),</literal>
5214 -------------------------------
5219 </listitem></varlistentry>
5220 <varlistentry><term><emphasis>zcat
5223 <listitem><para></para>
5226 This is essentially an alias for invoking ``gunzip <emphasis>-c</emphasis>'', where it decompresses the file in question and send the output to
5233 -------------------------------
5238 </listitem></varlistentry></variablelist>
5242 <sect1 id="pod2docbook-ch-1-sect-6"><title>LIBC NSS
5245 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5251 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of
5252 the C library for the local environment, and to configure how it reads
5253 system data, such as passwords and group information. BusyBox has made it
5254 Policy that it will never use NSS, and will never use and libc calls that
5255 make use of NSS. This allows you to run an embedded system without the need
5256 for installing an /etc/nsswitch.conf file and without and /lib/libnss_*
5257 libraries installed.
5263 If you are using a system that is using a remote LDAP server for
5264 authentication via GNU libc NSS, and you want to use BusyBox, then you will
5265 need to adjust the BusyBox source. Chances are though, that if you have
5266 enough space to install of that stuff on your system, then you probably
5267 want the full GNU utilities.
5274 <sect1 id="pod2docbook-ch-1-sect-7"><title>SEE ALSO
5277 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5283 <literal>textutils(1),</literal> <literal>shellutils(1),</literal> etc...
5290 <sect1 id="pod2docbook-ch-1-sect-8"><title>MAINTAINER
5293 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5299 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
5306 <sect1 id="pod2docbook-ch-1-sect-9"><title>AUTHORS
5309 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5315 The following people have contributed code to BusyBox whether they know it
5322 Erik Andersen <andersee@debian.org>
5328 John Beppu <beppu@lineo.com>
5334 Brian Candler <B.Candler@pobox.com>
5340 Randolph Chung <tausq@debian.org>
5346 Dave Cinege <dcinege@psychosis.com>
5352 Karl M. Hegbloom <karlheg@debian.org>
5358 John Lombardo <john@deltanet.com>
5364 Glenn McGrath <bug1@netconnect.com.au>
5370 Bruce Perens <bruce@perens.com>
5376 Pavel Roskin <proski@gnu.org>
5382 Linus Torvalds <torvalds@transmeta.com>
5388 Charles P. Wright <cpwright@villagenet.com>
5394 Enrique Zanardi <ezanardi@ull.es>
5404 </book> <!-- End of the book -->