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
239 Usage: chgrp [OPTION]... GROUP FILE...
243 Change the group membership of each FILE to GROUP.
252 -R change files and directories recursively
263 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
264 $ chgrp root /tmp/foo
266 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
277 Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
281 Changes file access permissions for the specified
282 <literal>FILE(s)</literal> (or directories). Each MODE is defined by
283 combining the letters for WHO has access to the file, an OPERATOR for
284 selecting how the permissions should be changed, and a PERMISSION for
285 <literal>FILE(s)</literal> (or directories).
289 WHO may be chosen from
294 u User who owns the file
295 g Users in the file's Group
296 o Other users not in the file's group
302 OPERATOR may be chosen from
308 - Remove a permission
309 = Assign a permission
314 PERMISSION may be chosen from
321 x Execute (or access for directories)
322 s Set user (or group) ID bit
323 t Sticky bit (for directories prevents removing files by non-owners)
328 Alternately, permissions can be set numerically where the first three
329 numbers are calculated by adding the octal values, such as
341 An optional fourth digit can also be used to specify
358 -R Change files and directories recursively.
369 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
372 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
375 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
385 Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE...
389 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
398 -R Changes files and directories recursively
409 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
410 $ chown root /tmp/foo
412 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
413 $ chown root.root /tmp/foo
415 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
423 <title>chroot</title>
425 Usage: chroot NEWROOT [COMMAND...]
429 Run COMMAND with root directory set to NEWROOT.
439 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox
440 $ mount /dev/hdc1 /mnt -t minix
443 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
456 Changes the foreground virtual terminal to /dev/ttyN
480 Usage: cp [OPTION]... SOURCE DEST
485 or: cp [OPTION]... SOURCE... DIRECTORY
490 Copies SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
502 -p Preserves file attributes if possible
503 -R Copies directories recursively
513 Usage: cut [OPTION]... [FILE]...
517 Prints selected fields from each input FILE to standard output.
526 -b LIST Output only bytes from LIST
527 -c LIST Output only characters from LIST
528 -d CHAR Use CHAR instead of tab as the field delimiter
529 -s Only output Lines if the include DELIM
530 -f N Print only these fields
541 $ echo "Hello world" | cut -f 1 -d ' '
543 $ echo "Hello world" | cut -f 2 -d ' '
555 Usage: date [OPTION]... [+FORMAT]
560 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
565 Displays the current time in the given FORMAT, or sets the system date.
574 -R Outputs RFC-822 compliant date string
575 -s Sets time described by STRING
576 -u Prints or sets Coordinated Universal Time
587 Wed Apr 12 18:52:41 MDT 2000
594 <!-- This is where I have stopped formatting stuff -->
597 </listitem></varlistentry>
598 <varlistentry><term><emphasis>dc
601 <listitem><para></para>
604 Usage: dc expression ...
610 This is a Tiny RPN calculator that understands the following operations: +,
611 -, /, *, and, or, not, eor. If no arguments are given, dc will process
618 The behaviour of BusyBox/dc deviates (just a little ;-) from GNU/dc, but
619 this will be remedied in the future.
640 $ echo 72 9 div 8 mul | dc
648 -------------------------------
653 </listitem></varlistentry>
654 <varlistentry><term><emphasis>dd
657 <listitem><para></para>
660 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
666 Copy a file, converting and formatting according to options
673 if=FILE read from FILE instead of stdin
674 of=FILE write to FILE instead of stdout
675 bs=n read and write n bytes at a time
676 count=n copy only n input blocks
677 skip=n skip n input blocks
678 seek=n skip n output blocks
685 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
698 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
707 -------------------------------
711 </listitem></varlistentry>
712 <varlistentry><term><emphasis>deallocvt
715 <listitem><para></para>
724 Deallocates unused virtual terminal /dev/ttyN
730 -------------------------------
736 </listitem></varlistentry>
737 <varlistentry><term><emphasis>df
740 <listitem><para></para>
743 Usage: df [filesystem ...]
749 Prints the filesystem space used and space available.
763 Filesystem 1k-blocks Used Available Use% Mounted on
764 /dev/sda3 8690864 8553540 137324 98% /
765 /dev/sda1 64216 36364 27852 57% /boot
767 Filesystem 1k-blocks Used Available Use% Mounted on
768 /dev/sda3 8690864 8553540 137324 98% /
775 -------------------------------
780 </listitem></varlistentry>
781 <varlistentry><term><emphasis>dirname
784 <listitem><para></para>
793 Strip non-directory suffix from file name
816 -------------------------------
821 </listitem></varlistentry>
822 <varlistentry><term><emphasis>dmesg
825 <listitem><para></para>
828 Usage: dmesg [<emphasis>-c</emphasis>] [<emphasis>-n</emphasis> level] [<emphasis>-s</emphasis> bufsize]
834 Print or controls the kernel ring buffer.
840 -------------------------------
845 </listitem></varlistentry>
846 <varlistentry><term><emphasis>du
849 <listitem><para></para>
852 Usage: du [OPTION]... [FILE]...
858 Summarize disk space used for each FILE and/or directory. Disk space is
859 printed in units of 1k (i.e. 1024 bytes).
872 -l count sizes many times if hard linked
873 -s display only a total for each argument
889 12 ./kernel-patches/CVS
904 -------------------------------
909 </listitem></varlistentry>
910 <varlistentry><term><emphasis>dutmp
913 <listitem><para></para>
922 Dump utmp file format (pipe delimited) from FILE or stdin to stdout.
935 $ dutmp /var/run/utmp
936 8|7||si|||0|0|0|955637625|760097|0
937 2|0|~|~~|reboot||0|0|0|955637625|782235|0
938 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
939 8|125||l4|||0|0|0|955637629|998367|0
940 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
941 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
942 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
949 -------------------------------
954 </listitem></varlistentry>
955 <varlistentry><term><emphasis>echo
958 <listitem><para></para>
961 Usage: echo [-neE] [ARG ...]
967 Prints the specified ARGs to stdout
980 -n suppress trailing newline
981 -e interpret backslash-escaped characters (i.e. \t=tab etc)
982 -E disable interpretation of backslash-escaped characters
996 $ echo "Erik is cool"
998 $ echo -e "Erik\nis\ncool"
1002 $ echo "Erik\nis\ncool"
1010 -------------------------------
1015 </listitem></varlistentry>
1016 <varlistentry><term><emphasis>false
1019 <listitem><para></para>
1022 Returns an exit code of FALSE (1)
1044 -------------------------------
1049 </listitem></varlistentry>
1050 <varlistentry><term><emphasis>fbset
1053 <listitem><para></para>
1056 Usage: fbset [options] [mode]
1062 Show and modify frame buffer device settings
1102 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
1103 geometry 1024 768 1024 768 16
1104 timings 12714 128 32 16 4 128 4
1106 rgba 5/11,6/5,5/0,0/0
1114 -------------------------------
1119 </listitem></varlistentry>
1120 <varlistentry><term><emphasis>fdflush
1123 <listitem><para></para>
1126 Usage: fdflush device
1132 Force floppy disk drive to detect disk change
1138 -------------------------------
1143 </listitem></varlistentry>
1144 <varlistentry><term><emphasis>find
1147 <listitem><para></para>
1150 Usage: find [PATH...] [EXPRESSION]
1156 Search for files in a directory hierarchy. The default PATH is the current
1157 directory; default EXPRESSION is '-print'
1163 EXPRESSION may consist of:
1170 -follow Dereference symbolic links.
1171 -name PATTERN File name (leading directories removed) matches PATTERN.
1172 -print print the full file name followed by a newline to stdout.
1186 $ find / -name /etc/passwd
1194 -------------------------------
1199 </listitem></varlistentry>
1200 <varlistentry><term><emphasis>free
1203 <listitem><para></para>
1212 Displays the amount of free and used system memory.
1226 total used free shared buffers
1227 Mem: 257628 248724 8904 59644 93124
1228 Swap: 128516 8404 120112
1229 Total: 386144 257128 129016
1236 -------------------------------
1241 </listitem></varlistentry>
1242 <varlistentry><term><emphasis>freeramdisk
1245 <listitem><para></para>
1248 Usage: freeramdisk DEVICE
1254 Frees all memory used by the specified ramdisk.
1267 $ freeramdisk /dev/ram2
1274 -------------------------------
1279 </listitem></varlistentry>
1280 <varlistentry><term><emphasis>fsck.minix
1283 <listitem><para></para>
1286 Usage: fsck.minix [<emphasis>-larvsmf</emphasis>] /dev/name
1292 Performs a consistency check for MINIX filesystems.
1305 -l Lists all filenames
1306 -r Perform interactive repairs
1307 -a Perform automatic repairs
1309 -s Outputs super-block information
1310 -m Activates MINIX-like "mode not cleared" warnings
1311 -f Force file system check.
1318 -------------------------------
1323 </listitem></varlistentry>
1324 <varlistentry><term><emphasis>grep
1327 <listitem><para></para>
1330 Usage: grep [OPTIONS]... PATTERN [FILE]...
1336 Search for PATTERN in each FILE or standard input.
1349 -h suppress the prefixing filename on output
1350 -i ignore case distinctions
1351 -n print line number with output lines
1352 -q be quiet. Returns 0 if result was found, 1 otherwise
1353 -v select non-matching lines
1360 This version of grep matches full regular expressions.
1373 $ grep root /etc/passwd
1374 root:x:0:0:root:/root:/bin/bash
1375 $ grep ^[rR]oo. /etc/passwd
1376 root:x:0:0:root:/root:/bin/bash
1383 -------------------------------
1388 </listitem></varlistentry>
1389 <varlistentry><term><emphasis>gunzip
1392 <listitem><para></para>
1395 Usage: gunzip [OPTION]... FILE
1401 Uncompress FILE (or standard input if FILE is '-').
1414 -c Write output to standard output
1415 -t Test compressed file integrity
1429 $ ls -la /tmp/BusyBox*
1430 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
1431 $ gunzip /tmp/BusyBox-0.43.tar.gz
1432 $ ls -la /tmp/BusyBox*
1433 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1440 -------------------------------
1445 </listitem></varlistentry>
1446 <varlistentry><term><emphasis>gzip
1449 <listitem><para></para>
1452 Usage: gzip [OPTION]... FILE
1458 Compress FILE with maximum compression. When FILE is '-', reads standard
1459 input. Implies <emphasis>-c</emphasis>.
1472 -c Write output to standard output instead of FILE.gz
1486 $ ls -la /tmp/BusyBox*
1487 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1488 $ gzip /tmp/BusyBox-0.43.tar
1489 $ ls -la /tmp/BusyBox*
1490 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
1497 -------------------------------
1502 </listitem></varlistentry>
1503 <varlistentry><term><emphasis>halt
1506 <listitem><para></para>
1515 This command halts the system.
1521 -------------------------------
1526 </listitem></varlistentry>
1527 <varlistentry><term><emphasis>head
1530 <listitem><para></para>
1533 Usage: head [OPTION] [FILE]...
1539 Print first 10 lines of each FILE to standard output. With more than one
1540 FILE, precede each with a header giving the file name. With no FILE, or
1541 when FILE is -, read standard input.
1554 -n NUM Print first NUM lines instead of first 10
1568 $ head -n 2 /etc/passwd
1569 root:x:0:0:root:/root:/bin/bash
1570 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
1577 -------------------------------
1582 </listitem></varlistentry>
1583 <varlistentry><term><emphasis>hostid
1586 <listitem><para></para>
1595 Prints out a unique 32-bit identifier for the current machine. The 32-bit
1596 identifier is intended to be unique among all UNIX systems in existence.
1602 -------------------------------
1607 </listitem></varlistentry>
1608 <varlistentry><term><emphasis>hostname
1611 <listitem><para></para>
1614 Usage: hostname [OPTION] {hostname | <emphasis>-F</emphasis> file}
1620 Get or set the hostname or DNS domain name. If a hostname is given (or a
1621 file with the <emphasis>-F</emphasis> parameter), the host name will be set.
1635 -i Addresses for the hostname
1637 -F FILE Use the contents of FILE to specify the hostname
1659 -------------------------------
1664 </listitem></varlistentry>
1665 <varlistentry><term><emphasis>id
1668 <listitem><para></para>
1671 Print information for USERNAME or the current user
1684 -g prints only the group ID
1685 -u prints only the user ID
1686 -r prints the real user ID instead of the effective ID (with -ug)
1701 uid=1000(andersen) gid=1000(andersen)
1708 -------------------------------
1713 </listitem></varlistentry>
1714 <varlistentry><term><emphasis>init
1717 <listitem><para></para>
1726 Init is the parent of all processes.
1732 This version of init is designed to be run only by the kernel.
1738 BusyBox init doesn't support multiple runlevels. The runlevels field of the
1739 /etc/inittab file is completely ignored by BusyBox init. If you want
1740 runlevels, use sysvinit.
1746 BusyBox init works just fine without an inittab. If no inittab is found, it
1747 has the following default behavior:
1754 ::sysinit:/etc/init.d/rcS
1762 if it detects that /dev/console is _not_ a serial console, it will also
1770 tty2::askfirst:/bin/sh
1777 If you choose to use an /etc/inittab file, the inittab entry format is as
1785 <id>:<runlevels>:<action>:<process>
1801 WARNING: This field has a non-traditional meaning for BusyBox init!
1802 The id field is used by BusyBox init to specify the controlling tty for
1803 the specified process to run on. The contents of this field are
1804 appended to "/dev/" and used as-is. There is no need for this field to
1805 be unique, although if it isn't you may have strange results. If this
1806 field is left blank, it is completely ignored. Also note that if
1807 BusyBox detects that a serial console is in use, then all entries
1808 containing non-empty id fields will _not_ be run. BusyBox init does
1809 nothing with utmp. We don't need no stinkin' utmp.
1825 The runlevels field is completely ignored.
1841 Valid actions include: sysinit, respawn, askfirst, wait,
1842 once, and ctrlaltdel.
1850 askfirst acts just like respawn, but before running the specified
1851 process it displays the line "Please press Enter to activate this
1852 console." and then waits for the user to press enter before starting
1853 the specified process.
1861 Unrecognized actions (like initdefault) will cause init to emit
1862 an error message, and then go along with its business.
1878 Specifies the process to be executed and it's command line.
1885 Example /etc/inittab file:
1892 # This is run first except when booting in single-user mode.
1894 ::sysinit:/etc/init.d/rcS
1902 # /bin/sh invocations on selected ttys
1904 # Start an "askfirst" shell on the console (whatever that may be)
1906 # Start an "askfirst" shell on /dev/tty2
1907 tty2::askfirst:/bin/sh
1915 # /sbin/getty invocations for selected ttys
1917 tty4::respawn:/sbin/getty 38400 tty4
1918 tty5::respawn:/sbin/getty 38400 tty5
1926 # Example of how to put a getty on a serial line (for a terminal)
1928 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
1929 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
1931 # Example how to put a getty on a modem line.
1932 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
1940 # Stuff to do before rebooting
1941 ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
1942 ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
1949 -------------------------------
1954 </listitem></varlistentry>
1955 <varlistentry><term><emphasis>insmod
1958 <listitem><para></para>
1961 Usage: insmod [OPTION]... MODULE [symbol=value]...
1967 Loads the specified kernel modules into the kernel.
1980 -f Force module to load into the wrong kernel version.
1981 -k Make module autoclean-able.
1983 -x do not export externs
1990 -------------------------------
1995 </listitem></varlistentry>
1996 <varlistentry><term><emphasis>kill
1999 <listitem><para></para>
2002 Usage: kill [<emphasis>-signal</emphasis>] process-id [process-id ...]
2008 Send a signal (default is SIGTERM) to the specified
2009 <literal>process(es).</literal>
2022 -l List all signal names and numbers.
2037 252 root root S [apache]
2038 263 www-data www-data S [apache]
2039 264 www-data www-data S [apache]
2040 265 www-data www-data S [apache]
2041 266 www-data www-data S [apache]
2042 267 www-data www-data S [apache]
2050 -------------------------------
2055 </listitem></varlistentry>
2056 <varlistentry><term><emphasis>killall
2059 <listitem><para></para>
2062 Usage: killall [<emphasis>-signal</emphasis>] process-name [process-name ...]
2068 Send a signal (default is SIGTERM) to the specified
2069 <literal>process(es).</literal>
2082 -l List all signal names and numbers.
2103 -------------------------------
2108 </listitem></varlistentry>
2109 <varlistentry><term><emphasis>length
2112 <listitem><para></para>
2115 Usage: length STRING
2121 Prints out the length of the specified STRING.
2142 -------------------------------
2147 </listitem></varlistentry>
2148 <varlistentry><term><emphasis>ln
2151 <listitem><para></para>
2154 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
2160 Create a link named LINK_NAME or DIRECTORY to the specified TARGET You may
2161 use '--' to indicate that all following arguments are non-options.
2174 -s make symbolic links instead of hard links
2175 -f remove existing destination files
2189 $ ln -s BusyBox /tmp/ls
2191 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
2198 -------------------------------
2203 </listitem></varlistentry>
2204 <varlistentry><term><emphasis>loadacm
2207 <listitem><para></para>
2216 Loads an acm from standard input.
2229 $ loadacm < /etc/i18n/acmname
2236 -------------------------------
2241 </listitem></varlistentry>
2242 <varlistentry><term><emphasis>loadfont
2245 <listitem><para></para>
2254 Loads a console font from standard input.
2267 $ loadfont < /etc/i18n/fontname
2274 -------------------------------
2279 </listitem></varlistentry>
2280 <varlistentry><term><emphasis>loadkmap
2283 <listitem><para></para>
2292 Loads a binary keyboard translation table from standard input.
2305 $ loadkmap < /etc/i18n/lang-keymap
2312 -------------------------------
2317 </listitem></varlistentry>
2318 <varlistentry><term><emphasis>logger
2321 <listitem><para></para>
2324 Usage: logger [OPTION]... [MESSAGE]
2330 Write MESSAGE to the system log. If MESSAGE is '-', log stdin.
2343 -s Log to stderr as well as the system log.
2344 -t Log using the specified tag (defaults to user name).
2345 -p Enter the message with the specified priority.
2346 This may be numerical or a ``facility.level'' pair.
2367 -------------------------------
2372 </listitem></varlistentry>
2373 <varlistentry><term><emphasis>logname
2376 <listitem><para></para>
2385 Print the name of the current user.
2406 -------------------------------
2411 </listitem></varlistentry>
2412 <varlistentry><term><emphasis>ls
2415 <listitem><para></para>
2418 Usage: ls [<emphasis>-1acdelnpuxACFR</emphasis>] [filenames...]
2431 -a do not hide entries starting with .
2432 -c with -l: show ctime (the time of last
2433 modification of file status information)
2434 -d list directory entries instead of contents
2435 -e list both full date and full time
2436 -l use a long listing format
2437 -n list numeric UIDs and GIDs instead of names
2438 -p append indicator (one of /=@|) to entries
2439 -u with -l: show access time (the time of last
2441 -x list entries by lines instead of by columns
2442 -A do not list implied . and ..
2443 -C list entries by columns
2444 -F append indicator (one of */=@|) to entries
2445 -R list subdirectories recursively
2452 -------------------------------
2457 </listitem></varlistentry>
2458 <varlistentry><term><emphasis>lsmod
2461 <listitem><para></para>
2470 Shows a list of all currently loaded kernel modules.
2476 -------------------------------
2481 </listitem></varlistentry>
2482 <varlistentry><term><emphasis>makedevs
2485 <listitem><para></para>
2488 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
2494 Creates a range of block or character special files
2507 b: Make a block (buffered) device.
2508 c or u: Make a character (un-buffered) device.
2509 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
2516 FIRST specifies the number appended to NAME to create the first device.
2517 LAST specifies the number of the last item that should be created. If 's'
2518 is the last argument, the base device is created as well.
2531 $ makedevs /dev/ttyS c 4 66 2 63
2532 [creates ttyS2-ttyS63]
2533 $ makedevs /dev/hda b 3 0 0 8 s
2534 [creates hda,hda1-hda8]
2541 -------------------------------
2546 </listitem></varlistentry>
2547 <varlistentry><term><emphasis>md5sum
2550 <listitem><para></para>
2553 Usage: md5sum [OPTION] [file ...]
2559 Print or check MD5 checksums.
2572 -b read files in binary mode
2573 -c check MD5 sums against given list
2574 -t read files in text mode (default)
2582 The following two options are useful only when verifying checksums:
2589 -s don't output anything, status code shows success
2590 -w warn about improperly formated MD5 checksum lines
2605 6fd11e98b98a58f64ff3398d7b324003 busybox
2607 6fd11e98b98a58f64ff3398d7b324003 busybox
2616 -------------------------------
2621 </listitem></varlistentry>
2622 <varlistentry><term><emphasis>mkdir
2625 <listitem><para></para>
2628 Usage: mkdir [OPTION] DIRECTORY...
2634 Create the <literal>DIRECTORY(ies),</literal> if they do not already exist
2647 -m set permission mode (as in chmod), not rwxrwxrwx - umask
2648 -p no error if directory exists, make parent directories as needed
2664 /tmp/foo: File exists
2665 $ mkdir /tmp/foo/bar/baz
2666 /tmp/foo/bar/baz: No such file or directory
2667 $ mkdir -p /tmp/foo/bar/baz
2674 -------------------------------
2679 </listitem></varlistentry>
2680 <varlistentry><term><emphasis>mkfifo
2683 <listitem><para></para>
2686 Usage: mkfifo [OPTIONS] name
2692 Creates a named pipe (identical to 'mknod name p')
2705 -m create the pipe using the specified mode (default a=rw)
2712 -------------------------------
2717 </listitem></varlistentry>
2718 <varlistentry><term><emphasis>mkfs.minix
2721 <listitem><para></para>
2724 Usage: mkfs.minix [<emphasis>-c</emphasis> | <emphasis>-l</emphasis> filename] [<emphasis>-nXX</emphasis>] [<emphasis>-iXX</emphasis>] /dev/name [blocks]
2730 Make a MINIX filesystem.
2743 -c Check the device for bad blocks
2744 -n [14|30] Specify the maximum length of filenames
2745 -i Specify the number of inodes for the filesystem
2746 -l FILENAME Read the bad blocks list from FILENAME
2747 -v Make a Minix version 2 filesystem
2754 -------------------------------
2759 </listitem></varlistentry>
2760 <varlistentry><term><emphasis>mknod
2763 <listitem><para></para>
2766 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
2772 Create a special file (block, character, or pipe).
2785 -m create the special file using the specified mode (default a=rw)
2792 TYPEs include: b: Make a block (buffered) device. c or u: Make a character
2793 (un-buffered) device. p: Make a named pipe. MAJOR and MINOR are ignored for
2807 $ mknod /dev/fd0 b 2 0
2808 $ mknod -m 644 /tmp/pipe p
2815 -------------------------------
2820 </listitem></varlistentry>
2821 <varlistentry><term><emphasis>mkswap
2824 <listitem><para></para>
2827 Usage: mkswap [<emphasis>-c</emphasis>] [<emphasis>-v0</emphasis>|<emphasis>-v1</emphasis>] device [block-count]
2833 Prepare a disk partition to be used as a swap partition.
2846 -c Check for read-ability.
2847 -v0 Make version 0 swap [max 128 Megs].
2848 -v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
2849 block-count Number of block to use (default is entire partition).
2856 -------------------------------
2861 </listitem></varlistentry>
2862 <varlistentry><term><emphasis>mktemp
2865 <listitem><para></para>
2868 Usage: mktemp [<emphasis>-q</emphasis>] TEMPLATE
2874 Creates a temporary file with its name based on TEMPLATE. TEMPLATE is any
2875 name with six `Xs' (i.e. /tmp/temp.XXXXXX).
2888 $ mktemp /tmp/temp.XXXXXX
2890 $ ls -la /tmp/temp.mWiLjM
2891 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
2898 -------------------------------
2903 </listitem></varlistentry>
2904 <varlistentry><term><emphasis>more
2907 <listitem><para></para>
2910 Usage: more [file ...]
2916 More is a filter for paging through text one screenful at a time.
2936 -------------------------------
2941 </listitem></varlistentry>
2942 <varlistentry><term><emphasis>mount
2945 <listitem><para></para>
2948 Usage: mount [flags] mount [flags] device directory [<emphasis>-o</emphasis> options,more-options]
2961 -a: Mount all file systems in fstab.
2962 -o option: One of many filesystem options, listed below.
2963 -r: Mount the filesystem read-only.
2964 -t fs-type: Specify the filesystem type.
2965 -w: Mount for reading and writing (default).
2972 Options for use with the ``<emphasis>-o</emphasis>'' flag:
2979 async/sync: Writes are asynchronous / synchronous.
2980 atime/noatime: Enable / disable updates to inode access times.
2981 dev/nodev: Allow use of special device files / disallow them.
2982 exec/noexec: Allow use of executable files / disallow them.
2983 loop: Mounts a file via loop device.
2984 suid/nosuid: Allow set-user-id-root programs / disallow them.
2985 remount: Re-mount a currently-mounted filesystem, changing its flags.
2986 ro/rw: Mount for read-only / read-write.
2987 There are EVEN MORE flags that are specific to each filesystem.
2988 You'll have to see the written documentation for those.
3003 /dev/hda3 on / type minix (rw)
3004 proc on /proc type proc (rw)
3005 devpts on /dev/pts type devpts (rw)
3006 $ mount /dev/fd0 /mnt -t msdos -o ro
3007 $ mount /tmp/diskimage /opt -t ext2 -o loop
3014 -------------------------------
3019 </listitem></varlistentry>
3020 <varlistentry><term><emphasis>mt
3023 <listitem><para></para>
3026 Usage: mt [<emphasis>-f</emphasis> device] opcode value
3032 Control magnetic tape drive operation
3038 -------------------------------
3043 </listitem></varlistentry>
3044 <varlistentry><term><emphasis>mv
3047 <listitem><para></para>
3050 Usage: mv SOURCE DEST
3057 or: mv SOURCE... DIRECTORY
3064 Rename SOURCE to DEST, or move <literal>SOURCE(s)</literal> to DIRECTORY.
3077 $ mv /tmp/foo /bin/bar
3084 -------------------------------
3089 </listitem></varlistentry>
3090 <varlistentry><term><emphasis>nc
3093 <listitem><para></para>
3096 Usage: nc [IP] [port]
3102 Netcat opens a pipe to IP:port
3115 $ nc foobar.somedomain.com 25
3116 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
3118 214-Commands supported:
3119 214- HELO EHLO MAIL RCPT DATA AUTH
3120 214 NOOP QUIT RSET HELP
3122 221 foobar closing connection
3129 -------------------------------
3134 </listitem></varlistentry>
3135 <varlistentry><term><emphasis>nslookup
3138 <listitem><para></para>
3141 Usage: nslookup [HOST]
3147 Queries the nameserver for the IP address of the given HOST
3160 $ nslookup localhost
3178 -------------------------------
3183 </listitem></varlistentry>
3184 <varlistentry><term><emphasis>ping
3187 <listitem><para></para>
3190 Usage: ping [OPTION]... host
3196 Send ICMP ECHO_REQUEST packets to network hosts.
3209 -c COUNT Send only COUNT pings.
3210 -s SIZE Send SIZE data bytes in packets (default=56).
3211 -q Quiet mode, only displays output at start
3222 PING slag (127.0.0.1): 56 data bytes
3223 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
3231 --- debian ping statistics ---
3232 1 packets transmitted, 1 packets received, 0% packet loss
3233 round-trip min/avg/max = 20.1/20.1/20.1 ms
3240 -------------------------------
3245 </listitem></varlistentry>
3246 <varlistentry><term><emphasis>poweroff
3249 <listitem><para></para>
3252 Shuts down the system, and requests that the kernel turn off power upon
3259 -------------------------------
3264 </listitem></varlistentry>
3265 <varlistentry><term><emphasis>printf
3268 <listitem><para></para>
3271 Usage: printf format [argument...]
3277 Formats and prints the given data in a manner similar to the C printf
3291 $ printf "Val=%d\n" 5
3299 -------------------------------
3304 </listitem></varlistentry>
3305 <varlistentry><term><emphasis>ps
3308 <listitem><para></para>
3317 Report process status
3323 This version of ps accepts no options.
3337 PID Uid Gid State Command
3339 2 root root S [kflushd]
3340 3 root root S [kupdate]
3341 4 root root S [kpiod]
3342 5 root root S [kswapd]
3343 742 andersen andersen S [bash]
3344 743 andersen andersen S -bash
3345 745 root root S [getty]
3346 2990 andersen andersen R ps
3353 -------------------------------
3358 </listitem></varlistentry>
3359 <varlistentry><term><emphasis>pwd
3362 <listitem><para></para>
3365 Prints the full filename of the current working directory.
3386 -------------------------------
3391 </listitem></varlistentry>
3392 <varlistentry><term><emphasis>reboot
3395 <listitem><para></para>
3398 Instructs the kernel to reboot the system.
3404 -------------------------------
3409 </listitem></varlistentry>
3410 <varlistentry><term><emphasis>rm
3413 <listitem><para></para>
3416 Usage: rm [OPTION]... FILE...
3422 Remove (unlink) the <literal>FILE(s).</literal> You may use '--' to
3423 indicate that all following arguments are non-options.
3436 -f remove existing destinations, never prompt
3437 -r or -R remove the contents of directories recursively
3458 -------------------------------
3463 </listitem></varlistentry>
3464 <varlistentry><term><emphasis>rmdir
3467 <listitem><para></para>
3470 Usage: rmdir [OPTION]... DIRECTORY...
3476 Remove the <literal>DIRECTORY(ies),</literal> if they are empty.
3496 -------------------------------
3501 </listitem></varlistentry>
3502 <varlistentry><term><emphasis>rmmod
3505 <listitem><para></para>
3508 Usage: rmmod [OPTION]... [MODULE]...
3514 Unloads the specified kernel modules from the kernel.
3527 -a Try to remove all unused kernel modules.
3548 -------------------------------
3553 </listitem></varlistentry>
3554 <varlistentry><term><emphasis>sed
3557 <listitem><para></para>
3560 Usage: sed [<emphasis>-n</emphasis>] <emphasis>-e</emphasis> script [file...]
3566 Allowed sed scripts come in the following form:
3581 where address ADDR can be:
3582 NUMBER Match specified line number
3584 /REGEXP/ Match specified regexp
3585 (! inverts the meaning of the match)
3594 s/regexp/replacement/[igp]
3595 which attempt to match regexp against the pattern space
3596 and if successful replaces the matched portion with replacement.
3605 which appends TEXT after the pattern space
3619 -e add the script to the commands to be executed
3620 -n suppress automatic printing of pattern space
3627 This version of sed matches full regular expressions.
3640 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
3648 -------------------------------
3653 </listitem></varlistentry>
3654 <varlistentry><term><emphasis>setkeycodes
3657 <listitem><para></para>
3660 Usage: setkeycodes SCANCODE KEYCODE ...
3666 Set entries into the kernel's scancode-to-keycode map, allowing unusual
3667 keyboards to generate usable keycodes.
3673 SCANCODE may be either xx or e0xx (hexadecimal), and KEYCODE is given in
3687 # setkeycodes e030 127
3694 -------------------------------
3699 </listitem></varlistentry>
3700 <varlistentry><term><emphasis>sfdisk
3703 <listitem><para></para>
3706 Usage: sfdisk [options] device ...
3712 device: something like /dev/hda or /dev/sda
3725 -s [or --show-size]: list size of a partition
3726 -c [or --id]: print or change partition Id
3727 -l [or --list]: list partitions of each device
3728 -d [or --dump]: idem, but in a format suitable for later input
3729 -i [or --increment]: number cylinders etc. from 1 instead of from 0
3730 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
3731 -T [or --list-types]:list the known partition types
3732 -D [or --DOS]: for DOS-compatibility: waste a little space
3733 -R [or --re-read]: make kernel reread partition table
3734 -N# : change only the partition with number #
3735 -n : do not actually write to disk
3736 -O file : save the sectors that will be overwritten to file
3737 -I file : restore these sectors again
3738 -v [or --version]: print version
3739 -? [or --help]: print this message
3753 -g [or --show-geometry]: print the kernel's idea of the geometry
3754 -x [or --show-extended]: also list extended partitions on output
3762 or expect descriptors for them on input
3763 -L [or --Linux]: do not complain about things irrelevant for Linux
3764 -q [or --quiet]: suppress warning messages
3765 You can override the detected geometry using:
3766 -C# [or --cylinders #]:set the number of cylinders to use
3767 -H# [or --heads #]: set the number of heads to use
3768 -S# [or --sectors #]: set the number of sectors to use
3775 You can disable all consistency checking with:
3782 -f [or --force]: do what I say, even if it is stupid
3789 -------------------------------
3794 </listitem></varlistentry>
3795 <varlistentry><term><emphasis>sh
3798 <listitem><para></para>
3807 lash -- the BusyBox LAme SHell (command interpreter)
3813 This command does not yet have proper documentation.
3819 Use lash just as you would use any other shell. It properly handles pipes,
3820 redirects, job control, can be used as the shell for scripts (#!/bin/sh),
3821 and has a sufficient set of builtins to do what is needed. It does not
3822 (yet) support Bourne Shell syntax. If you need things like
3823 ``if-then-else'', ``while'', and such, use ash or bash. If you just need a
3824 very simple and extremely small shell, this will do the job.
3830 -------------------------------
3835 </listitem></varlistentry>
3836 <varlistentry><term><emphasis>sleep
3839 <listitem><para></para>
3848 Pause for N seconds.
3862 [2 second delay results]
3869 -------------------------------
3874 </listitem></varlistentry>
3875 <varlistentry><term><emphasis>sort
3878 <listitem><para></para>
3881 Usage: sort [<emphasis>-n</emphasis>] [<emphasis>-r</emphasis>] [FILE]...
3887 Sorts lines of text in the specified files
3900 $ echo -e "e\nf\nb\nd\nc\na" | sort
3913 -------------------------------
3918 </listitem></varlistentry>
3919 <varlistentry><term><emphasis>swapoff
3922 <listitem><para></para>
3925 Usage: swapoff [OPTION] [device]
3931 Stop swapping virtual memory pages on the given device.
3944 -a Stop swapping on all swap devices
3951 -------------------------------
3956 </listitem></varlistentry>
3957 <varlistentry><term><emphasis>swapon
3960 <listitem><para></para>
3963 Usage: swapon [OPTION] [device]
3969 Start swapping virtual memory pages on the given device.
3982 -a Start swapping on all swap devices
3989 -------------------------------
3994 </listitem></varlistentry>
3995 <varlistentry><term><emphasis>sync
3998 <listitem><para></para>
4007 Write all buffered filesystem blocks to disk.
4013 -------------------------------
4018 </listitem></varlistentry>
4019 <varlistentry><term><emphasis>syslogd
4022 <listitem><para></para>
4025 Usage: syslogd [OPTION]...
4031 Linux system and kernel (provides klogd) logging utility. Note that this
4032 version of syslogd/klogd ignores /etc/syslog.conf.
4045 -m NUM Interval between MARK lines (default=20min, 0=off)
4046 -n Run as a foreground process
4047 -K Do not start up the klogd process
4048 -O FILE Use an alternate log file (default=/var/log/messages)
4055 -------------------------------
4060 </listitem></varlistentry>
4061 <varlistentry><term><emphasis>tail
4064 <listitem><para></para>
4067 Usage: tail [OPTION] [FILE]...
4073 Print last 10 lines of each FILE to standard output. With more than one
4074 FILE, precede each with a header giving the file name. With no FILE, or
4075 when FILE is -, read standard input.
4088 -n NUM Print last NUM lines instead of first 10
4089 -f Output data as the file grows. This version
4090 of 'tail -f' supports only one file at a time.
4104 $ tail -n 1 /etc/resolv.conf
4112 -------------------------------
4117 </listitem></varlistentry>
4118 <varlistentry><term><emphasis>tar
4121 <listitem><para></para>
4124 Usage: tar -[cxtvO] [<emphasis>--exclude</emphasis> File] [<emphasis>-f</emphasis> tarFile] [FILE] ...
4130 Create, extract, or list files from a tar file. Note that this version of
4131 tar treats hard links as separate files.
4137 Main operation mode:
4160 f name of tarfile or "-" for stdin
4162 --exclude file to exclude
4176 v verbosely list files processed
4190 $ zcat /tmp/tarball.tar.gz | tar -xf -
4191 $ tar -cf /tmp/tarball.tar /usr/local
4198 -------------------------------
4203 </listitem></varlistentry>
4204 <varlistentry><term><emphasis>tee
4207 <listitem><para></para>
4210 Usage: tee [OPTION]... [FILE]...
4216 Copy standard input to each FILE, and also to standard output.
4229 -a append to the given FILEs, do not overwrite
4243 $ echo "Hello" | tee /tmp/foo
4252 -------------------------------
4257 </listitem></varlistentry>
4258 <varlistentry><term><emphasis>telnet
4261 <listitem><para></para>
4264 Usage: telnet host [port]
4270 Telnet is used to establish interactive communication with another computer
4271 over a network using the TELNET protocol.
4277 -------------------------------
4282 </listitem></varlistentry>
4283 <varlistentry><term><emphasis>test, [
4286 <listitem><para></para>
4289 Usage: test EXPRESSION or [ EXPRESSION ]
4295 Checks file types and compares values returning an exit code determined by
4296 the value of EXPRESSION.
4327 -------------------------------
4332 </listitem></varlistentry>
4333 <varlistentry><term><emphasis>touch
4336 <listitem><para></para>
4339 Usage: touch [<emphasis>-c</emphasis>] file [file ...]
4345 Update the last-modified date on (or create) the selected file[s].
4359 /bin/ls: /tmp/foo: No such file or directory
4362 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
4369 -------------------------------
4374 </listitem></varlistentry>
4375 <varlistentry><term><emphasis>tr
4378 <listitem><para></para>
4381 Usage: tr [-cds] STRING1 [STRING2]
4387 Translate, squeeze, and/or delete characters from standard input, writing
4401 -c take complement of STRING1
4402 -d delete input characters coded STRING1
4403 -s squeeze multiple output characters of STRING2 into one character
4417 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
4425 -------------------------------
4430 </listitem></varlistentry>
4431 <varlistentry><term><emphasis>true
4434 <listitem><para></para>
4437 Returns an exit code of TRUE (0)
4459 -------------------------------
4464 </listitem></varlistentry>
4465 <varlistentry><term><emphasis>tty
4468 <listitem><para></para>
4477 Print the file name of the terminal connected to standard input.
4490 -s print nothing, only return an exit status
4512 -------------------------------
4517 </listitem></varlistentry>
4518 <varlistentry><term><emphasis>umount
4521 <listitem><para></para>
4524 Usage: umount [flags] filesystem|directory
4537 -a: Unmount all file systems
4538 -r: Try to remount devices as read-only if mount is busy
4539 -f: Force filesystem umount (i.e. unreachable NFS server)
4540 -l: Do not free loop device (if a loop device has been used)
4561 -------------------------------
4566 </listitem></varlistentry>
4567 <varlistentry><term><emphasis>uname
4570 <listitem><para></para>
4573 Usage: uname [OPTION]...
4579 Print certain system information. With no OPTION, same as <emphasis>-s</emphasis>.
4592 -a print all information
4593 -m the machine (hardware) type
4594 -n print the machine's network node hostname
4595 -r print the operating system release
4596 -s print the operating system name
4597 -p print the host processor type
4598 -v print the operating system version
4613 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
4620 -------------------------------
4625 </listitem></varlistentry>
4626 <varlistentry><term><emphasis>uniq
4629 <listitem><para></para>
4632 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
4638 Discard all but one of successive identical lines from INPUT (or standard
4639 input), writing to OUTPUT (or standard output).
4652 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
4662 -------------------------------
4667 </listitem></varlistentry>
4668 <varlistentry><term><emphasis>update
4671 <listitem><para></para>
4674 Usage: update [options]
4680 Periodically flushes filesystem buffers.
4693 -S force use of sync(2) instead of flushing
4694 -s SECS call sync this often (default 30)
4695 -f SECS flush some buffers this often (default 5)
4702 -------------------------------
4707 </listitem></varlistentry>
4708 <varlistentry><term><emphasis>uptime
4711 <listitem><para></para>
4720 Tells how long the system has been running since boot.
4734 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
4741 -------------------------------
4746 </listitem></varlistentry>
4747 <varlistentry><term><emphasis>usleep
4750 <listitem><para></para>
4759 Pauses for N microseconds.
4773 [pauses for 1 second]
4780 -------------------------------
4785 </listitem></varlistentry>
4786 <varlistentry><term><emphasis>uudecode
4789 <listitem><para></para>
4792 Usage: uudecode [OPTION] [FILE]
4798 Uudecode a uuencoded file
4811 -o FILE direct output to FILE
4825 $ uudecode -o busybox busybox.uu
4827 -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
4834 -------------------------------
4839 </listitem></varlistentry>
4840 <varlistentry><term><emphasis>uuencode
4843 <listitem><para></para>
4846 Usage: uuencode [OPTION] [INFILE] REMOTEFILE
4865 -m use base64 encoding as of RFC1521
4879 $ uuencode busybox busybox
4881 M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&
4883 $ uudecode busybox busybox > busybox.uu
4891 -------------------------------
4896 </listitem></varlistentry>
4897 <varlistentry><term><emphasis>wc
4900 <listitem><para></para>
4903 Usage: wc [OPTION]... [FILE]...
4909 Print line, word, and byte counts for each FILE, and a total line if more
4910 than one FILE is specified. With no FILE, read standard input.
4923 -c print the byte counts
4924 -l print the newline counts
4925 -L print the length of the longest line
4926 -w print the word counts
4941 31 46 1365 /etc/passwd
4948 -------------------------------
4953 </listitem></varlistentry>
4954 <varlistentry><term><emphasis>which
4957 <listitem><para></para>
4960 Usage: which [COMMAND ...]
4987 -------------------------------
4992 </listitem></varlistentry>
4993 <varlistentry><term><emphasis>whoami
4996 <listitem><para></para>
5005 Prints the user name associated with the current effective user id.
5026 -------------------------------
5031 </listitem></varlistentry>
5032 <varlistentry><term><emphasis>yes
5035 <listitem><para></para>
5038 Usage: yes [OPTION]... [STRING]...
5044 Repeatedly outputs a line with all specified <literal>STRING(s),</literal>
5051 -------------------------------
5056 </listitem></varlistentry>
5057 <varlistentry><term><emphasis>zcat
5060 <listitem><para></para>
5063 This is essentially an alias for invoking ``gunzip <emphasis>-c</emphasis>'', where it decompresses the file in question and send the output to
5070 -------------------------------
5075 </listitem></varlistentry></variablelist>
5079 <sect1 id="pod2docbook-ch-1-sect-6"><title>LIBC NSS
5082 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5088 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of
5089 the C library for the local environment, and to configure how it reads
5090 system data, such as passwords and group information. BusyBox has made it
5091 Policy that it will never use NSS, and will never use and libc calls that
5092 make use of NSS. This allows you to run an embedded system without the need
5093 for installing an /etc/nsswitch.conf file and without and /lib/libnss_*
5094 libraries installed.
5100 If you are using a system that is using a remote LDAP server for
5101 authentication via GNU libc NSS, and you want to use BusyBox, then you will
5102 need to adjust the BusyBox source. Chances are though, that if you have
5103 enough space to install of that stuff on your system, then you probably
5104 want the full GNU utilities.
5111 <sect1 id="pod2docbook-ch-1-sect-7"><title>SEE ALSO
5114 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5120 <literal>textutils(1),</literal> <literal>shellutils(1),</literal> etc...
5127 <sect1 id="pod2docbook-ch-1-sect-8"><title>MAINTAINER
5130 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5136 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
5143 <sect1 id="pod2docbook-ch-1-sect-9"><title>AUTHORS
5146 <!-- Bogus hack to ensure that each sect has a paragraph in it -->
5152 The following people have contributed code to BusyBox whether they know it
5159 Erik Andersen <andersee@debian.org>
5165 John Beppu <beppu@lineo.com>
5171 Brian Candler <B.Candler@pobox.com>
5177 Randolph Chung <tausq@debian.org>
5183 Dave Cinege <dcinege@psychosis.com>
5189 Karl M. Hegbloom <karlheg@debian.org>
5195 John Lombardo <john@deltanet.com>
5201 Glenn McGrath <bug1@netconnect.com.au>
5207 Bruce Perens <bruce@perens.com>
5213 Pavel Roskin <proski@gnu.org>
5219 Linus Torvalds <torvalds@transmeta.com>
5225 Charles P. Wright <cpwright@villagenet.com>
5231 Enrique Zanardi <ezanardi@ull.es>
5241 </book> <!-- End of the book -->