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 embedded system. The utilities in BusyBox generally have fewer options than
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 ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
59 dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
60 fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
61 head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
62 loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
63 mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
64 nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
65 setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
66 tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
67 uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
69 -------------------------------
75 Usage: ar [optxvV] archive [filenames]
77 Extract or list files from an ar archive.
81 o preserve original dates
85 v verbosely list files processed
87 -------------------------------
91 Usage: basename FILE [SUFFIX]
93 Strips directory path and suffixes from FILE.
94 If specified, also removes any trailing SUFFIX.
98 $ basename /usr/local/bin/foo
100 $ basename /usr/local/bin/
102 $ basename /foo/bar.txt .txt
105 -------------------------------
109 Usage: cat [FILE ...]
111 Concatenates FILE(s) and prints them to the standard output.
118 -------------------------------
122 Usage: chgrp [OPTION]... GROUP FILE...
124 Change the group membership of each FILE to GROUP.
128 -R change files and directories recursively
133 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
134 $ chgrp root /tmp/foo
136 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
138 -------------------------------
142 Usage: chmod [B<-R>] MODE[,MODE]... FILE...
144 Changes file access permissions for the specified FILE(s) (or directories).
145 Each MODE is defined by combining the letters for WHO has access to the file,
146 an OPERATOR for selecting how the permissions should be changed, and a
147 PERMISSION for FILE(s) (or directories).
149 WHO may be chosen from
151 u User who owns the file
152 g Users in the file's Group
153 o Other users not in the file's group
156 OPERATOR may be chosen from
159 - Remove a permission
160 = Assign a permission
162 PERMISSION may be chosen from
166 x Execute (or access for directories)
167 s Set user (or group) ID bit
168 t Sticky bit (for directories prevents removing files by non-owners)
170 Alternately, permissions can be set numerically where the first three
171 numbers are calculated by adding the octal values, such as
177 An optional fourth digit can also be used to specify
185 -R Change files and directories recursively.
190 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
193 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
196 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
198 -------------------------------
202 Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE...
204 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
208 -R Changes files and directories recursively
213 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
214 $ chown root /tmp/foo
216 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
217 $ chown root.root /tmp/foo
219 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
221 -------------------------------
225 Usage: chroot NEWROOT [COMMAND...]
227 Run COMMAND with root directory set to NEWROOT.
232 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox
233 $ mount /dev/hdc1 /mnt -t minix
236 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
238 -------------------------------
244 -------------------------------
250 Changes the foreground virtual terminal to /dev/ttyN
252 -------------------------------
256 Usage: cp [OPTION]... SOURCE DEST
258 or: cp [OPTION]... SOURCE... DIRECTORY
260 Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
266 -p Preserves file attributes if possible
267 -R Copies directories recursively
269 -------------------------------
273 Usage: cut [OPTION]... [FILE]...
275 Prints selected fields from each input FILE to standard output.
279 -b LIST Output only bytes from LIST
280 -c LIST Output only characters from LIST
281 -d DELIM Use DELIM instead of tab as the field delimiter
282 -f N Print only these fields
287 $ echo "Hello world" | cut -f 1 -d ' '
289 $ echo "Hello world" | cut -f 2 -d ' '
293 -------------------------------
297 Usage: date [OPTION]... [+FORMAT]
299 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
301 Displays the current time in the given FORMAT, or sets the system date.
305 -R Outputs RFC-822 compliant date string
306 -s Sets time described by STRING
307 -u Prints or sets Coordinated Universal Time
312 Wed Apr 12 18:52:41 MDT 2000
314 -------------------------------
318 Usage: dc expression ...
320 This is a Tiny RPN calculator that understands the
321 following operations: +, -, /, *, and, or, not, eor.
322 If no arguments are given, dc will process input from STDIN.
324 The behaviour of BusyBox/dc deviates (just a little ;-) from
325 GNU/dc, but this will be remedied in the future.
337 $ echo 72 9 div 8 mul | dc
340 -------------------------------
344 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
346 Copy a file, converting and formatting according to options
348 if=FILE read from FILE instead of stdin
349 of=FILE write to FILE instead of stdout
350 bs=n read and write n bytes at a time
351 count=n copy only n input blocks
352 skip=n skip n input blocks
353 seek=n skip n output blocks
355 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
359 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
363 -------------------------------
367 Usage: df [filesystem ...]
369 Prints the filesystem space used and space available.
374 Filesystem 1k-blocks Used Available Use% Mounted on
375 /dev/sda3 8690864 8553540 137324 98% /
376 /dev/sda1 64216 36364 27852 57% /boot
378 Filesystem 1k-blocks Used Available Use% Mounted on
379 /dev/sda3 8690864 8553540 137324 98% /
381 -------------------------------
387 Strip non-directory suffix from file name
396 -------------------------------
400 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
402 Print or controls the kernel ring buffer.
404 -------------------------------
408 Usage: du [OPTION]... [FILE]...
410 Summarize disk space used for each FILE and/or directory.
411 Disk space is printed in units of 1k (i.e. 1024 bytes).
415 -l count sizes many times if hard linked
416 -s display only a total for each argument
422 12 ./kernel-patches/CVS
432 -------------------------------
438 Dump utmp file format (pipe delimited) from FILE
443 $ dutmp /var/run/utmp
444 8|7||si|||0|0|0|955637625|760097|0
445 2|0|~|~~|reboot||0|0|0|955637625|782235|0
446 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
447 8|125||l4|||0|0|0|955637629|998367|0
448 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
449 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
450 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
452 -------------------------------
456 Usage: echo [-neE] [ARG ...]
458 Prints the specified ARGs to stdout
462 -n suppress trailing newline
463 -e interpret backslash-escaped characters (i.e. \t=tab etc)
464 -E disable interpretation of backslash-escaped characters
468 $ echo "Erik is cool"
470 $ echo -e "Erik\nis\ncool"
474 $ echo "Erik\nis\ncool"
477 -------------------------------
481 Returns an exit code of FALSE (1)
489 -------------------------------
493 Usage: fbset [options] [mode]
495 Show and modify frame buffer device settings
516 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
517 geometry 1024 768 1024 768 16
518 timings 12714 128 32 16 4 128 4
520 rgba 5/11,6/5,5/0,0/0
523 -------------------------------
527 Usage: fdflush device
529 Force floppy disk drive to detect disk change
531 -------------------------------
535 Usage: find [PATH...] [EXPRESSION]
537 Search for files in a directory hierarchy. The default PATH is
538 the current directory; default EXPRESSION is '-print'
541 EXPRESSION may consist of:
543 -follow Dereference symbolic links.
544 -name PATTERN File name (leading directories removed) matches PATTERN.
545 -print print the full file name followed by a newline to stdout.
549 $ find / -name /etc/passwd
552 -------------------------------
558 Displays the amount of free and used system memory.
563 total used free shared buffers
564 Mem: 257628 248724 8904 59644 93124
565 Swap: 128516 8404 120112
566 Total: 386144 257128 129016
568 -------------------------------
572 Usage: freeramdisk DEVICE
574 Frees all memory used by the specified ramdisk.
578 $ freeramdisk /dev/ram2
580 -------------------------------
586 Deallocates unused virtual terminal /dev/ttyN
588 -------------------------------
592 Usage: fsck.minix [B<-larvsmf>] /dev/name
594 Performs a consistency check for MINIX filesystems.
598 -l Lists all filenames
599 -r Perform interactive repairs
600 -a Perform automatic repairs
602 -s Outputs super-block information
603 -m Activates MINIX-like "mode not cleared" warnings
604 -f Force file system check.
606 -------------------------------
610 Usage: grep [OPTIONS]... PATTERN [FILE]...
612 Search for PATTERN in each FILE or standard input.
616 -h suppress the prefixing filename on output
617 -i ignore case distinctions
618 -n print line number with output lines
619 -q be quiet. Returns 0 if result was found, 1 otherwise
620 -v select non-matching lines
622 This version of grep matches full regular expressions.
626 $ grep root /etc/passwd
627 root:x:0:0:root:/root:/bin/bash
628 $ grep ^[rR]oo. /etc/passwd
629 root:x:0:0:root:/root:/bin/bash
631 -------------------------------
635 Usage: gunzip [OPTION]... FILE
637 Uncompress FILE (or standard input if FILE is '-').
641 -c Write output to standard output
642 -t Test compressed file integrity
646 $ ls -la /tmp/BusyBox*
647 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
648 $ gunzip /tmp/BusyBox-0.43.tar.gz
649 $ ls -la /tmp/BusyBox*
650 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
652 -------------------------------
656 Usage: gzip [OPTION]... FILE
658 Compress FILE with maximum compression.
659 When FILE is '-', reads standard input. Implies B<-c>.
663 -c Write output to standard output instead of FILE.gz
667 $ ls -la /tmp/BusyBox*
668 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
669 $ gzip /tmp/BusyBox-0.43.tar
670 $ ls -la /tmp/BusyBox*
671 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
674 -------------------------------
680 This command halts the system.
682 -------------------------------
686 Usage: head [OPTION] [FILE]...
688 Print first 10 lines of each FILE to standard output.
689 With more than one FILE, precede each with a header giving the
690 file name. With no FILE, or when FILE is -, read standard input.
694 -n NUM Print first NUM lines instead of first 10
698 $ head -n 2 /etc/passwd
699 root:x:0:0:root:/root:/bin/bash
700 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
702 -------------------------------
708 Prints out a unique 32-bit identifier for the current
709 machine. The 32-bit identifier is intended to be unique
710 among all UNIX systems in existence.
712 -------------------------------
716 Usage: hostname [OPTION] {hostname | B<-F> file}
718 Get or set the hostname or DNS domain name. If a hostname is given
719 (or a file with the B<-F> parameter), the host name will be set.
724 -i Addresses for the hostname
726 -F FILE Use the contents of FILE to specify the hostname
733 -------------------------------
737 Print information for USERNAME or the current user
741 -g prints only the group ID
742 -u prints only the user ID
743 -r prints the real user ID instead of the effective ID (with -ug)
748 uid=1000(andersen) gid=1000(andersen)
750 -------------------------------
756 Init is the parent of all processes.
758 This version of init is designed to be run only by the kernel.
760 BusyBox init doesn't support multiple runlevels. The runlevels field of
761 the /etc/inittab file is completely ignored by BusyBox init. If you want
762 runlevels, use sysvinit.
764 BusyBox init works just fine without an inittab. If no inittab is found,
765 it has the following default behavior:
767 ::sysinit:/etc/init.d/rcS
770 if it detects that /dev/console is _not_ a serial console, it will also run:
772 tty2::askfirst:/bin/sh
774 If you choose to use an /etc/inittab file, the inittab entry format is as follows:
776 <id>:<runlevels>:<action>:<process>
780 WARNING: This field has a non-traditional meaning for BusyBox init!
781 The id field is used by BusyBox init to specify the controlling tty for
782 the specified process to run on. The contents of this field are
783 appended to "/dev/" and used as-is. There is no need for this field to
784 be unique, although if it isn't you may have strange results. If this
785 field is left blank, it is completely ignored. Also note that if
786 BusyBox detects that a serial console is in use, then all entries
787 containing non-empty id fields will _not_ be run. BusyBox init does
788 nothing with utmp. We don't need no stinkin' utmp.
792 The runlevels field is completely ignored.
796 Valid actions include: sysinit, respawn, askfirst, wait,
797 once, and ctrlaltdel.
799 askfirst acts just like respawn, but before running the specified
800 process it displays the line "Please press Enter to activate this
801 console." and then waits for the user to press enter before starting
802 the specified process.
804 Unrecognized actions (like initdefault) will cause init to emit
805 an error message, and then go along with its business.
809 Specifies the process to be executed and it's command line.
812 Example /etc/inittab file:
814 # This is run first except when booting in single-user mode.
816 ::sysinit:/etc/init.d/rcS
818 # /bin/sh invocations on selected ttys
820 # Start an "askfirst" shell on the console (whatever that may be)
822 # Start an "askfirst" shell on /dev/tty2
823 tty2::askfirst:/bin/sh
825 # /sbin/getty invocations for selected ttys
827 tty4::respawn:/sbin/getty 38400 tty4
828 tty5::respawn:/sbin/getty 38400 tty5
831 # Example of how to put a getty on a serial line (for a terminal)
833 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
834 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
836 # Example how to put a getty on a modem line.
837 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
839 # Stuff to do before rebooting
840 ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
841 ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
843 -------------------------------
847 Usage: insmod [OPTION]... MODULE [symbol=value]...
849 Loads the specified kernel modules into the kernel.
853 -f Force module to load into the wrong kernel version.
854 -k Make module autoclean-able.
856 -x do not export externs
858 -------------------------------
862 Usage: kill [B<-signal>] process-id [process-id ...]
864 Send a signal (default is SIGTERM) to the specified process(es).
868 -l List all signal names and numbers.
873 252 root root S [apache]
874 263 www-data www-data S [apache]
875 264 www-data www-data S [apache]
876 265 www-data www-data S [apache]
877 266 www-data www-data S [apache]
878 267 www-data www-data S [apache]
881 -------------------------------
885 Usage: killall [B<-signal>] process-name [process-name ...]
887 Send a signal (default is SIGTERM) to the specified process(es).
891 -l List all signal names and numbers.
897 -------------------------------
903 Prints out the length of the specified STRING.
910 -------------------------------
914 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
916 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
920 -s make symbolic links instead of hard links
921 -f remove existing destination files
925 $ ln -s BusyBox /tmp/ls
927 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
929 -------------------------------
935 Loads an acm from standard input.
939 $ loadacm < /etc/i18n/acmname
941 -------------------------------
947 Loads a console font from standard input.
951 $ loadfont < /etc/i18n/fontname
953 -------------------------------
959 Loads a binary keyboard translation table from standard input.
963 $ loadkmap < /etc/i18n/lang-keymap
965 -------------------------------
969 Usage: logger [OPTION]... [MESSAGE]
971 Write MESSAGE to the system log. If MESSAGE is '-', log stdin.
975 -s Log to stderr as well as the system log.
976 -t Log using the specified tag (defaults to user name).
977 -p Enter the message with the specified priority.
978 This may be numerical or a ``facility.level'' pair.
984 -------------------------------
990 Print the name of the current user.
997 -------------------------------
1001 Usage: ls [B<-1acdelnpuxACFR>] [filenames...]
1005 -a do not hide entries starting with .
1006 -c with -l: show ctime (the time of last
1007 modification of file status information)
1008 -d list directory entries instead of contents
1009 -e list both full date and full time
1010 -l use a long listing format
1011 -n list numeric UIDs and GIDs instead of names
1012 -p append indicator (one of /=@|) to entries
1013 -u with -l: show access time (the time of last
1015 -x list entries by lines instead of by columns
1016 -A do not list implied . and ..
1017 -C list entries by columns
1018 -F append indicator (one of */=@|) to entries
1019 -R list subdirectories recursively
1021 -------------------------------
1027 Shows a list of all currently loaded kernel modules.
1029 -------------------------------
1033 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
1035 Creates a range of block or character special files
1039 b: Make a block (buffered) device.
1040 c or u: Make a character (un-buffered) device.
1041 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1043 FIRST specifies the number appended to NAME to create the first device.
1044 LAST specifies the number of the last item that should be created.
1045 If 's' is the last argument, the base device is created as well.
1049 $ makedevs /dev/ttyS c 4 66 2 63
1050 [creates ttyS2-ttyS63]
1051 $ makedevs /dev/hda b 3 0 0 8 s
1052 [creates hda,hda1-hda8]
1054 -------------------------------
1058 Usage: md5sum [OPTION] [file ...]
1060 Print or check MD5 checksums.
1064 -b read files in binary mode
1065 -c check MD5 sums against given list
1066 -t read files in text mode (default)
1069 The following two options are useful only when verifying checksums:
1071 -s don't output anything, status code shows success
1072 -w warn about improperly formated MD5 checksum lines
1077 6fd11e98b98a58f64ff3398d7b324003 busybox
1079 6fd11e98b98a58f64ff3398d7b324003 busybox
1083 -------------------------------
1087 Usage: mkdir [OPTION] DIRECTORY...
1089 Create the DIRECTORY(ies), if they do not already exist
1093 -m set permission mode (as in chmod), not rwxrwxrwx - umask
1094 -p no error if directory exists, make parent directories as needed
1100 /tmp/foo: File exists
1101 $ mkdir /tmp/foo/bar/baz
1102 /tmp/foo/bar/baz: No such file or directory
1103 $ mkdir -p /tmp/foo/bar/baz
1105 -------------------------------
1109 Usage: mkfifo [OPTIONS] name
1111 Creates a named pipe (identical to 'mknod name p')
1115 -m create the pipe using the specified mode (default a=rw)
1117 -------------------------------
1121 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
1123 Make a MINIX filesystem.
1127 -c Check the device for bad blocks
1128 -n [14|30] Specify the maximum length of filenames
1129 -i Specify the number of inodes for the filesystem
1130 -l FILENAME Read the bad blocks list from FILENAME
1131 -v Make a Minix version 2 filesystem
1133 -------------------------------
1137 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
1139 Create a special file (block, character, or pipe).
1143 -m create the special file using the specified mode (default a=rw)
1146 b: Make a block (buffered) device.
1147 c or u: Make a character (un-buffered) device.
1148 p: Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1152 $ mknod /dev/fd0 b 2 0
1153 $ mknod -m 644 /tmp/pipe p
1155 -------------------------------
1159 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1161 Prepare a disk partition to be used as a swap partition.
1165 -c Check for read-ability.
1166 -v0 Make version 0 swap [max 128 Megs].
1167 -v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
1168 block-count Number of block to use (default is entire partition).
1170 -------------------------------
1174 Usage: mktemp [B<-q>] TEMPLATE
1176 Creates a temporary file with its name based on TEMPLATE.
1177 TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).
1181 $ mktemp /tmp/temp.XXXXXX
1183 $ ls -la /tmp/temp.mWiLjM
1184 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
1186 -------------------------------
1190 Usage: nc [IP] [port]
1192 Netcat opens a pipe to IP:port
1196 $ nc foobar.somedomain.com 25
1197 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1199 214-Commands supported:
1200 214- HELO EHLO MAIL RCPT DATA AUTH
1201 214 NOOP QUIT RSET HELP
1203 221 foobar closing connection
1205 -------------------------------
1209 Usage: more [file ...]
1211 More is a filter for paging through text one screenful at a time.
1217 -------------------------------
1221 Usage: mount [flags]
1222 mount [flags] device directory [B<-o> options,more-options]
1226 -a: Mount all file systems in fstab.
1227 -o option: One of many filesystem options, listed below.
1228 -r: Mount the filesystem read-only.
1229 -t fs-type: Specify the filesystem type.
1230 -w: Mount for reading and writing (default).
1232 Options for use with the "B<-o>" flag:
1234 async/sync: Writes are asynchronous / synchronous.
1235 atime/noatime: Enable / disable updates to inode access times.
1236 dev/nodev: Allow use of special device files / disallow them.
1237 exec/noexec: Allow use of executable files / disallow them.
1238 loop: Mounts a file via loop device.
1239 suid/nosuid: Allow set-user-id-root programs / disallow them.
1240 remount: Re-mount a currently-mounted filesystem, changing its flags.
1241 ro/rw: Mount for read-only / read-write.
1242 There are EVEN MORE flags that are specific to each filesystem.
1243 You'll have to see the written documentation for those.
1248 /dev/hda3 on / type minix (rw)
1249 proc on /proc type proc (rw)
1250 devpts on /dev/pts type devpts (rw)
1251 $ mount /dev/fd0 /mnt -t msdos -o ro
1252 $ mount /tmp/diskimage /opt -t ext2 -o loop
1254 -------------------------------
1258 Usage: mt [B<-f> device] opcode value
1260 Control magnetic tape drive operation
1262 -------------------------------
1266 Usage: mv SOURCE DEST
1268 or: mv SOURCE... DIRECTORY
1270 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1274 $ mv /tmp/foo /bin/bar
1276 -------------------------------
1280 Usage: nslookup [HOST]
1282 Queries the nameserver for the IP address of the given HOST
1286 $ nslookup localhost
1293 -------------------------------
1297 Usage: ping [OPTION]... host
1299 Send ICMP ECHO_REQUEST packets to network hosts.
1303 -c COUNT Send only COUNT pings.
1304 -s SIZE Send SIZE data bytes in packets (default=56).
1305 -q Quiet mode, only displays output at start
1310 PING slag (127.0.0.1): 56 data bytes
1311 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1313 --- debian ping statistics ---
1314 1 packets transmitted, 1 packets received, 0% packet loss
1315 round-trip min/avg/max = 20.1/20.1/20.1 ms
1317 -------------------------------
1321 Shuts down the system, and requests that the kernel turn off power upon halting.
1323 -------------------------------
1327 Usage: printf format [argument...]
1329 Formats and prints the given data in a manner similar to the C printf command.
1333 $ printf "Val=%d\n" 5
1336 -------------------------------
1342 Report process status
1344 This version of ps accepts no options.
1349 PID Uid Gid State Command
1351 2 root root S [kflushd]
1352 3 root root S [kupdate]
1353 4 root root S [kpiod]
1354 5 root root S [kswapd]
1355 742 andersen andersen S [bash]
1356 743 andersen andersen S -bash
1357 745 root root S [getty]
1358 2990 andersen andersen R ps
1360 -------------------------------
1364 Prints the full filename of the current working directory.
1371 -------------------------------
1375 Instructs the kernel to reboot the system.
1377 -------------------------------
1381 Usage: rm [OPTION]... FILE...
1383 Remove (unlink) the FILE(s). You may use '--' to
1384 indicate that all following arguments are non-options.
1388 -f remove existing destinations, never prompt
1389 -r or -R remove the contents of directories recursively
1395 -------------------------------
1399 Usage: rmdir [OPTION]... DIRECTORY...
1401 Remove the DIRECTORY(ies), if they are empty.
1407 -------------------------------
1411 Usage: rmmod [OPTION]... [MODULE]...
1413 Unloads the specified kernel modules from the kernel.
1417 -a Try to remove all unused kernel modules.
1423 -------------------------------
1427 Usage: sed [B<-n>] B<-e> script [file...]
1429 Allowed sed scripts come in the following form:
1433 where address ADDR can be:
1434 NUMBER Match specified line number
1436 /REGEXP/ Match specified regexp
1437 (! inverts the meaning of the match)
1440 s/regexp/replacement/[igp]
1441 which attempt to match regexp against the pattern space
1442 and if successful replaces the matched portion with replacement.
1445 which appends TEXT after the pattern space
1449 -e add the script to the commands to be executed
1450 -n suppress automatic printing of pattern space
1452 This version of sed matches full regular expressions.
1456 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1459 -------------------------------
1463 Usage: setkeycodes SCANCODE KEYCODE ...
1465 Set entries into the kernel's scancode-to-keycode map,
1466 allowing unusual keyboards to generate usable keycodes.
1468 SCANCODE may be either xx or e0xx (hexadecimal),
1469 and KEYCODE is given in decimal
1473 # setkeycodes e030 127
1475 -------------------------------
1481 lash -- the BusyBox LAme SHell (command interpreter)
1483 This command does not yet have proper documentation.
1485 Use lash just as you would use any other shell. It properly handles pipes,
1486 redirects, job control, can be used as the shell for scripts (#!/bin/sh), and
1487 has a sufficient set of builtins to do what is needed. It does not (yet)
1488 support Bourne Shell syntax. If you need things like "if-then-else", "while",
1489 and such, use ash or bash. If you just need a very simple and extremely small
1490 shell, this will do the job.
1492 -------------------------------
1496 Usage: sfdisk [options] device ...
1498 device: something like /dev/hda or /dev/sda
1502 -s [or --show-size]: list size of a partition
1503 -c [or --id]: print or change partition Id
1504 -l [or --list]: list partitions of each device
1505 -d [or --dump]: idem, but in a format suitable for later input
1506 -i [or --increment]: number cylinders etc. from 1 instead of from 0
1507 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
1508 -T [or --list-types]:list the known partition types
1509 -D [or --DOS]: for DOS-compatibility: waste a little space
1510 -R [or --re-read]: make kernel reread partition table
1511 -N# : change only the partition with number #
1512 -n : do not actually write to disk
1513 -O file : save the sectors that will be overwritten to file
1514 -I file : restore these sectors again
1515 -v [or --version]: print version
1516 -? [or --help]: print this message
1520 -g [or --show-geometry]: print the kernel's idea of the geometry
1521 -x [or --show-extended]: also list extended partitions on output
1523 or expect descriptors for them on input
1524 -L [or --Linux]: do not complain about things irrelevant for Linux
1525 -q [or --quiet]: suppress warning messages
1526 You can override the detected geometry using:
1527 -C# [or --cylinders #]:set the number of cylinders to use
1528 -H# [or --heads #]: set the number of heads to use
1529 -S# [or --sectors #]: set the number of sectors to use
1531 You can disable all consistency checking with:
1533 -f [or --force]: do what I say, even if it is stupid
1535 -------------------------------
1541 Pause for N seconds.
1546 [2 second delay results]
1548 -------------------------------
1552 Usage: sort [B<-n>] [B<-r>] [FILE]...
1554 Sorts lines of text in the specified files
1558 $ echo -e "e\nf\nb\nd\nc\na" | sort
1566 -------------------------------
1572 Write all buffered filesystem blocks to disk.
1574 -------------------------------
1578 Usage: syslogd [OPTION]...
1580 Linux system and kernel (provides klogd) logging utility.
1581 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1585 -m NUM Interval between MARK lines (default=20min, 0=off)
1586 -n Run as a foreground process
1587 -K Do not start up the klogd process
1588 -O FILE Use an alternate log file (default=/var/log/messages)
1590 -------------------------------
1594 Usage: swapon [OPTION] [device]
1596 Start swapping virtual memory pages on the given device.
1600 -a Start swapping on all swap devices
1602 -------------------------------
1606 Usage: swapoff [OPTION] [device]
1608 Stop swapping virtual memory pages on the given device.
1612 -a Stop swapping on all swap devices
1614 -------------------------------
1618 Usage: tail [OPTION] [FILE]...
1620 Print last 10 lines of each FILE to standard output.
1621 With more than one FILE, precede each with a header giving the
1622 file name. With no FILE, or when FILE is -, read standard input.
1626 -n NUM Print last NUM lines instead of first 10
1627 -f Output data as the file grows. This version
1628 of 'tail -f' supports only one file at a time.
1632 $ tail -n 1 /etc/resolv.conf
1635 -------------------------------
1639 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1641 Create, extract, or list files from a tar file. Note that
1642 this version of tar treats hard links as separate files.
1644 Main operation mode:
1652 f name of tarfile or "-" for stdin
1654 --exclude file to exclude
1658 v verbosely list files processed
1662 $ zcat /tmp/tarball.tar.gz | tar -xf -
1663 $ tar -cf /tmp/tarball.tar /usr/local
1665 -------------------------------
1669 Usage: test EXPRESSION
1672 Checks file types and compares values returning an exit
1673 code determined by the value of EXPRESSION.
1690 -------------------------------
1694 Usage: telnet host [port]
1696 Telnet is used to establish interactive communication with another
1697 computer over a network using the TELNET protocol.
1699 -------------------------------
1703 Usage: tee [OPTION]... [FILE]...
1705 Copy standard input to each FILE, and also to standard output.
1709 -a append to the given FILEs, do not overwrite
1713 $ echo "Hello" | tee /tmp/foo
1717 -------------------------------
1721 Usage: touch [B<-c>] file [file ...]
1723 Update the last-modified date on (or create) the selected file[s].
1728 /bin/ls: /tmp/foo: No such file or directory
1731 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
1733 -------------------------------
1737 Usage: tr [-cds] STRING1 [STRING2]
1739 Translate, squeeze, and/or delete characters from
1740 standard input, writing to standard output.
1744 -c take complement of STRING1
1745 -d delete input characters coded STRING1
1746 -s squeeze multiple output characters of STRING2 into one character
1750 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1753 -------------------------------
1757 Returns an exit code of TRUE (0)
1765 -------------------------------
1771 Print the file name of the terminal connected to standard input.
1775 -s print nothing, only return an exit status
1782 -------------------------------
1786 Usage: uuencode [OPTION] [INFILE] REMOTEFILE
1792 -m use base64 encoding as of RFC1521
1796 $ uuencode busybox busybox
1798 M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&
1800 $ uudecode busybox busybox > busybox.uu
1803 -------------------------------
1807 Usage: uudecode [OPTION] [FILE]
1809 Uudecode a uuencoded file
1813 -o FILE direct output to FILE
1817 $ uudecode -o busybox busybox.uu
1819 -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
1821 -------------------------------
1825 Usage: umount [flags] filesystem|directory
1829 -a: Unmount all file systems
1830 -r: Try to remount devices as read-only if mount is busy
1831 -f: Force filesystem umount (i.e. unreachable NFS server)
1832 -l: Do not free loop device (if a loop device has been used)
1838 -------------------------------
1842 Usage: uname [OPTION]...
1844 Print certain system information. With no OPTION, same as B<-s>.
1848 -a print all information
1849 -m the machine (hardware) type
1850 -n print the machine's network node hostname
1851 -r print the operating system release
1852 -s print the operating system name
1853 -p print the host processor type
1854 -v print the operating system version
1859 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
1861 -------------------------------
1865 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
1867 Discard all but one of successive identical lines from INPUT
1868 (or standard input), writing to OUTPUT (or standard output).
1872 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
1877 -------------------------------
1881 Usage: update [options]
1883 Periodically flushes filesystem buffers.
1887 -S force use of sync(2) instead of flushing
1888 -s SECS call sync this often (default 30)
1889 -f SECS flush some buffers this often (default 5)
1891 -------------------------------
1897 Tells how long the system has been running since boot.
1902 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
1904 -------------------------------
1910 Pauses for N microseconds.
1915 [pauses for 1 second]
1917 -------------------------------
1921 Usage: wc [OPTION]... [FILE]...
1923 Print line, word, and byte counts for each FILE, and a total line if
1924 more than one FILE is specified. With no FILE, read standard input.
1928 -c print the byte counts
1929 -l print the newline counts
1930 -L print the length of the longest line
1931 -w print the word counts
1936 31 46 1365 /etc/passwd
1938 -------------------------------
1944 Prints the user name associated with the current effective user id.
1951 -------------------------------
1955 Usage: yes [OPTION]... [STRING]...
1957 Repeatedly outputs a line with all specified STRING(s), or `y'.
1959 -------------------------------
1963 This is essentially an alias for invoking "gunzip B<-c>", where
1964 it decompresses the file in question and send the output to stdout.
1966 -------------------------------
1972 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C
1973 library for the local environment, and to configure how it reads system data,
1974 such as passwords and group information. BusyBox has made it Policy that it
1975 will never use NSS, and will never use and libc calls that make use of NSS.
1976 This allows you to run an embedded system without the need for installing an
1977 /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed.
1979 If you are using a system that is using a remote LDAP server for authentication
1980 via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the
1981 BusyBox source. Chances are though, that if you have enough space to install
1982 of that stuff on your system, then you probably want the full GNU utilities.
1986 textutils(1), shellutils(1), etc...
1990 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
1994 The following people have contributed code to BusyBox whether
1995 they know it or not.
1997 Erik Andersen <andersee@debian.org>
2001 John Beppu <beppu@lineo.com>
2005 Brian Candler <B.Candler@pobox.com>
2009 Randolph Chung <tausq@debian.org>
2013 Dave Cinege <dcinege@psychosis.com>
2017 Karl M. Hegbloom <karlheg@debian.org>
2021 John Lombardo <john@deltanet.com>
2025 Glenn McGrath <bug1@netconnect.com.au>
2029 Bruce Perens <bruce@perens.com>
2033 Pavel Roskin <proski@gnu.org>
2037 Linus Torvalds <torvalds@transmeta.com>
2041 Charles P. Wright <cpwright@villagenet.com>
2045 Enrique Zanardi <ezanardi@ull.es>
2051 # $Id: busybox.pod,v 1.49 2000/06/21 21:38:00 proski Exp $