5 BusyBox - The Swiss Army Knife of Embedded Linux
9 BusyBox <function> [arguments...] # or
11 <function> [arguments...] # if symlinked
15 BusyBox combines tiny versions of many common UNIX utilities into a single
16 small executable. It provides minimalist replacements for most of the utilities
17 you usually find in fileutils, shellutils, findutils, textutils, grep, gzip,
18 tar, etc. BusyBox provides a fairly complete POSIX environment for any small
19 or emdedded system. The utilities in BusyBox generally have fewer options then
20 their full featured GNU cousins; however, the options that are included provide
21 the expected functionality and behave very much like their GNU counterparts.
23 BusyBox has been written with size-optimization and limited resources in mind.
24 It is also extremely modular so you can easily include or exclude commands (or
25 features) at compile time. This makes it easy to customize your embedded
26 systems. To create a working system, just add a kernel, a shell (such as ash),
27 and an editor (such as elvis-tiny or ae).
31 When you create a link to BusyBox for the function you wish to use, when BusyBox
32 is called using that link it will behave as if the command itself has been invoked.
39 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
42 You can also invoke BusyBox by issuing the command as an argument on the
43 command line. For example, entering
47 will also cause BusyBox to behave as 'ls'.
51 Most BusyBox commands support the B<--help> option to provide a
52 terse runtime description of their behavior.
56 Currently defined functions include:
58 basename, cat, chgrp, chmod, chown, chroot, clear, chvt, cp, date, dd, df,
59 dirname, dmesg, du, dutmp, echo, false, fbset, fdflush, find, free,
60 freeramdisk, deallocvt, fsck.minix, grep, gunzip, gzip, halt, head, hostid,
61 hostname, init, kill, killall, length, ln, loadacm, loadfont, loadkmap, logger,
62 logname, ls, lsmod, makedevs, math, mkdir, mkfifo, mkfs.minix, mknod, mkswap,
63 mktemp, mnc, more, mount, mt, mv, nslookup, ping, poweroff, printf, ps, pwd,
64 reboot, rm, rmdir, rmmod, sed, setkeycodes, sh, sfdisk, sleep, sort, sync,
65 syslogd, swapon, swapoff, tail, tar, test, tee, touch, tr, true, tty, umount,
66 uname, uniq, update, uptime, usleep, wc, whoami, yes, zcat, [
68 -------------------------------
74 Usage: basename FILE [SUFFIX]
76 Strips directory path and suffixes from FILE.
77 If specified, also removes any trailing SUFFIX.
81 $ basename /usr/local/bin/foo
83 $ basename /usr/local/bin/
85 $ basename /foo/bar.txt .txt
88 -------------------------------
94 Concatenates FILE(s) and prints them to the standard output.
101 -------------------------------
105 Usage: chgrp [OPTION]... GROUP FILE...
107 Change the group membership of each FILE to GROUP.
111 -R change files and directories recursively
116 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
117 $ chgrp root /tmp/foo
119 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
121 -------------------------------
125 Usage: chmod [B<-R>] MODE[,MODE]... FILE...
127 Changes file access permissions for the specified FILE(s) (or directories).
128 Each MODE is defined by combining the letters for WHO has access to the file,
129 an OPERATOR for selecting how the permissions should be changed, and a
130 PERISSION for FILE(s) (or directories).
132 WHO may be chosen from
134 u User who owns the file
135 g Users in the file's Group
136 o Other users not in the file's group
139 OPERATOR may be chosen from
142 - Remove a permission
143 = Assign a permission
145 PERMISSION may be chosen from
149 x Execute (or access for directories)
150 s Set user (or group) ID bit
151 t Stickey bit (for directories prevents removing files by non-owners)
153 Alternately, permissions can be set numerically where the first three
154 numbers are calculated by adding the octal values, such as
160 An optional fourth digit can also be used to specify
168 -R Change files and directories recursively.
173 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
176 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
179 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
181 -------------------------------
185 Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE...
187 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
191 -R Changes files and directories recursively
196 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
197 $ chown root /tmp/foo
199 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
200 $ chown root.root /tmp/foo
202 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
204 -------------------------------
208 Usage: chroot NEWROOT [COMMAND...]
210 Run COMMAND with root directory set to NEWROOT.
215 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox
216 $ mount /dev/hdc1 /mnt -t minix
219 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
221 -------------------------------
227 -------------------------------
233 Changes the foreground virtual terminal to /dev/ttyN
235 -------------------------------
239 Usage: cp [OPTION]... SOURCE DEST
241 or: cp [OPTION]... SOURCE... DIRECTORY
243 Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
249 -p Preserves file attributes if possable
250 -R Copies directories recursively
252 -------------------------------
256 Usage: date [OPTION]... [+FORMAT]
258 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
260 Displays the current time in the given FORMAT, or sets the system date.
264 -R Outputs RFC-822 compliant date string
265 -s Sets time described by STRING
266 -u Prints or sets Coordinated Universal Time
271 Wed Apr 12 18:52:41 MDT 2000
273 -------------------------------
277 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
279 Copy a file, converting and formatting according to options
281 if=FILE read from FILE instead of stdin
282 of=FILE write to FILE instead of stdout
283 bs=n read and write n bytes at a time
284 count=n copy only n input blocks
285 skip=n skip n input blocks
286 seek=n skip n output blocks
288 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
292 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
296 -------------------------------
300 Usage: df [filesystem ...]
302 Prints the filesystem space used and space available.
307 Filesystem 1k-blocks Used Available Use% Mounted on
308 /dev/sda3 8690864 8553540 137324 98% /
309 /dev/sda1 64216 36364 27852 57% /boot
311 Filesystem 1k-blocks Used Available Use% Mounted on
312 /dev/sda3 8690864 8553540 137324 98% /
314 -------------------------------
320 Strip non-directory suffix from file name
329 -------------------------------
333 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
335 Print or controls the kernel ring buffer.
337 -------------------------------
341 Usage: du [OPTION]... [FILE]...
343 Summarize disk space used for each FILE and/or directory.
344 Disk space is printed in units of 1k (i.e. 1024 bytes).
348 -l count sizes many times if hard linked
349 -s display only a total for each argument
355 12 ./kernel-patches/CVS
365 -------------------------------
371 Dump utmp file format (pipe delimited) from FILE
376 $ dutmp /var/run/utmp
377 8|7||si|||0|0|0|955637625|760097|0
378 2|0|~|~~|reboot||0|0|0|955637625|782235|0
379 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
380 8|125||l4|||0|0|0|955637629|998367|0
381 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
382 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
383 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
385 -------------------------------
389 Usage: echo [-neE] [ARG ...]
391 Prints the specified ARGs to stdout
395 -n suppress trailing newline
396 -e interpret backslash-escaped characters (i.e. \t=tab etc)
397 -E disable interpretation of backslash-escaped characters
401 $ echo "Erik is cool"
403 $ echo -e "Erik\nis\ncool"
407 $ echo "Erik\nis\ncool"
410 -------------------------------
414 Returns an exit code of FALSE (1)
422 -------------------------------
426 Usage: fbset [options] [mode]
428 Show and modify frame buffer device settings
449 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
450 geometry 1024 768 1024 768 16
451 timings 12714 128 32 16 4 128 4
453 rgba 5/11,6/5,5/0,0/0
456 -------------------------------
460 Usage: fdflush device
462 Force floppy disk drive to detect disk change
464 -------------------------------
468 Usage: find [PATH...] [EXPRESSION]
470 Search for files in a directory hierarchy. The default PATH is
471 the current directory; default EXPRESSION is '-print'
474 EXPRESSION may consist of:
476 -follow Dereference symbolic links.
477 -name PATTERN File name (leading directories removed) matches PATTERN.
478 -print print the full file name followed by a newline to stdout.
482 $ find / -name /etc/passwd
485 -------------------------------
491 Displays the amount of free and used system memory.
496 total used free shared buffers
497 Mem: 257628 248724 8904 59644 93124
498 Swap: 128516 8404 120112
499 Total: 386144 257128 129016
501 -------------------------------
505 Usage: freeramdisk DEVICE
507 Frees all memory used by the specified ramdisk.
511 $ freeramdisk /dev/ram2
513 -------------------------------
519 Deallocates unused virtual terminal /dev/ttyN
521 -------------------------------
525 Usage: fsck.minix [B<-larvsmf>] /dev/name
527 Performs a consistency check for MINIX filesystems.
531 -l Lists all filenames
532 -r Perform interactive repairs
533 -a Perform automatic repairs
535 -s Outputs super-block information
536 -m Activates MINIX-like "mode not cleared" warnings
537 -f Force file system check.
539 -------------------------------
543 Usage: grep [OPTIONS]... PATTERN [FILE]...
545 Search for PATTERN in each FILE or standard input.
549 -h suppress the prefixing filename on output
550 -i ignore case distinctions
551 -n print line number with output lines
552 -q be quiet. Returns 0 if result was found, 1 otherwise
553 -v select non-matching lines
555 This version of grep matches full regular expresions.
559 $ grep root /etc/passwd
560 root:x:0:0:root:/root:/bin/bash
561 $ grep ^[rR]oo. /etc/passwd
562 root:x:0:0:root:/root:/bin/bash
564 -------------------------------
568 Usage: gunzip [OPTION]... FILE
570 Uncompress FILE (or standard input if FILE is '-').
574 -c Write output to standard output
575 -t Test compressed file integrity
579 $ ls -la /tmp/BusyBox*
580 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
581 $ gunzip /tmp/BusyBox-0.43.tar.gz
582 $ ls -la /tmp/BusyBox*
583 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
585 -------------------------------
589 Usage: gzip [OPTION]... FILE
591 Compress FILE with maximum compression.
592 When FILE is '-', reads standard input. Implies B<-c>.
596 -c Write output to standard output instead of FILE.gz
600 $ ls -la /tmp/BusyBox*
601 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
602 $ gzip /tmp/BusyBox-0.43.tar
603 $ ls -la /tmp/BusyBox*
604 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
607 -------------------------------
613 This comand halts the system.
615 -------------------------------
619 Usage: head [OPTION] [FILE]...
621 Print first 10 lines of each FILE to standard output.
622 With more than one FILE, precede each with a header giving the
623 file name. With no FILE, or when FILE is -, read standard input.
627 -n NUM Print first NUM lines instead of first 10
631 $ head -n 2 /etc/passwd
632 root:x:0:0:root:/root:/bin/bash
633 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
635 -------------------------------
641 Prints out a unique 32-bit identifier for the current
642 machine. The 32-bit identifier is intended to be unique
643 among all UNIX systems in existence.
645 -------------------------------
649 Usage: hostname [OPTION] {hostname | B<-F> file}
651 Get or set the hostname or DNS domain name. If a hostname is given
652 (or a file with the B<-F> parameter), the host name will be set.
657 -i Addresses for the hostname
659 -F FILE Use the contents of FILE to specify the hostname
666 -------------------------------
672 Init is the parent of all processes.
674 This version of init is designed to be run only by the kernel.
676 BusyBox init doesn't support multiple runlevels. The runlevels field of
677 the /etc/inittab file is completely ignored by BusyBox init. If you want
678 runlevels, use sysvinit.
680 BusyBox init works just fine without an inittab. If no inittab is found,
681 it has the following default behavior:
683 ::sysinit:/etc/init.d/rcS
686 if it detects that /dev/console is _not_ a serial console, it will also run:
688 tty2::askfirst:/bin/sh
690 If you choose to use an /etc/inittab file, the inittab entry format is as follows:
692 <id>:<runlevels>:<action>:<process>
696 WARNING: This field has a non-traditional meaning for BusyBox init!
697 The id field is used by BusyBox init to specify the controlling tty for
698 the specified process to run on. The contents of this field are
699 appended to "/dev/" and used as-is. There is no need for this field to
700 be unique, although if it isn't you may have strange results. If this
701 field is left blank, it is completely ignored. Also note that if
702 BusyBox detects that a serial console is in use, then all entries
703 containing non-empty id fields will _not_ be run. BusyBox init does
704 nothing with utmp. We don't need no stinkin' utmp.
708 The runlevels field is completely ignored.
712 Valid actions include: sysinit, respawn, askfirst, wait,
713 once, and ctrlaltdel.
715 askfirst acts just like respawn, but before running the specified
716 process it displays the line "Please press Enter to activate this
717 console." and then waits for the user to press enter before starting
718 the specified process.
720 Unrecognised actions (like initdefault) will cause init to emit
721 an error message, and then go along with its business.
725 Specifies the process to be executed and it's command line.
728 Example /etc/inittab file:
730 # This is run first except when booting in single-user mode.
732 ::sysinit:/etc/init.d/rcS
734 # /bin/sh invocations on selected ttys
736 # Start an "askfirst" shell on the console (whatever that may be)
738 # Start an "askfirst" shell on /dev/tty2
739 tty2::askfirst:/bin/sh
741 # /sbin/getty invocations for selected ttys
743 tty4::respawn:/sbin/getty 38400 tty4
744 tty5::respawn:/sbin/getty 38400 tty5
747 # Example of how to put a getty on a serial line (for a terminal)
749 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
750 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
752 # Example how to put a getty on a modem line.
753 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
755 # Stuff to do before rebooting
756 ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
757 ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
759 -------------------------------
763 Usage: kill [B<-signal>] process-id [process-id ...]
765 Send a signal (default is SIGTERM) to the specified process(es).
769 -l List all signal names and numbers.
774 252 root root S [apache]
775 263 www-data www-data S [apache]
776 264 www-data www-data S [apache]
777 265 www-data www-data S [apache]
778 266 www-data www-data S [apache]
779 267 www-data www-data S [apache]
782 -------------------------------
786 Usage: killall [B<-signal>] process-name [process-name ...]
788 Send a signal (default is SIGTERM) to the specified process(es).
792 -l List all signal names and numbers.
798 -------------------------------
804 Prints out the length of the specified STRING.
811 -------------------------------
815 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
817 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
821 -s make symbolic links instead of hard links
822 -f remove existing destination files
826 $ ln -s BusyBox /tmp/ls
828 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
830 -------------------------------
836 Loads an acm from standard input.
840 $ loadacm < /etc/i18n/acmname
842 -------------------------------
848 Loads a console font from standard input.
852 $ loadfont < /etc/i18n/fontname
854 -------------------------------
860 Loads a binary keyboard translation table from standard input.
864 $ loadkmap < /etc/i18n/lang-keymap
866 -------------------------------
870 Usage: logger [OPTION]... [MESSAGE]
872 Write MESSAGE to the system log. If MESSAGE is '-', log stdin.
876 -s Log to stderr as well as the system log.
877 -t Log using the specified tag (defaults to user name).
878 -p Enter the message with the specified priority.
879 This may be numerical or a ``facility.level'' pair.
885 -------------------------------
891 Print the name of the current user.
898 -------------------------------
902 Usage: ls [B<-1acdelnpuxACF>] [filenames...]
906 -a do not hide entries starting with .
907 -c with -l: show ctime (the time of last
908 modification of file status information)
909 -d list directory entries instead of contents
910 -e list both full date and full time
911 -l use a long listing format
912 -n list numeric UIDs and GIDs instead of names
913 -p append indicator (one of /=@|) to entries
914 -u with -l: show access time (the time of last
916 -x list entries by lines instead of by columns
917 -A do not list implied . and ..
918 -C list entries by columns
919 -F append indicator (one of */=@|) to entries
921 -------------------------------
927 Shows a list of all currently loaded kernel modules.
929 -------------------------------
933 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
935 Creates a range of block or character special files
939 b: Make a block (buffered) device.
940 c or u: Make a character (un-buffered) device.
941 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
943 FIRST specifies the number appended to NAME to create the first device.
944 LAST specifies the number of the last item that should be created.
945 If 's' is the last argument, the base device is created as well.
949 $ makedevs /dev/ttyS c 4 66 2 63
950 [creates ttyS2-ttyS63]
951 $ makedevs /dev/hda b 3 0 0 8 s
952 [creates hda,hda1-hda8]
954 -------------------------------
958 Usage: math expression ...
960 This is a Tiny RPN calculator that understands the
961 following operations: +, -, /, *, and, or, not, eor.
967 $ math 8 8 \* 2 2 + /
974 -------------------------------
978 Usage: mkdir [OPTION] DIRECTORY...
980 Create the DIRECTORY(ies), if they do not already exist
984 -m set permission mode (as in chmod), not rwxrwxrwx - umask
985 -p no error if dir exists, make parent directories as needed
991 /tmp/foo: File exists
992 $ mkdir /tmp/foo/bar/baz
993 /tmp/foo/bar/baz: No such file or directory
994 $ mkdir -p /tmp/foo/bar/baz
996 -------------------------------
1000 Usage: mkfifo [OPTIONS] name
1002 Creates a named pipe (identical to 'mknod name p')
1006 -m create the pipe using the specified mode (default a=rw)
1008 -------------------------------
1012 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
1014 Make a MINIX filesystem.
1018 -c Check the device for bad blocks
1019 -n [14|30] Specify the maximum length of filenames
1020 -i Specify the number of inodes for the filesystem
1021 -l FILENAME Read the bad blocks list from FILENAME
1022 -v Make a Minix version 2 filesystem
1024 -------------------------------
1028 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
1030 Create a special file (block, character, or pipe).
1034 -m create the special file using the specified mode (default a=rw)
1037 b: Make a block (buffered) device.
1038 c or u: Make a character (un-buffered) device.
1039 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1043 $ mknod /dev/fd0 b 2 0
1044 $ mknod -m 644 /tmp/pipe p
1046 -------------------------------
1050 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1052 Prepare a disk partition to be used as a swap partition.
1056 -c Check for read-ability.
1057 -v0 Make version 0 swap [max 128 Megs].
1058 -v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
1059 block-count Number of block to use (default is entire partition).
1061 -------------------------------
1065 Usage: mktemp [B<-q>] TEMPLATE
1067 Creates a temporary file with its name based on TEMPLATE.
1068 TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).
1072 $ mktemp /tmp/temp.XXXXXX
1074 $ ls -la /tmp/temp.mWiLjM
1075 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
1077 -------------------------------
1081 Usage: mnc [IP] [port]
1083 mini-netcat opens a pipe to IP:port
1087 $ mnc foobar.somedomain.com 25
1088 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1090 214-Commands supported:
1091 214- HELO EHLO MAIL RCPT DATA AUTH
1092 214 NOOP QUIT RSET HELP
1094 221 foobar closing connection
1096 -------------------------------
1100 Usage: more [file ...]
1102 More is a filter for paging through text one screenful at a time.
1108 -------------------------------
1112 Usage: mount [flags]
1113 mount [flags] device directory [B<-o> options,more-options]
1117 -a: Mount all file systems in fstab.
1118 -o option: One of many filesystem options, listed below.
1119 -r: Mount the filesystem read-only.
1120 -t fs-type: Specify the filesystem type.
1121 -w: Mount for reading and writing (default).
1123 Options for use with the "B<-o>" flag:
1125 async/sync: Writes are asynchronous / synchronous.
1126 atime/noatime: Enable / disable updates to inode access times.
1127 dev/nodev: Allow use of special device files / disallow them.
1128 exec/noexec: Allow use of executable files / disallow them.
1129 loop: Mounts a file via loop device.
1130 suid/nosuid: Allow set-user-id-root programs / disallow them.
1131 remount: Re-mount a currently-mounted filesystem, changing its flags.
1132 ro/rw: Mount for read-only / read-write.
1133 There are EVEN MORE flags that are specific to each filesystem.
1134 You'll have to see the written documentation for those.
1139 /dev/hda3 on / type minix (rw)
1140 proc on /proc type proc (rw)
1141 devpts on /dev/pts type devpts (rw)
1142 $ mount /dev/fd0 /mnt -t msdos -o ro
1143 $ mount /tmp/diskimage /opt -t ext2 -o loop
1145 -------------------------------
1149 Usage: mt [B<-f> device] opcode value
1151 Control magnetic tape drive operation
1153 -------------------------------
1157 Usage: mv SOURCE DEST
1159 or: mv SOURCE... DIRECTORY
1161 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1165 $ mv /tmp/foo /bin/bar
1167 -------------------------------
1171 Usage: nslookup [HOST]
1173 Queries the nameserver for the IP address of the given HOST
1177 $ nslookup localhost
1184 -------------------------------
1188 Usage: ping [OPTION]... host
1190 Send ICMP ECHO_REQUEST packets to network hosts.
1194 -c COUNT Send only COUNT pings.
1195 -q Quiet mode, only displays output at start
1200 PING slag (127.0.0.1): 56 data bytes
1201 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1203 --- debian ping statistics ---
1204 1 packets transmitted, 1 packets received, 0% packet loss
1205 round-trip min/avg/max = 20.1/20.1/20.1 ms
1207 -------------------------------
1211 Shuts down the system, and requests that the kernel turn off power upon halting.
1213 -------------------------------
1217 Usage: printf format [argument...]
1219 Formats and prints the given data in a manner similar to the C printf command.
1223 $ printf "Val=%d\n" 5
1226 -------------------------------
1232 Report process status
1234 This version of ps accepts no options.
1239 PID Uid Gid State Command
1241 2 root root S [kflushd]
1242 3 root root S [kupdate]
1243 4 root root S [kpiod]
1244 5 root root S [kswapd]
1245 742 andersen andersen S [bash]
1246 743 andersen andersen S -bash
1247 745 root root S [getty]
1248 2990 andersen andersen R ps
1250 -------------------------------
1254 Prints the full filename of the current working directory.
1261 -------------------------------
1265 Instructs the kernel to reboot the system.
1267 -------------------------------
1271 Usage: rm [OPTION]... FILE...
1273 Remove (unlink) the FILE(s).
1277 -f remove existing destinations, never prompt
1278 -r or -R remove the contents of directories recursively
1284 -------------------------------
1288 Usage: rmdir [OPTION]... DIRECTORY...
1290 Remove the DIRECTORY(ies), if they are empty.
1296 -------------------------------
1300 Usage: rmmod [OPTION]... [MODULE]...
1302 Unloads the specified kernel modules from the kernel.
1306 -a Try to remove all unused kernel modules.
1312 -------------------------------
1316 Usage: sed [B<-n>] B<-e> script [file...]
1318 Allowed sed scripts come in the following form:
1322 where address ADDR can be:
1323 NUMBER Match specified line number
1325 /REGEXP/ Match specified regexp
1326 (! inverts the meaning of the match)
1329 s/regexp/replacement/[igp]
1330 which attempt to match regexp against the pattern space
1331 and if successful replaces the matched portion with replacement.
1334 which appends TEXT after the pattern space
1338 -e add the script to the commands to be executed
1339 -n suppress automatic printing of pattern space
1341 This version of sed matches full regular expresions.
1345 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1348 -------------------------------
1352 Usage: setkeycodes SCANCODE KEYCODE ...
1354 Set entries into the kernel's scancode-to-keycode map,
1355 allowing unusual keyboards to generate usable keycodes.
1357 SCANCODE may be either xx or e0xx (hexadecimal),
1358 and KEYCODE is given in decimal
1362 # setkeycodes e030 127
1364 -------------------------------
1370 lash -- the BusyBox LAme SHell (command interpreter)
1372 This command does not yet have proper documentation.
1374 Use lash just as you would use any other shell. It properly handles pipes,
1375 redirects, job control, can be used as the shell for scripts (#!/bin/sh), and
1376 has a sufficient set of builtins to do what is needed. It does not (yet)
1377 support Bourne Shell syntax. If you need things like "if-then-else", "while",
1378 and such, use ash or bash. If you just need a very simple and extremely small
1379 shell, this will do the job.
1381 -------------------------------
1385 Usage: sfdisk [options] device ...
1387 device: something like /dev/hda or /dev/sda
1391 -s [or --show-size]: list size of a partition
1392 -c [or --id]: print or change partition Id
1393 -l [or --list]: list partitions of each device
1394 -d [or --dump]: idem, but in a format suitable for later input
1395 -i [or --increment]: number cylinders etc. from 1 instead of from 0
1396 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
1397 -T [or --list-types]:list the known partition types
1398 -D [or --DOS]: for DOS-compatibility: waste a little space
1399 -R [or --re-read]: make kernel reread partition table
1400 -N# : change only the partition with number #
1401 -n : do not actually write to disk
1402 -O file : save the sectors that will be overwritten to file
1403 -I file : restore these sectors again
1404 -v [or --version]: print version
1405 -? [or --help]: print this message
1409 -g [or --show-geometry]: print the kernel's idea of the geometry
1410 -x [or --show-extended]: also list extended partitions on output
1412 or expect descriptors for them on input
1413 -L [or --Linux]: do not complain about things irrelevant for Linux
1414 -q [or --quiet]: suppress warning messages
1415 You can override the detected geometry using:
1416 -C# [or --cylinders #]:set the number of cylinders to use
1417 -H# [or --heads #]: set the number of heads to use
1418 -S# [or --sectors #]: set the number of sectors to use
1420 You can disable all consistency checking with:
1422 -f [or --force]: do what I say, even if it is stupid
1424 -------------------------------
1430 Pause for N seconds.
1435 [2 second delay results]
1437 -------------------------------
1441 Usage: sort [B<-n>] [B<-r>] [FILE]...
1443 Sorts lines of text in the specified files
1447 $ echo -e "e\nf\nb\nd\nc\na" | sort
1455 -------------------------------
1461 Write all buffered filesystem blocks to disk.
1463 -------------------------------
1467 Usage: syslogd [OPTION]...
1469 Linux system and kernel (provides klogd) logging utility.
1470 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1474 -m Change the mark timestamp interval. default=20min. 0=off
1475 -n Do not fork into the background (for when run by init)
1476 -K Do not start up the klogd process (by default syslogd spawns klogd).
1477 -O Specify an alternate log file. default=/var/log/messages
1479 -------------------------------
1483 Usage: swapon [OPTION] [device]
1485 Start swapping virtual memory pages on the given device.
1489 -a Start swapping on all swap devices
1491 -------------------------------
1495 Usage: swapoff [OPTION] [device]
1497 Stop swapping virtual memory pages on the given device.
1501 -a Stop swapping on all swap devices
1503 -------------------------------
1507 Usage: tail [OPTION] [FILE]...
1509 Print last 10 lines of each FILE to standard output.
1510 With more than one FILE, precede each with a header giving the
1511 file name. With no FILE, or when FILE is -, read standard input.
1515 -n NUM Print last NUM lines instead of first 10
1516 -f Output data as the file grows. This version
1517 of 'tail -f' supports only one file at a time.
1521 $ tail -n 1 /etc/resolv.conf
1524 -------------------------------
1528 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1530 Create, extract, or list files from a tar file. Note that
1531 this version of tar treats hard links as separate files.
1533 Main operation mode:
1541 f name of tarfile or "-" for stdin
1543 --exclude file to exclude
1547 v verbosely list files processed
1551 $ zcat /tmp/tarball.tar.gz | tar -xf -
1552 $ tar -cf /tmp/tarball.tar /usr/local
1554 -------------------------------
1558 Usage: test EXPRESSION
1561 Checks file types and compares values returning an exit
1562 code determined by the value of EXPRESSION.
1579 -------------------------------
1583 Usage: tee [OPTION]... [FILE]...
1585 Copy standard input to each FILE, and also to standard output.
1589 -a append to the given FILEs, do not overwrite
1593 $ echo "Hello" | tee /tmp/foo
1597 -------------------------------
1601 Usage: touch [B<-c>] file [file ...]
1603 Update the last-modified date on (or create) the selected file[s].
1608 /bin/ls: /tmp/foo: No such file or directory
1611 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
1613 -------------------------------
1617 Usage: tr [-cds] STRING1 [STRING2]
1619 Translate, squeeze, and/or delete characters from
1620 standard input, writing to standard output.
1624 -c take complement of STRING1
1625 -d delete input characters coded STRING1
1626 -s squeeze multiple output characters of STRING2 into one character
1630 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1633 -------------------------------
1637 Returns an exit code of TRUE (0)
1645 -------------------------------
1651 Print the file name of the terminal connected to standard input.
1655 -s print nothing, only return an exit status
1662 -------------------------------
1666 Usage: umount [flags] filesystem|directory
1670 -a: Unmount all file systems
1671 -r: Try to remount devices as read-only if mount is busy
1672 -f: Force filesystem umount (i.e. unreachable NFS server)
1673 -l: Do not free loop device (if a loop device has been used)
1679 -------------------------------
1683 Usage: uname [OPTION]...
1685 Print certain system information. With no OPTION, same as B<-s>.
1689 -a print all information
1690 -m the machine (hardware) type
1691 -n print the machine's network node hostname
1692 -r print the operating system release
1693 -s print the operating system name
1694 -p print the host processor type
1695 -v print the operating system version
1700 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
1702 -------------------------------
1706 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
1708 Discard all but one of successive identical lines from INPUT
1709 (or standard input), writing to OUTPUT (or standard output).
1713 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
1718 -------------------------------
1722 Usage: update [options]
1724 Periodically flushes filesystem buffers.
1728 -S force use of sync(2) instead of flushing
1729 -s SECS call sync this often (default 30)
1730 -f SECS flush some buffers this often (default 5)
1732 -------------------------------
1738 Tells how long the system has been running since boot.
1743 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
1745 -------------------------------
1751 Pauses for N microseconds.
1756 [pauses for 1 second]
1758 -------------------------------
1762 Usage: wc [OPTION]... [FILE]...
1764 Print line, word, and byte counts for each FILE, and a total line if
1765 more than one FILE is specified. With no FILE, read standard input.
1769 -c print the byte counts
1770 -l print the newline counts
1771 -L print the length of the longest line
1772 -w print the word counts
1777 31 46 1365 /etc/passwd
1779 -------------------------------
1785 Prints the user name associated with the current effective user id.
1792 -------------------------------
1796 Usage: yes [OPTION]... [STRING]...
1798 Repeatedly outputs a line with all specified STRING(s), or `y'.
1800 -------------------------------
1804 This is essentially an alias for invoking "gunzip B<-c>", where
1805 it decompresses the file inquestion and send the output to stdout.
1807 -------------------------------
1813 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C
1814 library for the local environment, and to configure how it reads system data,
1815 such as passwords and group information. BusyBox has made it Policy that it
1816 will never use NSS, and will never use and libc calls that make use of NSS.
1817 This allows you to run an embedded system without the need for installing an
1818 /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed.
1820 If you are using a system that is using a remote LDAP server for authentication
1821 via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the
1822 BusyBox source. Chances are though, that if you have enough space to install
1823 of that stuff on your system, then you probably want the full GNU utilities.
1827 textutils(1), shellutils(1), etc...
1831 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
1835 The following people have contributed code to BusyBox whether
1836 they know it or not.
1838 Erik Andersen <andersee@debian.org>
1842 John Beppu <beppu@lineo.com>
1846 Brian Candler <B.Candler@pobox.com>
1850 Randolph Chung <tausq@debian.org>
1854 Dave Cinege <dcinege@psychosis.com>
1858 Karl M. Hegbloom <karlheg@debian.org>
1862 John Lombardo <john@deltanet.com>
1866 Bruce Perens <bruce@perens.com>
1870 Linus Torvalds <torvalds@transmeta.com>
1874 Charles P. Wright <cpwright@villagenet.com>
1878 Enrique Zanardi <ezanardi@ull.es>
1884 # $Id: busybox.pod,v 1.30 2000/05/12 19:41:47 erik Exp $