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, cut, 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, id, init, kill, killall, length, ln, loadacm, loadfont, loadkmap,
62 logger, logname, ls, lsmod, makedevs, math, mkdir, mkfifo, mkfs.minix, mknod,
63 mkswap, mktemp, nc, more, mount, mt, mv, nslookup, ping, poweroff, printf, ps,
64 pwd, 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: cut [OPTION]... [FILE]...
258 Prints selected fields from each input FILE to standard output.
262 -b LIST Output only bytes from LIST
263 -c LIST Output only characters from LIST
264 -d DELIM Use DELIM instead of tab as the field delimiter
265 -f N Print only these fields
270 $ echo "Hello world" | cut -f 1 -d ' '
272 $ echo "Hello world" | cut -f 2 -d ' '
276 -------------------------------
280 Usage: date [OPTION]... [+FORMAT]
282 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
284 Displays the current time in the given FORMAT, or sets the system date.
288 -R Outputs RFC-822 compliant date string
289 -s Sets time described by STRING
290 -u Prints or sets Coordinated Universal Time
295 Wed Apr 12 18:52:41 MDT 2000
297 -------------------------------
301 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
303 Copy a file, converting and formatting according to options
305 if=FILE read from FILE instead of stdin
306 of=FILE write to FILE instead of stdout
307 bs=n read and write n bytes at a time
308 count=n copy only n input blocks
309 skip=n skip n input blocks
310 seek=n skip n output blocks
312 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
316 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
320 -------------------------------
324 Usage: df [filesystem ...]
326 Prints the filesystem space used and space available.
331 Filesystem 1k-blocks Used Available Use% Mounted on
332 /dev/sda3 8690864 8553540 137324 98% /
333 /dev/sda1 64216 36364 27852 57% /boot
335 Filesystem 1k-blocks Used Available Use% Mounted on
336 /dev/sda3 8690864 8553540 137324 98% /
338 -------------------------------
344 Strip non-directory suffix from file name
353 -------------------------------
357 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
359 Print or controls the kernel ring buffer.
361 -------------------------------
365 Usage: du [OPTION]... [FILE]...
367 Summarize disk space used for each FILE and/or directory.
368 Disk space is printed in units of 1k (i.e. 1024 bytes).
372 -l count sizes many times if hard linked
373 -s display only a total for each argument
379 12 ./kernel-patches/CVS
389 -------------------------------
395 Dump utmp file format (pipe delimited) from FILE
400 $ dutmp /var/run/utmp
401 8|7||si|||0|0|0|955637625|760097|0
402 2|0|~|~~|reboot||0|0|0|955637625|782235|0
403 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
404 8|125||l4|||0|0|0|955637629|998367|0
405 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
406 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
407 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
409 -------------------------------
413 Usage: echo [-neE] [ARG ...]
415 Prints the specified ARGs to stdout
419 -n suppress trailing newline
420 -e interpret backslash-escaped characters (i.e. \t=tab etc)
421 -E disable interpretation of backslash-escaped characters
425 $ echo "Erik is cool"
427 $ echo -e "Erik\nis\ncool"
431 $ echo "Erik\nis\ncool"
434 -------------------------------
438 Returns an exit code of FALSE (1)
446 -------------------------------
450 Usage: fbset [options] [mode]
452 Show and modify frame buffer device settings
473 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
474 geometry 1024 768 1024 768 16
475 timings 12714 128 32 16 4 128 4
477 rgba 5/11,6/5,5/0,0/0
480 -------------------------------
484 Usage: fdflush device
486 Force floppy disk drive to detect disk change
488 -------------------------------
492 Usage: find [PATH...] [EXPRESSION]
494 Search for files in a directory hierarchy. The default PATH is
495 the current directory; default EXPRESSION is '-print'
498 EXPRESSION may consist of:
500 -follow Dereference symbolic links.
501 -name PATTERN File name (leading directories removed) matches PATTERN.
502 -print print the full file name followed by a newline to stdout.
506 $ find / -name /etc/passwd
509 -------------------------------
515 Displays the amount of free and used system memory.
520 total used free shared buffers
521 Mem: 257628 248724 8904 59644 93124
522 Swap: 128516 8404 120112
523 Total: 386144 257128 129016
525 -------------------------------
529 Usage: freeramdisk DEVICE
531 Frees all memory used by the specified ramdisk.
535 $ freeramdisk /dev/ram2
537 -------------------------------
543 Deallocates unused virtual terminal /dev/ttyN
545 -------------------------------
549 Usage: fsck.minix [B<-larvsmf>] /dev/name
551 Performs a consistency check for MINIX filesystems.
555 -l Lists all filenames
556 -r Perform interactive repairs
557 -a Perform automatic repairs
559 -s Outputs super-block information
560 -m Activates MINIX-like "mode not cleared" warnings
561 -f Force file system check.
563 -------------------------------
567 Usage: grep [OPTIONS]... PATTERN [FILE]...
569 Search for PATTERN in each FILE or standard input.
573 -h suppress the prefixing filename on output
574 -i ignore case distinctions
575 -n print line number with output lines
576 -q be quiet. Returns 0 if result was found, 1 otherwise
577 -v select non-matching lines
579 This version of grep matches full regular expresions.
583 $ grep root /etc/passwd
584 root:x:0:0:root:/root:/bin/bash
585 $ grep ^[rR]oo. /etc/passwd
586 root:x:0:0:root:/root:/bin/bash
588 -------------------------------
592 Usage: gunzip [OPTION]... FILE
594 Uncompress FILE (or standard input if FILE is '-').
598 -c Write output to standard output
599 -t Test compressed file integrity
603 $ ls -la /tmp/BusyBox*
604 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
605 $ gunzip /tmp/BusyBox-0.43.tar.gz
606 $ ls -la /tmp/BusyBox*
607 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
609 -------------------------------
613 Usage: gzip [OPTION]... FILE
615 Compress FILE with maximum compression.
616 When FILE is '-', reads standard input. Implies B<-c>.
620 -c Write output to standard output instead of FILE.gz
624 $ ls -la /tmp/BusyBox*
625 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
626 $ gzip /tmp/BusyBox-0.43.tar
627 $ ls -la /tmp/BusyBox*
628 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
631 -------------------------------
637 This comand halts the system.
639 -------------------------------
643 Usage: head [OPTION] [FILE]...
645 Print first 10 lines of each FILE to standard output.
646 With more than one FILE, precede each with a header giving the
647 file name. With no FILE, or when FILE is -, read standard input.
651 -n NUM Print first NUM lines instead of first 10
655 $ head -n 2 /etc/passwd
656 root:x:0:0:root:/root:/bin/bash
657 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
659 -------------------------------
665 Prints out a unique 32-bit identifier for the current
666 machine. The 32-bit identifier is intended to be unique
667 among all UNIX systems in existence.
669 -------------------------------
673 Usage: hostname [OPTION] {hostname | B<-F> file}
675 Get or set the hostname or DNS domain name. If a hostname is given
676 (or a file with the B<-F> parameter), the host name will be set.
681 -i Addresses for the hostname
683 -F FILE Use the contents of FILE to specify the hostname
690 -------------------------------
694 Print information for USERNAME or the current user
698 -g prints only the group ID
699 -u prints only the user ID
700 -r prints the real user ID instead of the effective ID (with -ug)
705 uid=1000(andersen) gid=1000(andersen)
707 -------------------------------
713 Init is the parent of all processes.
715 This version of init is designed to be run only by the kernel.
717 BusyBox init doesn't support multiple runlevels. The runlevels field of
718 the /etc/inittab file is completely ignored by BusyBox init. If you want
719 runlevels, use sysvinit.
721 BusyBox init works just fine without an inittab. If no inittab is found,
722 it has the following default behavior:
724 ::sysinit:/etc/init.d/rcS
727 if it detects that /dev/console is _not_ a serial console, it will also run:
729 tty2::askfirst:/bin/sh
731 If you choose to use an /etc/inittab file, the inittab entry format is as follows:
733 <id>:<runlevels>:<action>:<process>
737 WARNING: This field has a non-traditional meaning for BusyBox init!
738 The id field is used by BusyBox init to specify the controlling tty for
739 the specified process to run on. The contents of this field are
740 appended to "/dev/" and used as-is. There is no need for this field to
741 be unique, although if it isn't you may have strange results. If this
742 field is left blank, it is completely ignored. Also note that if
743 BusyBox detects that a serial console is in use, then all entries
744 containing non-empty id fields will _not_ be run. BusyBox init does
745 nothing with utmp. We don't need no stinkin' utmp.
749 The runlevels field is completely ignored.
753 Valid actions include: sysinit, respawn, askfirst, wait,
754 once, and ctrlaltdel.
756 askfirst acts just like respawn, but before running the specified
757 process it displays the line "Please press Enter to activate this
758 console." and then waits for the user to press enter before starting
759 the specified process.
761 Unrecognised actions (like initdefault) will cause init to emit
762 an error message, and then go along with its business.
766 Specifies the process to be executed and it's command line.
769 Example /etc/inittab file:
771 # This is run first except when booting in single-user mode.
773 ::sysinit:/etc/init.d/rcS
775 # /bin/sh invocations on selected ttys
777 # Start an "askfirst" shell on the console (whatever that may be)
779 # Start an "askfirst" shell on /dev/tty2
780 tty2::askfirst:/bin/sh
782 # /sbin/getty invocations for selected ttys
784 tty4::respawn:/sbin/getty 38400 tty4
785 tty5::respawn:/sbin/getty 38400 tty5
788 # Example of how to put a getty on a serial line (for a terminal)
790 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
791 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
793 # Example how to put a getty on a modem line.
794 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
796 # Stuff to do before rebooting
797 ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
798 ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
800 -------------------------------
804 Usage: kill [B<-signal>] process-id [process-id ...]
806 Send a signal (default is SIGTERM) to the specified process(es).
810 -l List all signal names and numbers.
815 252 root root S [apache]
816 263 www-data www-data S [apache]
817 264 www-data www-data S [apache]
818 265 www-data www-data S [apache]
819 266 www-data www-data S [apache]
820 267 www-data www-data S [apache]
823 -------------------------------
827 Usage: killall [B<-signal>] process-name [process-name ...]
829 Send a signal (default is SIGTERM) to the specified process(es).
833 -l List all signal names and numbers.
839 -------------------------------
845 Prints out the length of the specified STRING.
852 -------------------------------
856 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
858 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
862 -s make symbolic links instead of hard links
863 -f remove existing destination files
867 $ ln -s BusyBox /tmp/ls
869 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
871 -------------------------------
877 Loads an acm from standard input.
881 $ loadacm < /etc/i18n/acmname
883 -------------------------------
889 Loads a console font from standard input.
893 $ loadfont < /etc/i18n/fontname
895 -------------------------------
901 Loads a binary keyboard translation table from standard input.
905 $ loadkmap < /etc/i18n/lang-keymap
907 -------------------------------
911 Usage: logger [OPTION]... [MESSAGE]
913 Write MESSAGE to the system log. If MESSAGE is '-', log stdin.
917 -s Log to stderr as well as the system log.
918 -t Log using the specified tag (defaults to user name).
919 -p Enter the message with the specified priority.
920 This may be numerical or a ``facility.level'' pair.
926 -------------------------------
932 Print the name of the current user.
939 -------------------------------
943 Usage: ls [B<-1acdelnpuxACF>] [filenames...]
947 -a do not hide entries starting with .
948 -c with -l: show ctime (the time of last
949 modification of file status information)
950 -d list directory entries instead of contents
951 -e list both full date and full time
952 -l use a long listing format
953 -n list numeric UIDs and GIDs instead of names
954 -p append indicator (one of /=@|) to entries
955 -u with -l: show access time (the time of last
957 -x list entries by lines instead of by columns
958 -A do not list implied . and ..
959 -C list entries by columns
960 -F append indicator (one of */=@|) to entries
962 -------------------------------
968 Shows a list of all currently loaded kernel modules.
970 -------------------------------
974 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
976 Creates a range of block or character special files
980 b: Make a block (buffered) device.
981 c or u: Make a character (un-buffered) device.
982 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
984 FIRST specifies the number appended to NAME to create the first device.
985 LAST specifies the number of the last item that should be created.
986 If 's' is the last argument, the base device is created as well.
990 $ makedevs /dev/ttyS c 4 66 2 63
991 [creates ttyS2-ttyS63]
992 $ makedevs /dev/hda b 3 0 0 8 s
993 [creates hda,hda1-hda8]
995 -------------------------------
999 Usage: math expression ...
1001 This is a Tiny RPN calculator that understands the
1002 following operations: +, -, /, *, and, or, not, eor.
1008 $ math 8 8 \* 2 2 + /
1015 -------------------------------
1019 Usage: mkdir [OPTION] DIRECTORY...
1021 Create the DIRECTORY(ies), if they do not already exist
1025 -m set permission mode (as in chmod), not rwxrwxrwx - umask
1026 -p no error if dir exists, make parent directories as needed
1032 /tmp/foo: File exists
1033 $ mkdir /tmp/foo/bar/baz
1034 /tmp/foo/bar/baz: No such file or directory
1035 $ mkdir -p /tmp/foo/bar/baz
1037 -------------------------------
1041 Usage: mkfifo [OPTIONS] name
1043 Creates a named pipe (identical to 'mknod name p')
1047 -m create the pipe using the specified mode (default a=rw)
1049 -------------------------------
1053 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
1055 Make a MINIX filesystem.
1059 -c Check the device for bad blocks
1060 -n [14|30] Specify the maximum length of filenames
1061 -i Specify the number of inodes for the filesystem
1062 -l FILENAME Read the bad blocks list from FILENAME
1063 -v Make a Minix version 2 filesystem
1065 -------------------------------
1069 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
1071 Create a special file (block, character, or pipe).
1075 -m create the special file using the specified mode (default a=rw)
1078 b: Make a block (buffered) device.
1079 c or u: Make a character (un-buffered) device.
1080 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1084 $ mknod /dev/fd0 b 2 0
1085 $ mknod -m 644 /tmp/pipe p
1087 -------------------------------
1091 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1093 Prepare a disk partition to be used as a swap partition.
1097 -c Check for read-ability.
1098 -v0 Make version 0 swap [max 128 Megs].
1099 -v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
1100 block-count Number of block to use (default is entire partition).
1102 -------------------------------
1106 Usage: mktemp [B<-q>] TEMPLATE
1108 Creates a temporary file with its name based on TEMPLATE.
1109 TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).
1113 $ mktemp /tmp/temp.XXXXXX
1115 $ ls -la /tmp/temp.mWiLjM
1116 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
1118 -------------------------------
1122 Usage: nc [IP] [port]
1124 Netcat opens a pipe to IP:port
1128 $ nc foobar.somedomain.com 25
1129 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1131 214-Commands supported:
1132 214- HELO EHLO MAIL RCPT DATA AUTH
1133 214 NOOP QUIT RSET HELP
1135 221 foobar closing connection
1137 -------------------------------
1141 Usage: more [file ...]
1143 More is a filter for paging through text one screenful at a time.
1149 -------------------------------
1153 Usage: mount [flags]
1154 mount [flags] device directory [B<-o> options,more-options]
1158 -a: Mount all file systems in fstab.
1159 -o option: One of many filesystem options, listed below.
1160 -r: Mount the filesystem read-only.
1161 -t fs-type: Specify the filesystem type.
1162 -w: Mount for reading and writing (default).
1164 Options for use with the "B<-o>" flag:
1166 async/sync: Writes are asynchronous / synchronous.
1167 atime/noatime: Enable / disable updates to inode access times.
1168 dev/nodev: Allow use of special device files / disallow them.
1169 exec/noexec: Allow use of executable files / disallow them.
1170 loop: Mounts a file via loop device.
1171 suid/nosuid: Allow set-user-id-root programs / disallow them.
1172 remount: Re-mount a currently-mounted filesystem, changing its flags.
1173 ro/rw: Mount for read-only / read-write.
1174 There are EVEN MORE flags that are specific to each filesystem.
1175 You'll have to see the written documentation for those.
1180 /dev/hda3 on / type minix (rw)
1181 proc on /proc type proc (rw)
1182 devpts on /dev/pts type devpts (rw)
1183 $ mount /dev/fd0 /mnt -t msdos -o ro
1184 $ mount /tmp/diskimage /opt -t ext2 -o loop
1186 -------------------------------
1190 Usage: mt [B<-f> device] opcode value
1192 Control magnetic tape drive operation
1194 -------------------------------
1198 Usage: mv SOURCE DEST
1200 or: mv SOURCE... DIRECTORY
1202 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1206 $ mv /tmp/foo /bin/bar
1208 -------------------------------
1212 Usage: nslookup [HOST]
1214 Queries the nameserver for the IP address of the given HOST
1218 $ nslookup localhost
1225 -------------------------------
1229 Usage: ping [OPTION]... host
1231 Send ICMP ECHO_REQUEST packets to network hosts.
1235 -c COUNT Send only COUNT pings.
1236 -q Quiet mode, only displays output at start
1241 PING slag (127.0.0.1): 56 data bytes
1242 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1244 --- debian ping statistics ---
1245 1 packets transmitted, 1 packets received, 0% packet loss
1246 round-trip min/avg/max = 20.1/20.1/20.1 ms
1248 -------------------------------
1252 Shuts down the system, and requests that the kernel turn off power upon halting.
1254 -------------------------------
1258 Usage: printf format [argument...]
1260 Formats and prints the given data in a manner similar to the C printf command.
1264 $ printf "Val=%d\n" 5
1267 -------------------------------
1273 Report process status
1275 This version of ps accepts no options.
1280 PID Uid Gid State Command
1282 2 root root S [kflushd]
1283 3 root root S [kupdate]
1284 4 root root S [kpiod]
1285 5 root root S [kswapd]
1286 742 andersen andersen S [bash]
1287 743 andersen andersen S -bash
1288 745 root root S [getty]
1289 2990 andersen andersen R ps
1291 -------------------------------
1295 Prints the full filename of the current working directory.
1302 -------------------------------
1306 Instructs the kernel to reboot the system.
1308 -------------------------------
1312 Usage: rm [OPTION]... FILE...
1314 Remove (unlink) the FILE(s).
1318 -f remove existing destinations, never prompt
1319 -r or -R remove the contents of directories recursively
1325 -------------------------------
1329 Usage: rmdir [OPTION]... DIRECTORY...
1331 Remove the DIRECTORY(ies), if they are empty.
1337 -------------------------------
1341 Usage: rmmod [OPTION]... [MODULE]...
1343 Unloads the specified kernel modules from the kernel.
1347 -a Try to remove all unused kernel modules.
1353 -------------------------------
1357 Usage: sed [B<-n>] B<-e> script [file...]
1359 Allowed sed scripts come in the following form:
1363 where address ADDR can be:
1364 NUMBER Match specified line number
1366 /REGEXP/ Match specified regexp
1367 (! inverts the meaning of the match)
1370 s/regexp/replacement/[igp]
1371 which attempt to match regexp against the pattern space
1372 and if successful replaces the matched portion with replacement.
1375 which appends TEXT after the pattern space
1379 -e add the script to the commands to be executed
1380 -n suppress automatic printing of pattern space
1382 This version of sed matches full regular expresions.
1386 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1389 -------------------------------
1393 Usage: setkeycodes SCANCODE KEYCODE ...
1395 Set entries into the kernel's scancode-to-keycode map,
1396 allowing unusual keyboards to generate usable keycodes.
1398 SCANCODE may be either xx or e0xx (hexadecimal),
1399 and KEYCODE is given in decimal
1403 # setkeycodes e030 127
1405 -------------------------------
1411 lash -- the BusyBox LAme SHell (command interpreter)
1413 This command does not yet have proper documentation.
1415 Use lash just as you would use any other shell. It properly handles pipes,
1416 redirects, job control, can be used as the shell for scripts (#!/bin/sh), and
1417 has a sufficient set of builtins to do what is needed. It does not (yet)
1418 support Bourne Shell syntax. If you need things like "if-then-else", "while",
1419 and such, use ash or bash. If you just need a very simple and extremely small
1420 shell, this will do the job.
1422 -------------------------------
1426 Usage: sfdisk [options] device ...
1428 device: something like /dev/hda or /dev/sda
1432 -s [or --show-size]: list size of a partition
1433 -c [or --id]: print or change partition Id
1434 -l [or --list]: list partitions of each device
1435 -d [or --dump]: idem, but in a format suitable for later input
1436 -i [or --increment]: number cylinders etc. from 1 instead of from 0
1437 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
1438 -T [or --list-types]:list the known partition types
1439 -D [or --DOS]: for DOS-compatibility: waste a little space
1440 -R [or --re-read]: make kernel reread partition table
1441 -N# : change only the partition with number #
1442 -n : do not actually write to disk
1443 -O file : save the sectors that will be overwritten to file
1444 -I file : restore these sectors again
1445 -v [or --version]: print version
1446 -? [or --help]: print this message
1450 -g [or --show-geometry]: print the kernel's idea of the geometry
1451 -x [or --show-extended]: also list extended partitions on output
1453 or expect descriptors for them on input
1454 -L [or --Linux]: do not complain about things irrelevant for Linux
1455 -q [or --quiet]: suppress warning messages
1456 You can override the detected geometry using:
1457 -C# [or --cylinders #]:set the number of cylinders to use
1458 -H# [or --heads #]: set the number of heads to use
1459 -S# [or --sectors #]: set the number of sectors to use
1461 You can disable all consistency checking with:
1463 -f [or --force]: do what I say, even if it is stupid
1465 -------------------------------
1471 Pause for N seconds.
1476 [2 second delay results]
1478 -------------------------------
1482 Usage: sort [B<-n>] [B<-r>] [FILE]...
1484 Sorts lines of text in the specified files
1488 $ echo -e "e\nf\nb\nd\nc\na" | sort
1496 -------------------------------
1502 Write all buffered filesystem blocks to disk.
1504 -------------------------------
1508 Usage: syslogd [OPTION]...
1510 Linux system and kernel (provides klogd) logging utility.
1511 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1515 -m Change the mark timestamp interval. default=20min. 0=off
1516 -n Do not fork into the background (for when run by init)
1517 -K Do not start up the klogd process (by default syslogd spawns klogd).
1518 -O Specify an alternate log file. default=/var/log/messages
1520 -------------------------------
1524 Usage: swapon [OPTION] [device]
1526 Start swapping virtual memory pages on the given device.
1530 -a Start swapping on all swap devices
1532 -------------------------------
1536 Usage: swapoff [OPTION] [device]
1538 Stop swapping virtual memory pages on the given device.
1542 -a Stop swapping on all swap devices
1544 -------------------------------
1548 Usage: tail [OPTION] [FILE]...
1550 Print last 10 lines of each FILE to standard output.
1551 With more than one FILE, precede each with a header giving the
1552 file name. With no FILE, or when FILE is -, read standard input.
1556 -n NUM Print last NUM lines instead of first 10
1557 -f Output data as the file grows. This version
1558 of 'tail -f' supports only one file at a time.
1562 $ tail -n 1 /etc/resolv.conf
1565 -------------------------------
1569 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1571 Create, extract, or list files from a tar file. Note that
1572 this version of tar treats hard links as separate files.
1574 Main operation mode:
1582 f name of tarfile or "-" for stdin
1584 --exclude file to exclude
1588 v verbosely list files processed
1592 $ zcat /tmp/tarball.tar.gz | tar -xf -
1593 $ tar -cf /tmp/tarball.tar /usr/local
1595 -------------------------------
1599 Usage: test EXPRESSION
1602 Checks file types and compares values returning an exit
1603 code determined by the value of EXPRESSION.
1620 -------------------------------
1624 Usage: tee [OPTION]... [FILE]...
1626 Copy standard input to each FILE, and also to standard output.
1630 -a append to the given FILEs, do not overwrite
1634 $ echo "Hello" | tee /tmp/foo
1638 -------------------------------
1642 Usage: touch [B<-c>] file [file ...]
1644 Update the last-modified date on (or create) the selected file[s].
1649 /bin/ls: /tmp/foo: No such file or directory
1652 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
1654 -------------------------------
1658 Usage: tr [-cds] STRING1 [STRING2]
1660 Translate, squeeze, and/or delete characters from
1661 standard input, writing to standard output.
1665 -c take complement of STRING1
1666 -d delete input characters coded STRING1
1667 -s squeeze multiple output characters of STRING2 into one character
1671 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1674 -------------------------------
1678 Returns an exit code of TRUE (0)
1686 -------------------------------
1692 Print the file name of the terminal connected to standard input.
1696 -s print nothing, only return an exit status
1703 -------------------------------
1707 Usage: umount [flags] filesystem|directory
1711 -a: Unmount all file systems
1712 -r: Try to remount devices as read-only if mount is busy
1713 -f: Force filesystem umount (i.e. unreachable NFS server)
1714 -l: Do not free loop device (if a loop device has been used)
1720 -------------------------------
1724 Usage: uname [OPTION]...
1726 Print certain system information. With no OPTION, same as B<-s>.
1730 -a print all information
1731 -m the machine (hardware) type
1732 -n print the machine's network node hostname
1733 -r print the operating system release
1734 -s print the operating system name
1735 -p print the host processor type
1736 -v print the operating system version
1741 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
1743 -------------------------------
1747 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
1749 Discard all but one of successive identical lines from INPUT
1750 (or standard input), writing to OUTPUT (or standard output).
1754 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
1759 -------------------------------
1763 Usage: update [options]
1765 Periodically flushes filesystem buffers.
1769 -S force use of sync(2) instead of flushing
1770 -s SECS call sync this often (default 30)
1771 -f SECS flush some buffers this often (default 5)
1773 -------------------------------
1779 Tells how long the system has been running since boot.
1784 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
1786 -------------------------------
1792 Pauses for N microseconds.
1797 [pauses for 1 second]
1799 -------------------------------
1803 Usage: wc [OPTION]... [FILE]...
1805 Print line, word, and byte counts for each FILE, and a total line if
1806 more than one FILE is specified. With no FILE, read standard input.
1810 -c print the byte counts
1811 -l print the newline counts
1812 -L print the length of the longest line
1813 -w print the word counts
1818 31 46 1365 /etc/passwd
1820 -------------------------------
1826 Prints the user name associated with the current effective user id.
1833 -------------------------------
1837 Usage: yes [OPTION]... [STRING]...
1839 Repeatedly outputs a line with all specified STRING(s), or `y'.
1841 -------------------------------
1845 This is essentially an alias for invoking "gunzip B<-c>", where
1846 it decompresses the file inquestion and send the output to stdout.
1848 -------------------------------
1854 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C
1855 library for the local environment, and to configure how it reads system data,
1856 such as passwords and group information. BusyBox has made it Policy that it
1857 will never use NSS, and will never use and libc calls that make use of NSS.
1858 This allows you to run an embedded system without the need for installing an
1859 /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed.
1861 If you are using a system that is using a remote LDAP server for authentication
1862 via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the
1863 BusyBox source. Chances are though, that if you have enough space to install
1864 of that stuff on your system, then you probably want the full GNU utilities.
1868 textutils(1), shellutils(1), etc...
1872 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
1876 The following people have contributed code to BusyBox whether
1877 they know it or not.
1879 Erik Andersen <andersee@debian.org>
1883 John Beppu <beppu@lineo.com>
1887 Brian Candler <B.Candler@pobox.com>
1891 Randolph Chung <tausq@debian.org>
1895 Dave Cinege <dcinege@psychosis.com>
1899 Karl M. Hegbloom <karlheg@debian.org>
1903 John Lombardo <john@deltanet.com>
1907 Bruce Perens <bruce@perens.com>
1911 Linus Torvalds <torvalds@transmeta.com>
1915 Charles P. Wright <cpwright@villagenet.com>
1919 Enrique Zanardi <ezanardi@ull.es>
1925 # $Id: busybox.pod,v 1.31 2000/05/13 05:36:13 erik Exp $