| # vi: set sw=4 ts=4: |
| |
| =head1 NAME |
| |
| BusyBox - The Swiss Army Knife of Embedded Linux |
| |
| =head1 SYNTAX |
| |
| BusyBox <function> [arguments...] # or |
| |
| <function> [arguments...] # if symlinked |
| |
| =head1 DESCRIPTION |
| |
| BusyBox combines tiny versions of many common UNIX utilities into a single |
| small executable. It provides minimalist replacements for most of the utilities |
| you usually find in fileutils, shellutils, findutils, textutils, grep, gzip, |
| tar, etc. BusyBox provides a fairly complete POSIX environment for any small |
| or embedded system. The utilities in BusyBox generally have fewer options than |
| their full-featured GNU cousins; however, the options that are included provide |
| the expected functionality and behave very much like their GNU counterparts. |
| |
| BusyBox has been written with size-optimization and limited resources in mind. |
| It is also extremely modular so you can easily include or exclude commands (or |
| features) at compile time. This makes it easy to customize your embedded |
| systems. To create a working system, just add a kernel, a shell (such as ash), |
| and an editor (such as elvis-tiny or ae). |
| |
| =head1 USAGE |
| |
| When you create a link to BusyBox for the function you wish to use, when BusyBox |
| is called using that link it will behave as if the command itself has been invoked. |
| |
| For example, entering |
| |
| ln -s ./BusyBox ls |
| ./ls |
| |
| will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled |
| into BusyBox). |
| |
| You can also invoke BusyBox by issuing the command as an argument on the |
| command line. For example, entering |
| |
| ./BusyBox ls |
| |
| will also cause BusyBox to behave as 'ls'. |
| |
| =head1 COMMON OPTIONS |
| |
| Most BusyBox commands support the B<-h> option to provide a |
| terse runtime description of their behavior. |
| |
| =head1 COMMANDS |
| |
| Currently defined functions include: |
| |
| adjtimex, ar, basename, busybox, cat, chgrp, chmod, chown, chroot, chvt, clear, |
| cmp, cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dos2unix, dpkg, |
| dpkg-deb, du, dumpkmap, dutmp, echo, expr, false, fbset, fdflush, find, free, |
| freeramdisk, fsck.minix, getopt, grep, gunzip, gzip, halt, head, hostid, |
| hostname, id, ifconfig, init, insmod, kill, killall, klogd, length, ln, |
| loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, md5sum, |
| mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc, |
| nslookup, ping, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, reboot, |
| renice, reset, rm, rmdir, rmmod, route, rpmunpack, sed, setkeycodes, sh, sleep, |
| sort, stty, swapoff, swapon, sync, syslogd, tail, tar, tee, telnet, test, tftp, |
| touch, tr, true, tty, umount, uname, uniq, unix2dos, update, uptime, usleep, |
| uudecode, uuencode, watchdog, wc, wget, which, whoami, xargs, yes, zcat, [ |
| |
| =over 4 |
| |
| =item B<adjtimex> |
| |
| adjtimex [B<-q>] [B<-o> offset] [B<-f> frequency] [B<-p> timeconstant] [B<-t> tick] |
| |
| Reads and optionally sets system timebase parameters. |
| See adjtimex(2). |
| |
| Options: |
| |
| -q quiet mode - do not print |
| -o offset time offset, microseconds |
| -f frequency frequency adjust, integer kernel units (65536 is 1ppm) |
| (positive values make the system clock run fast) |
| -t tick microseconds per tick, usually 10000 |
| -p timeconstant |
| |
| ------------------------------- |
| |
| =item B<ar> |
| |
| ar -[ovR]{ptx} archive filenames |
| |
| Extract or list files from an ar archive. |
| |
| Options: |
| |
| -o preserve original dates |
| -p extract to stdout |
| -t list |
| -x extract |
| -v verbosely list files processed |
| -R recursive action |
| |
| ------------------------------- |
| |
| =item B<basename> |
| |
| basename FILE [SUFFIX] |
| |
| Strips directory path and suffixes from FILE. |
| If specified, also removes any trailing SUFFIX. |
| |
| Example: |
| |
| $ basename /usr/local/bin/foo |
| foo |
| $ basename /usr/local/bin/ |
| bin |
| $ basename /foo/bar.txt .txt |
| bar |
| |
| ------------------------------- |
| |
| =item B<cat> |
| |
| cat [FILE]... |
| |
| Concatenates FILE(s) and prints them to stdout. |
| |
| Example: |
| |
| $ cat /proc/uptime |
| 110716.72 17.67 |
| |
| ------------------------------- |
| |
| =item B<chgrp> |
| |
| chgrp [OPTION]... GROUP FILE... |
| |
| Change the group membership of each FILE to GROUP. |
| |
| Options: |
| |
| -R Changes files and directories recursively. |
| |
| Example: |
| |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo |
| $ chgrp root /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<chmod> |
| |
| chmod [B<-R>] MODE[,MODE]... FILE... |
| |
| Each MODE is one or more of the letters ugoa, one of the |
| symbols +-= and one or more of the letters rwxst. |
| |
| Options: |
| |
| -R Changes files and directories recursively. |
| |
| Example: |
| |
| $ ls -l /tmp/foo |
| -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| $ chmod u+x /tmp/foo |
| $ ls -l /tmp/foo |
| -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo* |
| $ chmod 444 /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<chown> |
| |
| chown [OPTION]... OWNER[<.|:>[GROUP]] FILE... |
| |
| Change the owner and/or group of each FILE to OWNER and/or GROUP. |
| |
| Options: |
| |
| -R Changes files and directories recursively. |
| |
| Example: |
| |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo |
| $ chown root /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo |
| $ chown root.root /tmp/foo |
| ls -l /tmp/foo |
| -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<chroot> |
| |
| chroot NEWROOT [COMMAND...] |
| |
| Run COMMAND with root directory set to NEWROOT. |
| |
| Example: |
| |
| $ ls -l /bin/ls |
| lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox |
| $ mount /dev/hdc1 /mnt -t minix |
| $ chroot /mnt |
| $ ls -l /bin/ls |
| -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls* |
| |
| ------------------------------- |
| |
| =item B<chvt> |
| |
| chvt N |
| |
| Changes the foreground virtual terminal to /dev/ttyN |
| |
| ------------------------------- |
| |
| =item B<clear> |
| |
| clear |
| |
| Clear screen. |
| |
| ------------------------------- |
| |
| =item B<cmp> |
| |
| cmp FILE1 [FILE2] |
| |
| Compare files. |
| |
| ------------------------------- |
| |
| =item B<cp> |
| |
| cp [OPTION]... SOURCE DEST |
| |
| Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. |
| |
| -a Same as -dpR |
| -d Preserves links |
| -p Preserves file attributes if possible |
| -f force (implied; ignored) - always set |
| -R Copies directories recursively |
| |
| ------------------------------- |
| |
| =item B<cut> |
| |
| cut [OPTION]... [FILE]... |
| |
| Prints selected fields from each input FILE to standard output. |
| |
| Options: |
| |
| -b LIST Output only bytes from LIST |
| -c LIST Output only characters from LIST |
| -d CHAR Use CHAR instead of tab as the field delimiter |
| -s Output only the lines containing delimiter |
| -f N Print only these fields |
| -n Ignored |
| |
| Example: |
| |
| $ echo "Hello world" | cut -f 1 -d ' ' |
| Hello |
| $ echo "Hello world" | cut -f 2 -d ' ' |
| world |
| |
| ------------------------------- |
| |
| =item B<date> |
| |
| date [OPTION]... [+FORMAT] |
| |
| Displays the current time in the given FORMAT, or sets the system date. |
| |
| Options: |
| |
| -R Outputs RFC-822 compliant date string |
| -d STRING display time described by STRING, not `now' |
| -s Sets time described by STRING |
| -u Prints or sets Coordinated Universal Time |
| |
| Example: |
| |
| $ date |
| Wed Apr 12 18:52:41 MDT 2000 |
| |
| ------------------------------- |
| |
| =item B<dc> |
| |
| dc expression ... |
| |
| This is a Tiny RPN calculator that understands the |
| following operations: +, -, /, *, and, or, not, eor. |
| i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \* 2 2 + /' -> 16 |
| |
| Example: |
| |
| $ dc 2 2 + |
| 4 |
| $ dc 8 8 * 2 2 + / |
| 16 |
| $ dc 0 1 and |
| 0 |
| $ dc 0 1 or |
| 1 |
| $ echo 72 9 div 8 mul | dc |
| 64 |
| |
| ------------------------------- |
| |
| =item B<dd> |
| |
| dd [if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] |
| [seek=N] [conv=notrunc|sync] |
| |
| Copy a file, converting and formatting according to options |
| |
| if=FILE read from FILE instead of stdin |
| of=FILE write to FILE instead of stdout |
| bs=N read and write N bytes at a time |
| count=N copy only N input blocks |
| skip=N skip N input blocks |
| seek=N skip N output blocks |
| conv=notrunc don't truncate output file |
| conv=sync pad blocks with zeros |
| |
| Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024), |
| MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824). |
| |
| Example: |
| |
| $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4 |
| 4+0 records in |
| 4+0 records out |
| |
| ------------------------------- |
| |
| =item B<deallocvt> |
| |
| deallocvt N |
| |
| Deallocate unused virtual terminal /dev/ttyN |
| |
| ------------------------------- |
| |
| =item B<df> |
| |
| df [B<-hmk>] [filesystem ...] |
| |
| Print the filesystem space used and space available. |
| |
| Options: |
| |
| -h print sizes in human readable format (e.g., 1K 243M 2G ) |
| -m print sizes in megabytes |
| -k print sizes in kilobytes(default) |
| |
| Example: |
| |
| $ df |
| Filesystem 1k-blocks Used Available Use% Mounted on |
| /dev/sda3 8690864 8553540 137324 98% / |
| /dev/sda1 64216 36364 27852 57% /boot |
| $ df /dev/sda3 |
| Filesystem 1k-blocks Used Available Use% Mounted on |
| /dev/sda3 8690864 8553540 137324 98% / |
| |
| ------------------------------- |
| |
| =item B<dirname> |
| |
| dirname [FILENAME ...] |
| |
| Strips non-directory suffix from FILENAME |
| |
| Example: |
| |
| $ dirname /tmp/foo |
| /tmp |
| $ dirname /tmp/foo/ |
| /tmp |
| |
| ------------------------------- |
| |
| =item B<dmesg> |
| |
| dmesg [B<-c>] [B<-n> LEVEL] [B<-s> SIZE] |
| |
| Prints or controls the kernel ring buffer |
| |
| Options: |
| |
| -c Clears the ring buffer's contents after printing |
| -n LEVEL Sets console logging level |
| -s SIZE Use a buffer of size SIZE |
| |
| ------------------------------- |
| |
| =item B<dos2unix> |
| |
| dos2unix [option] [file] |
| |
| Converts a text file to/from dos format to unix format. |
| |
| Options: |
| |
| -u output will be in UNIX format |
| -d output will be in DOS format |
| |
| - when no option is given then input format will be automaticaly detected |
| |
| and converted to the oposite format on output |
| - when no file is given, then stdin is used as input and stdout as output |
| |
| ------------------------------- |
| |
| =item B<dpkg> |
| |
| dpkg [B<-i>|B<-r>|-B<-unpack>|-B<-configure>] my.deb |
| |
| WORK IN PROGRESS, only usefull for debian-installer |
| |
| ------------------------------- |
| |
| =item B<dpkg_deb> |
| |
| dpkg_deb [B<-cefItxX>] file [argument] |
| |
| Perform actions on debian packages (.debs) |
| |
| Options: |
| |
| -c List contents of filesystem tree |
| -e Extract control files to [argument] directory |
| -f Display control field name starting with [argument] |
| -I Display the control filenamed [argument] |
| -t Extract filesystem tree to stdout in tar format |
| -x Exctract packages filesystem tree to directory |
| -X Verbose extract |
| |
| Example: |
| |
| $ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp |
| |
| ------------------------------- |
| |
| =item B<du> |
| |
| du [B<-lshmk>] [FILE]... |
| |
| Summarizes disk space used for each FILE and/or directory. |
| Disk space is printed in units of 1024 bytes. |
| |
| Options: |
| |
| -l count sizes many times if hard linked |
| -s display only a total for each argument |
| -h print sizes in human readable format (e.g., 1K 243M 2G ) |
| -m print sizes in megabytes |
| -k print sizes in kilobytes(default) |
| |
| Example: |
| |
| $ du |
| 16 ./CVS |
| 12 ./kernel-patches/CVS |
| 80 ./kernel-patches |
| 12 ./tests/CVS |
| 36 ./tests |
| 12 ./scripts/CVS |
| 16 ./scripts |
| 12 ./docs/CVS |
| 104 ./docs |
| 2417 . |
| |
| ------------------------------- |
| |
| =item B<dumpkmap> |
| |
| dumpkmap > keymap |
| |
| Prints out a binary keyboard translation table to standard output. |
| |
| Example: |
| |
| $ dumpkmap > keymap |
| |
| ------------------------------- |
| |
| =item B<dutmp> |
| |
| dutmp [FILE] |
| |
| Dump utmp file format (pipe delimited) from FILE |
| or stdin to stdout. (i.e. 'dutmp /var/run/utmp') |
| |
| Example: |
| |
| $ dutmp /var/run/utmp |
| 8|7||si|||0|0|0|955637625|760097|0 |
| 2|0|~|~~|reboot||0|0|0|955637625|782235|0 |
| 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0 |
| 8|125||l4|||0|0|0|955637629|998367|0 |
| 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0 |
| 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0 |
| 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0 |
| |
| ------------------------------- |
| |
| =item B<echo> |
| |
| echo [B<-neE>] [ARG ...] |
| |
| Prints the specified ARGs to stdout |
| |
| Options: |
| |
| -n suppress trailing newline |
| -e interpret backslash-escaped characters (i.e. \t=tab etc) |
| -E disable interpretation of backslash-escaped characters |
| |
| Example: |
| |
| $ echo "Erik is cool" |
| Erik is cool |
| $ echo -e "Erik\nis\ncool" |
| Erik |
| is |
| cool |
| $ echo "Erik |
| is |
| cool" |
| Erik |
| is |
| cool |
| |
| ------------------------------- |
| |
| =item B<env> |
| |
| env [-] [B<-iu>] [name=value ...] [command] |
| |
| Prints the current environment or runs a program after setting |
| up the specified environment. |
| |
| Options: |
| |
| -, -i start with an empty environment |
| -u remove variable from the environment |
| |
| ------------------------------- |
| |
| =item B<expr> |
| |
| expr EXPRESSION |
| |
| Prints the value of EXPRESSION to standard output. |
| |
| EXPRESSION may be: |
| |
| ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2 |
| ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0 |
| ARG1 < ARG2 ARG1 is less than ARG2 |
| ARG1 <= ARG2 ARG1 is less than or equal to ARG2 |
| ARG1 = ARG2 ARG1 is equal to ARG2 |
| ARG1 != ARG2 ARG1 is unequal to ARG2 |
| ARG1 >= ARG2 ARG1 is greater than or equal to ARG2 |
| ARG1 > ARG2 ARG1 is greater than ARG2 |
| ARG1 + ARG2 arithmetic sum of ARG1 and ARG2 |
| ARG1 - ARG2 arithmetic difference of ARG1 and ARG2 |
| ARG1 * ARG2 arithmetic product of ARG1 and ARG2 |
| ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2 |
| ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2 |
| STRING : REGEXP anchored pattern match of REGEXP in STRING |
| match STRING REGEXP same as STRING : REGEXP |
| substr STRING POS LENGTH substring of STRING, POS counted from 1 |
| index STRING CHARS index in STRING where any CHARS is found, |
| or 0 |
| length STRING length of STRING |
| quote TOKEN interpret TOKEN as a string, even if |
| it is a keyword like `match' or an |
| operator like `/' |
| ( EXPRESSION ) value of EXPRESSION |
| |
| Beware that many operators need to be escaped or quoted for shells. |
| Comparisons are arithmetic if both ARGs are numbers, else |
| lexicographical. Pattern matches return the string matched between |
| \( and \) or null; if \( and \) are not used, they return the number |
| of characters matched or 0. |
| |
| ------------------------------- |
| |
| =item B<false> |
| |
| false |
| |
| Return an exit code of FALSE (1). |
| |
| Example: |
| |
| $ false |
| $ echo $? |
| 1 |
| |
| ------------------------------- |
| |
| =item B<fbset> |
| |
| fbset [options] [mode] |
| |
| Show and modify frame buffer settings |
| |
| Example: |
| |
| $ fbset |
| mode "1024x768-76" |
| # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz |
| geometry 1024 768 1024 768 16 |
| timings 12714 128 32 16 4 128 4 |
| accel false |
| rgba 5/11,6/5,5/0,0/0 |
| endmode |
| |
| ------------------------------- |
| |
| =item B<fdflush> |
| |
| fdflush DEVICE |
| |
| Forces floppy disk drive to detect disk change |
| |
| ------------------------------- |
| |
| =item B<find> |
| |
| find [PATH...] [EXPRESSION] |
| |
| Search for files in a directory hierarchy. The default PATH is |
| the current directory; default EXPRESSION is 'B<-print>' |
| |
| EXPRESSION may consist of: |
| |
| -follow Dereference symbolic links. |
| -name PATTERN File name (leading directories removed) matches PATTERN. |
| -print Print (default and assumed). |
| |
| -type X Filetype matches X (where X is one of: f,d,l,b,c,...) |
| -perm PERMS Permissions match any of (+NNN); all of (-NNN); |
| or exactly (NNN) |
| -mtime TIME Modified time is greater than (+N); less than (-N); |
| or exactly (N) days |
| |
| Example: |
| |
| $ find / -name /etc/passwd |
| /etc/passwd |
| |
| ------------------------------- |
| |
| =item B<free> |
| |
| free |
| |
| Displays the amount of free and used system memory |
| |
| Example: |
| |
| $ free |
| total used free shared buffers |
| Mem: 257628 248724 8904 59644 93124 |
| Swap: 128516 8404 120112 |
| Total: 386144 257128 129016 |
| |
| ------------------------------- |
| |
| =item B<freeramdisk> |
| |
| freeramdisk DEVICE |
| |
| Frees all memory used by the specified ramdisk. |
| |
| Example: |
| |
| $ freeramdisk /dev/ram2 |
| |
| ------------------------------- |
| |
| =item B<fsck_minix> |
| |
| fsck_minix [B<-larvsmf>] /dev/name |
| |
| Performs a consistency check for MINIX filesystems. |
| |
| Options: |
| |
| -l Lists all filenames |
| -r Perform interactive repairs |
| -a Perform automatic repairs |
| -v verbose |
| -s Outputs super-block information |
| -m Activates MINIX-like "mode not cleared" warnings |
| -f Force file system check. |
| |
| ------------------------------- |
| |
| =item B<getopt> |
| |
| getopt [OPTIONS]... |
| |
| Parse command options |
| |
| -a, --alternative Allow long options starting with single - |
| -l, --longoptions=longopts Long options to be recognized |
| -n, --name=progname The name under which errors are reported |
| -o, --options=optstring Short options to be recognized |
| -q, --quiet Disable error reporting by getopt(3) |
| -Q, --quiet-output No normal output |
| -s, --shell=shell Set shell quoting conventions |
| -T, --test Test for getopt(1) version |
| -u, --unqote Do not quote the output |
| |
| Example: |
| |
| $ cat getopt.test |
| #!/bin/sh |
| GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \ |
| -n 'example.busybox' -- "$@"` |
| if [ $? != 0 ] ; then exit 1 ; fi |
| eval set -- "$GETOPT" |
| while true ; do |
| case $1 in |
| -a|--a-long) echo "Option a" ; shift ;; |
| -b|--b-long) echo "Option b, argument `$2'" ; shift 2 ;; |
| -c|--c-long) |
| case "$2" in |
| "") echo "Option c, no argument"; shift 2 ;; |
| *) echo "Option c, argument `$2'" ; shift 2 ;; |
| esac ;; |
| --) shift ; break ;; |
| *) echo "Internal error!" ; exit 1 ;; |
| esac |
| done |
| |
| ------------------------------- |
| |
| =item B<grep> |
| |
| grep [B<-ihHnqvs>] pattern [files...] |
| |
| Search for PATTERN in each FILE or standard input. |
| |
| Options: |
| |
| -H prefix output lines with filename where match was found |
| -h suppress the prefixing filename on output |
| -i ignore case distinctions |
| -l list names of files that match |
| -n print line number with output lines |
| -q be quiet. Returns 0 if result was found, 1 otherwise |
| -v select non-matching lines |
| -s suppress file open/read error messages |
| |
| Example: |
| |
| $ grep root /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| $ grep ^[rR]oo. /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| |
| ------------------------------- |
| |
| =item B<gunzip> |
| |
| gunzip [OPTION]... FILE |
| |
| Uncompress FILE (or standard input if FILE is '-'). |
| |
| Options: |
| |
| -c Write output to standard output |
| -t Test compressed file integrity |
| |
| Example: |
| |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz |
| $ gunzip /tmp/BusyBox-0.43.tar.gz |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar |
| |
| ------------------------------- |
| |
| =item B<gzip> |
| |
| gzip [OPTION]... FILE |
| |
| Compress FILE with maximum compression. |
| When FILE is '-', reads standard input. Implies B<-c>. |
| |
| Options: |
| |
| -c Write output to standard output instead of FILE.gz |
| -d decompress |
| |
| Example: |
| |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar |
| $ gzip /tmp/BusyBox-0.43.tar |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz |
| |
| ------------------------------- |
| |
| =item B<halt> |
| |
| halt |
| |
| Halt the system. |
| |
| ------------------------------- |
| |
| =item B<head> |
| |
| head [OPTION] [FILE]... |
| |
| Print first 10 lines of each FILE to standard output. |
| With more than one FILE, precede each with a header giving the |
| file name. With no FILE, or when FILE is -, read standard input. |
| |
| Options: |
| |
| -n NUM Print first NUM lines instead of first 10 |
| |
| Example: |
| |
| $ head -n 2 /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| daemon:x:1:1:daemon:/usr/sbin:/bin/sh |
| |
| ------------------------------- |
| |
| =item B<hostid> |
| |
| hostid |
| |
| Print out a unique 32-bit identifier for the machine. |
| |
| ------------------------------- |
| |
| =item B<hostname> |
| |
| hostname [OPTION] {hostname | B<-F> file} |
| |
| Get or set the hostname or DNS domain name. If a hostname is given |
| (or a file with the B<-F> parameter), the host name will be set. |
| |
| Options: |
| |
| -s Short |
| -i Addresses for the hostname |
| -d DNS domain name |
| -F, --file FILE Use the contents of FILE to specify the hostname |
| |
| Example: |
| |
| $ hostname |
| slag |
| |
| ------------------------------- |
| |
| =item B<id> |
| |
| id [OPTIONS]... [USERNAME] |
| |
| Print information for USERNAME or the current user |
| |
| Options: |
| |
| -g prints only the group ID |
| -u prints only the user ID |
| -n print a name instead of a number (with for -ug) |
| -r prints the real user ID instead of the effective ID (with -ug) |
| |
| Example: |
| |
| $ id |
| uid=1000(andersen) gid=1000(andersen) |
| |
| ------------------------------- |
| |
| =item B<ifconfig> |
| |
| ifconfig [B<-a>] <interface> [<address>] |
| |
| configure a network interface |
| |
| Options: |
| |
| [[-]broadcast [<address>]] [[-]pointopoint [<address>]] |
| [netmask <address>] [dstaddr <address>] |
| [outfill <NN>] [keepalive <NN>] |
| [hw ether <address>] [metric <NN>] [mtu <NN>] |
| [[-]trailers] [[-]arp] [[-]allmulti] |
| [multicast] [[-]promisc] [txqueuelen <NN>] [[-]dynamic] |
| [mem_start <NN>] [io_addr <NN>] [irq <NN>] |
| [up|down] ... |
| |
| ------------------------------- |
| |
| =item B<init> |
| |
| init |
| |
| Init is the parent of all processes. |
| |
| This version of init is designed to be run only by the kernel. |
| |
| BusyBox init doesn't support multiple runlevels. The runlevels field of |
| the /etc/inittab file is completely ignored by BusyBox init. If you want |
| runlevels, use sysvinit. |
| |
| BusyBox init works just fine without an inittab. If no inittab is found, |
| it has the following default behavior: |
| |
| ::sysinit:/etc/init.d/rcS |
| ::askfirst:/bin/sh |
| ::ctrlaltdel:/sbin/reboot |
| ::shutdown:/sbin/swapoff -a |
| ::shutdown:/bin/umount -a -r |
| |
| if it detects that /dev/console is _not_ a serial console, it will also run: |
| |
| tty2::askfirst:/bin/sh |
| tty3::askfirst:/bin/sh |
| tty4::askfirst:/bin/sh |
| |
| If you choose to use an /etc/inittab file, the inittab entry format is as follows: |
| |
| <id>:<runlevels>:<action>:<process> |
| |
| <id>: |
| |
| WARNING: This field has a non-traditional meaning for BusyBox init! |
| The id field is used by BusyBox init to specify the controlling tty for |
| the specified process to run on. The contents of this field are |
| appended to "/dev/" and used as-is. There is no need for this field to |
| be unique, although if it isn't you may have strange results. If this |
| field is left blank, the controlling tty is set to the console. Also |
| note that if BusyBox detects that a serial console is in use, then only |
| entries whose controlling tty is either the serial console or /dev/null |
| will be run. BusyBox init does nothing with utmp. We don't need no |
| stinkin' utmp. |
| |
| <runlevels>: |
| |
| The runlevels field is completely ignored. |
| |
| <action>: |
| |
| Valid actions include: sysinit, respawn, askfirst, wait, |
| once, ctrlaltdel, and shutdown. |
| |
| The available actions can be classified into two groups: actions |
| that are run only once, and actions that are re-run when the specified |
| process exits. |
| |
| Run only-once actions: |
| |
| 'sysinit' is the first item run on boot. init waits until all |
| sysinit actions are completed before continuing. Following the |
| completion of all sysinit actions, all 'wait' actions are run. |
| 'wait' actions, like 'sysinit' actions, cause init to wait until |
| the specified task completes. 'once' actions are asyncronous, |
| therefore, init does not wait for them to complete. 'ctrlaltdel' |
| actions are run when the system detects that someone on the system |
| console has pressed the CTRL-ALT-DEL key combination. Typically one |
| wants to run 'reboot' at this point to cause the system to reboot. |
| Finally the 'shutdown' action specifies the actions to taken when |
| init is told to reboot. Unmounting filesystems and disabling swap |
| is a very good here |
| |
| Run repeatedly actions: |
| |
| 'respawn' actions are run after the 'once' actions. When a process |
| started with a 'respawn' action exits, init automatically restarts |
| it. Unlike sysvinit, BusyBox init does not stop processes from |
| respawning out of control. The 'askfirst' actions acts just like |
| respawn, except that before running the specified process it |
| displays the line "Please press Enter to activate this console." |
| and then waits for the user to press enter before starting the |
| specified process. |
| |
| Unrecognized actions (like initdefault) will cause init to emit an |
| error message, and then go along with its business. All actions are |
| run in the reverse order from how they appear in /etc/inittab. |
| |
| <process>: |
| |
| Specifies the process to be executed and it's command line. |
| |
| Example /etc/inittab file: |
| |
| # This is run first except when booting in single-user mode. |
| # |
| ::sysinit:/etc/init.d/rcS |
| |
| # /bin/sh invocations on selected ttys |
| # |
| # Start an "askfirst" shell on the console (whatever that may be) |
| ::askfirst:-/bin/sh |
| # Start an "askfirst" shell on /dev/tty2-4 |
| tty2::askfirst:-/bin/sh |
| tty3::askfirst:-/bin/sh |
| tty4::askfirst:-/bin/sh |
| |
| # /sbin/getty invocations for selected ttys |
| # |
| tty4::respawn:/sbin/getty 38400 tty5 |
| tty5::respawn:/sbin/getty 38400 tty6 |
| |
| |
| # Example of how to put a getty on a serial line (for a terminal) |
| # |
| #::respawn:/sbin/getty -L ttyS0 9600 vt100 |
| #::respawn:/sbin/getty -L ttyS1 9600 vt100 |
| # |
| # Example how to put a getty on a modem line. |
| #::respawn:/sbin/getty 57600 ttyS2 |
| |
| # Stuff to do before rebooting |
| ::ctrlaltdel:/sbin/reboot |
| ::shutdown:/bin/umount -a -r |
| ::shutdown:/sbin/swapoff -a |
| |
| |
| ------------------------------- |
| |
| =item B<insmod> |
| |
| insmod [OPTION]... MODULE [symbol=value]... |
| |
| Loads the specified kernel modules into the kernel. |
| |
| Options: |
| |
| -f Force module to load into the wrong kernel version. |
| -k Make module autoclean-able. |
| -v verbose output |
| -L Lock to prevent simultaneous loads of a module |
| -x do not export externs |
| |
| ------------------------------- |
| |
| =item B<kill> |
| |
| kill [B<-signal>] process-id [process-id ...] |
| |
| Send a signal (default is SIGTERM) to the specified process(es). |
| |
| Options: |
| |
| -l List all signal names and numbers. |
| |
| Example: |
| |
| $ ps | grep apache |
| 252 root root S [apache] |
| 263 www-data www-data S [apache] |
| 264 www-data www-data S [apache] |
| 265 www-data www-data S [apache] |
| 266 www-data www-data S [apache] |
| 267 www-data www-data S [apache] |
| $ kill 252 |
| |
| ------------------------------- |
| |
| =item B<killall> |
| |
| killall [B<-signal>] process-name [process-name ...] |
| |
| Send a signal (default is SIGTERM) to the specified process(es). |
| |
| Options: |
| |
| -l List all signal names and numbers. |
| |
| Example: |
| |
| $ killall apache |
| |
| ------------------------------- |
| |
| =item B<klogd> |
| |
| klogd B<-n> |
| |
| Kernel logger. |
| Options: |
| |
| -n Run as a foreground process. |
| |
| ------------------------------- |
| |
| =item B<length> |
| |
| length STRING |
| |
| Prints out the length of the specified STRING. |
| |
| Example: |
| |
| $ length Hello |
| 5 |
| |
| ------------------------------- |
| |
| =item B<ln> |
| |
| ln [OPTION] TARGET... LINK_NAME|DIRECTORY |
| |
| Create a link named LINK_NAME or DIRECTORY to the specified TARGET |
| |
| You may use '--' to indicate that all following arguments are non-options. |
| |
| Options: |
| |
| -s make symbolic links instead of hard links |
| -f remove existing destination files |
| -n no dereference symlinks - treat like normal file |
| |
| Example: |
| |
| $ ln -s BusyBox /tmp/ls |
| $ ls -l /tmp/ls |
| lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox* |
| |
| ------------------------------- |
| |
| =item B<loadacm> |
| |
| loadacm < mapfile |
| |
| Loads an acm from standard input. |
| |
| Example: |
| |
| $ loadacm < /etc/i18n/acmname |
| |
| ------------------------------- |
| |
| =item B<loadfont> |
| |
| loadfont < font |
| |
| Loads a console font from standard input. |
| |
| Example: |
| |
| $ loadfont < /etc/i18n/fontname |
| |
| ------------------------------- |
| |
| =item B<loadkmap> |
| |
| loadkmap < keymap |
| |
| Loads a binary keyboard translation table from standard input. |
| |
| Example: |
| |
| $ loadkmap < /etc/i18n/lang-keymap |
| |
| ------------------------------- |
| |
| =item B<logger> |
| |
| logger [OPTION]... [MESSAGE] |
| |
| Write MESSAGE to the system log. If MESSAGE is omitted, log stdin. |
| |
| Options: |
| |
| -s Log to stderr as well as the system log. |
| -t Log using the specified tag (defaults to user name). |
| -p Enter the message with the specified priority. |
| This may be numerical or a ``facility.level'' pair. |
| |
| Example: |
| |
| $ logger "hello" |
| |
| ------------------------------- |
| |
| =item B<logname> |
| |
| logname |
| |
| Print the name of the current user. |
| |
| Example: |
| |
| $ logname |
| root |
| |
| ------------------------------- |
| |
| =item B<logread> |
| |
| logread |
| |
| Shows the messages from syslogd (using circular buffer). |
| |
| ------------------------------- |
| |
| =item B<ls> |
| |
| ls [B<-1AacCdeFilnpLRrSsTtuvwxXhk>] [filenames...] |
| |
| List directory contents |
| |
| Options: |
| |
| -1 list files in a single column |
| -A do not list implied . and .. |
| -a do not hide entries starting with . |
| -C list entries by columns |
| -c with -l: show ctime |
| -d list directory entries instead of contents |
| -e list both full date and full time |
| -F append indicator (one of */=@|) to entries |
| -i list the i-node for each file |
| -l use a long listing format |
| -n list numeric UIDs and GIDs instead of names |
| -p append indicator (one of /=@|) to entries |
| -L list entries pointed to by symbolic links |
| -R list subdirectories recursively |
| -r sort the listing in reverse order |
| -S sort the listing by file size |
| -s list the size of each file, in blocks |
| -T NUM assume Tabstop every NUM columns |
| -t with -l: show modification time |
| -u with -l: show access time |
| -v sort the listing by version |
| -w NUM assume the terminal is NUM columns wide |
| -x list entries by lines instead of by columns |
| -X sort the listing by extension |
| -h print sizes in human readable format (e.g., 1K 243M 2G ) |
| -k print sizes in kilobytes(default) |
| |
| ------------------------------- |
| |
| =item B<lsmod> |
| |
| lsmod |
| |
| List the currently loaded kernel modules. |
| |
| ------------------------------- |
| |
| =item B<makedevs> |
| |
| makedevs NAME TYPE MAJOR MINOR FIRST LAST [s] |
| |
| Creates a range of block or character special files |
| |
| TYPEs include: |
| |
| b: Make a block (buffered) device. |
| c or u: Make a character (un-buffered) device. |
| p: Make a named pipe. MAJOR and MINOR are ignored for named pipes. |
| |
| FIRST specifies the number appended to NAME to create the first device. |
| LAST specifies the number of the last item that should be created. |
| If 's' is the last argument, the base device is created as well. |
| |
| For example: |
| |
| makedevs /dev/ttyS c 4 66 2 63 -> ttyS2-ttyS63 |
| makedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8 |
| |
| Example: |
| |
| $ makedevs /dev/ttyS c 4 66 2 63 |
| [creates ttyS2-ttyS63] |
| $ makedevs /dev/hda b 3 0 0 8 s |
| [creates hda,hda1-hda8] |
| |
| ------------------------------- |
| |
| =item B<md5sum> |
| |
| md5sum [OPTION] [FILE]... |
| or: md5sum [OPTION] B<-c> [FILE] |
| |
| Print or check MD5 checksums. |
| |
| Options: |
| With no FILE, or when FILE is -, read standard input. |
| |
| -b read files in binary mode |
| -c check MD5 sums against given list |
| -t read files in text mode (default) |
| -g read a string |
| |
| The following two options are useful only when verifying checksums: |
| |
| -s don't output anything, status code shows success |
| -w warn about improperly formated MD5 checksum lines |
| |
| Example: |
| |
| $ md5sum < busybox |
| 6fd11e98b98a58f64ff3398d7b324003 |
| $ md5sum busybox |
| 6fd11e98b98a58f64ff3398d7b324003 busybox |
| $ md5sum -c - |
| 6fd11e98b98a58f64ff3398d7b324003 busybox |
| busybox: OK |
| ^D |
| |
| ------------------------------- |
| |
| =item B<mkdir> |
| |
| mkdir [OPTION] DIRECTORY... |
| |
| Create the DIRECTORY(ies), if they do not already exist |
| |
| Options: |
| |
| -m set permission mode (as in chmod), not rwxrwxrwx - umask |
| -p no error if existing, make parent directories as needed |
| |
| Example: |
| |
| $ mkdir /tmp/foo |
| $ mkdir /tmp/foo |
| /tmp/foo: File exists |
| $ mkdir /tmp/foo/bar/baz |
| /tmp/foo/bar/baz: No such file or directory |
| $ mkdir -p /tmp/foo/bar/baz |
| |
| ------------------------------- |
| |
| =item B<mkfifo> |
| |
| mkfifo [OPTIONS] name |
| |
| Creates a named pipe (identical to 'mknod name p') |
| |
| Options: |
| |
| -m create the pipe using the specified mode (default a=rw) |
| |
| ------------------------------- |
| |
| =item B<mkfs_minix> |
| |
| mkfs_minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks] |
| |
| Make a MINIX filesystem. |
| |
| Options: |
| |
| -c Check the device for bad blocks |
| -n [14|30] Specify the maximum length of filenames |
| -i INODES Specify the number of inodes for the filesystem |
| -l FILENAME Read the bad blocks list from FILENAME |
| -v Make a Minix version 2 filesystem |
| |
| ------------------------------- |
| |
| =item B<mknod> |
| |
| mknod [OPTIONS] NAME TYPE MAJOR MINOR |
| |
| Create a special file (block, character, or pipe). |
| |
| Options: |
| |
| -m create the special file using the specified mode (default a=rw) |
| |
| TYPEs include: |
| |
| b: Make a block (buffered) device. |
| c or u: Make a character (un-buffered) device. |
| p: Make a named pipe. MAJOR and MINOR are ignored for named pipes. |
| |
| Example: |
| |
| $ mknod /dev/fd0 b 2 0 |
| $ mknod -m 644 /tmp/pipe p |
| |
| ------------------------------- |
| |
| =item B<mkswap> |
| |
| mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count] |
| |
| Prepare a disk partition to be used as a swap partition. |
| |
| Options: |
| |
| -c Check for read-ability. |
| -v0 Make version 0 swap [max 128 Megs]. |
| -v1 Make version 1 swap [big!] (default for kernels > |
| 2.1.117). |
| block-count Number of block to use (default is entire partition). |
| |
| ------------------------------- |
| |
| =item B<mktemp> |
| |
| mktemp [B<-q>] TEMPLATE |
| |
| Creates a temporary file with its name based on TEMPLATE. |
| TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX). |
| |
| Example: |
| |
| $ mktemp /tmp/temp.XXXXXX |
| /tmp/temp.mWiLjM |
| $ ls -la /tmp/temp.mWiLjM |
| -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM |
| |
| ------------------------------- |
| |
| =item B<more> |
| |
| more [FILE ...] |
| |
| More is a filter for viewing FILE one screenful at a time. |
| |
| Example: |
| |
| $ dmesg | more |
| |
| ------------------------------- |
| |
| =item B<mount> |
| |
| mount [flags] device directory [B<-o> options,more-options] |
| |
| Mount a filesystem |
| |
| Flags: |
| |
| -a: Mount all filesystems in fstab. |
| -f: "Fake" Add entry to mount table but don't mount it. |
| -n: Don't write a mount table entry. |
| -o option: One of many filesystem options, listed below. |
| -r: Mount the filesystem read-only. |
| -t fs-type: Specify the filesystem type. |
| -w: Mount for reading and writing (default). |
| |
| Options for use with the "B<-o>" flag: |
| |
| async/sync: Writes are asynchronous / synchronous. |
| atime/noatime: Enable / disable updates to inode access times. |
| dev/nodev: Allow use of special device files / disallow them. |
| exec/noexec: Allow use of executable files / disallow them. |
| loop: Mounts a file via loop device. |
| suid/nosuid: Allow set-user-id-root programs / disallow them. |
| remount: Re-mount a mounted filesystem, changing its flags. |
| ro/rw: Mount for read-only / read-write. |
| |
| There are EVEN MORE flags that are specific to each filesystem. |
| You'll have to see the written documentation for those. |
| |
| Example: |
| |
| $ mount |
| /dev/hda3 on / type minix (rw) |
| proc on /proc type proc (rw) |
| devpts on /dev/pts type devpts (rw) |
| $ mount /dev/fd0 /mnt -t msdos -o ro |
| $ mount /tmp/diskimage /opt -t ext2 -o loop |
| |
| ------------------------------- |
| |
| =item B<mt> |
| |
| mt [B<-f> device] opcode value |
| |
| Control magnetic tape drive operation |
| |
| Available Opcodes: |
| |
| bsf bsfm bsr bss datacompression drvbuffer eof eom erase |
| fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2 |
| ras3 reset retension rew rewoffline seek setblk setdensity |
| setpart tell unload unlock weof wset |
| |
| ------------------------------- |
| |
| =item B<mv> |
| |
| mv SOURCE DEST |
| or: mv SOURCE... DIRECTORY |
| |
| Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. |
| |
| Example: |
| |
| $ mv /tmp/foo /bin/bar |
| |
| ------------------------------- |
| |
| =item B<nc> |
| |
| nc [IP] [port] |
| |
| Netcat opens a pipe to IP:port |
| |
| Example: |
| |
| $ nc foobar.somedomain.com 25 |
| 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600 |
| help |
| 214-Commands supported: |
| 214- HELO EHLO MAIL RCPT DATA AUTH |
| 214 NOOP QUIT RSET HELP |
| quit |
| 221 foobar closing connection |
| |
| ------------------------------- |
| |
| =item B<nslookup> |
| |
| nslookup [HOST] |
| |
| Queries the nameserver for the IP address of the given HOST |
| |
| Example: |
| |
| $ nslookup localhost |
| Server: default |
| Address: default |
| |
| Name: debian |
| Address: 127.0.0.1 |
| |
| ------------------------------- |
| |
| =item B<ping> |
| |
| ping [OPTION]... host |
| |
| Send ICMP ECHO_REQUEST packets to network hosts. |
| |
| Options: |
| |
| -c COUNT Send only COUNT pings. |
| -s SIZE Send SIZE data bytes in packets (default=56). |
| -q Quiet mode, only displays output at start |
| and when finished. |
| |
| Example: |
| |
| $ ping localhost |
| PING slag (127.0.0.1): 56 data bytes |
| 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms |
| |
| --- debian ping statistics --- |
| 1 packets transmitted, 1 packets received, 0% packet loss |
| round-trip min/avg/max = 20.1/20.1/20.1 ms |
| |
| ------------------------------- |
| |
| =item B<pivot_root> |
| |
| pivot_root new_root put_old |
| |
| Move the current root file system to put_old and make new_root |
| the new root file system. |
| |
| ------------------------------- |
| |
| =item B<poweroff> |
| |
| poweroff |
| |
| Halt the system and request that the kernel shut off the power. |
| |
| ------------------------------- |
| |
| =item B<printf> |
| |
| printf FORMAT [ARGUMENT...] |
| |
| Formats and prints ARGUMENT(s) according to FORMAT, |
| Where FORMAT controls the output exactly as in C printf. |
| |
| Example: |
| |
| $ printf "Val=%d\n" 5 |
| Val=5 |
| |
| ------------------------------- |
| |
| =item B<ps> |
| |
| ps |
| |
| Report process status |
| |
| This version of ps accepts no options. |
| |
| Example: |
| |
| $ ps |
| PID Uid Gid State Command |
| 1 root root S init |
| 2 root root S [kflushd] |
| 3 root root S [kupdate] |
| 4 root root S [kpiod] |
| 5 root root S [kswapd] |
| 742 andersen andersen S [bash] |
| 743 andersen andersen S -bash |
| 745 root root S [getty] |
| 2990 andersen andersen R ps |
| |
| ------------------------------- |
| |
| =item B<pwd> |
| |
| pwd |
| |
| Print the full filename of the current working directory. |
| |
| Example: |
| |
| $ pwd |
| /root |
| |
| ------------------------------- |
| |
| =item B<rdate> |
| |
| rdate [OPTION] HOST |
| |
| Get and possibly set the system date and time from a remote HOST. |
| |
| Options: |
| |
| -s Set the system date and time (default). |
| -p Print the date and time. |
| |
| ------------------------------- |
| |
| =item B<readlink> |
| |
| readlink |
| |
| Read a symbolic link. |
| |
| ------------------------------- |
| |
| =item B<reboot> |
| |
| reboot |
| |
| Reboot the system. |
| |
| ------------------------------- |
| |
| =item B<renice> |
| |
| renice priority pid [pid ...] |
| |
| Changes priority of running processes. Allowed priorities range |
| from 20 (the process runs only when nothing else is running) to 0 |
| (default priority) to B<-20> (almost nothing else ever gets to run). |
| |
| ------------------------------- |
| |
| =item B<reset> |
| |
| reset |
| |
| Resets the screen. |
| |
| ------------------------------- |
| |
| =item B<rm> |
| |
| rm [OPTION]... FILE... |
| |
| Remove (unlink) the FILE(s). You may use '--' to |
| indicate that all following arguments are non-options. |
| |
| Options: |
| |
| -i always prompt before removing each destinations |
| -f remove existing destinations, never prompt |
| -r or -R remove the contents of directories recursively |
| |
| Example: |
| |
| $ rm -rf /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<rmdir> |
| |
| rmdir [OPTION]... DIRECTORY... |
| |
| Remove the DIRECTORY(ies), if they are empty. |
| |
| Example: |
| |
| # rmdir /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<rmmod> |
| |
| rmmod [OPTION]... [MODULE]... |
| |
| Unloads the specified kernel modules from the kernel. |
| |
| Options: |
| |
| -a Try to remove all unused kernel modules. |
| |
| Example: |
| |
| $ rmmod tulip |
| |
| ------------------------------- |
| |
| =item B<route> |
| |
| route [{add|del|flush}] |
| |
| Edit the kernel's routing tables |
| |
| ------------------------------- |
| |
| =item B<rpmunpack> |
| |
| rpmunpack < package.rpm | gunzip | cpio B<-idmuv> |
| |
| Extracts an rpm archive. |
| |
| ------------------------------- |
| |
| =item B<sed> |
| |
| sed [B<-Vhnef>] pattern [files...] |
| |
| Options: |
| |
| -n suppress automatic printing of pattern space |
| -e script add the script to the commands to be executed |
| -f scriptfile add the contents of script-file to the commands to be executed |
| -h display this help message |
| |
| If no B<-e> or B<-f> is given, the first non-option argument is taken as the |
| sed script to interpret. All remaining arguments are names of input |
| files; if no input files are specified, then the standard input is read. |
| |
| Example: |
| |
| $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g' |
| bar |
| |
| ------------------------------- |
| |
| =item B<setkeycodes> |
| |
| setkeycodes SCANCODE KEYCODE ... |
| |
| Set entries into the kernel's scancode-to-keycode map, |
| allowing unusual keyboards to generate usable keycodes. |
| |
| SCANCODE may be either xx or e0xx (hexadecimal), |
| and KEYCODE is given in decimal |
| |
| Example: |
| |
| $ setkeycodes e030 127 |
| |
| ------------------------------- |
| |
| =item B<sh> |
| |
| sh [FILE]... |
| or: sh B<-c> command [args]... |
| |
| lash: The BusyBox LAme SHell (command interpreter) |
| |
| This command does not yet have proper documentation. |
| |
| Use lash just as you would use any other shell. It properly handles pipes, |
| redirects, job control, can be used as the shell for scripts, and has a |
| sufficient set of builtins to do what is needed. It does not (yet) support |
| Bourne Shell syntax. If you need things like "if-then-else", "while", and such |
| use ash or bash. If you just need a very simple and extremely small shell, |
| this will do the job. |
| |
| ------------------------------- |
| |
| =item B<sleep> |
| |
| sleep N |
| |
| Pause for N seconds. |
| |
| Example: |
| |
| $ sleep 2 |
| [2 second delay results] |
| |
| ------------------------------- |
| |
| =item B<sort> |
| |
| sort [B<-nru>] [FILE]... |
| |
| Sorts lines of text in the specified files |
| |
| Options: |
| |
| -u suppress duplicate lines |
| -r sort in reverse order |
| -n sort numerics |
| |
| Example: |
| |
| $ echo -e "e\nf\nb\nd\nc\na" | sort |
| a |
| b |
| c |
| d |
| e |
| f |
| |
| ------------------------------- |
| |
| =item B<stty> |
| |
| stty [B<-a>|g] [B<-F> device] [SETTING]... |
| |
| Without arguments, prints baud rate, line discipline, |
| and deviations from stty sane. |
| |
| Options: |
| |
| -F device open device instead of stdin |
| -a print all current settings in human-readable form |
| -g print in stty-readable form |
| [SETTING] see documentation |
| |
| ------------------------------- |
| |
| =item B<swapoff> |
| |
| swapoff [OPTION] [device] |
| |
| Stop swapping virtual memory pages on the given device. |
| |
| Options: |
| |
| -a Stop swapping on all swap devices |
| |
| ------------------------------- |
| |
| =item B<swapon> |
| |
| swapon [OPTION] [device] |
| |
| Start swapping virtual memory pages on the given device. |
| |
| Options: |
| |
| -a Start swapping on all swap devices |
| |
| ------------------------------- |
| |
| =item B<sync> |
| |
| sync |
| |
| Write all buffered filesystem blocks to disk. |
| |
| ------------------------------- |
| |
| =item B<syslogd> |
| |
| syslogd [OPTION]... |
| |
| Linux system and kernel logging utility. |
| Note that this version of syslogd ignores /etc/syslog.conf. |
| |
| Options: |
| |
| -m NUM Interval between MARK lines (default=20min, 0=off) |
| -n Run as a foreground process |
| -O FILE Use an alternate log file (default=/var/log/messages) |
| -R HOST[:PORT] Log to IP or hostname on PORT (default PORT=514/UDP) |
| -L Log locally and via network logging (default is network only) |
| |
| Example: |
| |
| $ syslogd -R masterlog:514 |
| $ syslogd -R 192.168.1.1:601 |
| |
| ------------------------------- |
| |
| =item B<tail> |
| |
| tail [OPTION]... [FILE]... |
| |
| Print last 10 lines of each FILE to standard output. |
| With more than one FILE, precede each with a header giving the |
| file name. With no FILE, or when FILE is -, read standard input. |
| |
| Options: |
| |
| -c N[kbm] output the last N bytes |
| -n N[kbm] print last N lines instead of last 10 |
| -f output data as the file grows |
| -q never output headers giving file names |
| -s SEC wait SEC seconds between reads with -f |
| -v always output headers giving file names |
| |
| If the first character of N (bytes or lines) is a '+', output begins with |
| the Nth item from the start of each file, otherwise, print the last N items |
| in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2). |
| |
| Example: |
| |
| $ tail -n 1 /etc/resolv.conf |
| nameserver 10.0.0.1 |
| |
| ------------------------------- |
| |
| =item B<tar> |
| |
| tar -[cxtvO] [-B<-exclude> File] [B<-X> File][B<-f> tarFile] [FILE(s)] ... |
| |
| Create, extract, or list files from a tar file. |
| |
| Main operation mode: |
| |
| c create |
| x extract |
| t list |
| |
| File selection: |
| |
| f name of tarfile or "-" for stdin |
| O extract to stdout |
| exclude file to exclude |
| X file with names to exclude |
| |
| Informative output: |
| |
| v verbosely list files processed |
| |
| Example: |
| |
| $ zcat /tmp/tarball.tar.gz | tar -xf - |
| $ tar -cf /tmp/tarball.tar /usr/local |
| |
| ------------------------------- |
| |
| =item B<tee> |
| |
| tee [OPTION]... [FILE]... |
| |
| Copy standard input to each FILE, and also to standard output. |
| |
| Options: |
| |
| -a append to the given FILEs, do not overwrite |
| |
| Example: |
| |
| $ echo "Hello" | tee /tmp/foo |
| $ cat /tmp/foo |
| Hello |
| |
| ------------------------------- |
| |
| =item B<telnet> |
| |
| telnet host [port] |
| |
| Telnet is used to establish interactive communication with another |
| computer over a network using the TELNET protocol. |
| |
| ------------------------------- |
| |
| =item B<test> |
| |
| test EXPRESSION |
| or [ EXPRESSION ] |
| |
| Checks file types and compares values returning an exit |
| code determined by the value of EXPRESSION. |
| |
| Example: |
| |
| $ test 1 -eq 2 |
| $ echo $? |
| 1 |
| $ test 1 -eq 1 |
| $ echo $? |
| 0 |
| $ [ -d /etc ] |
| $ echo $? |
| 0 |
| $ [ -d /junk ] |
| $ echo $? |
| 1 |
| |
| ------------------------------- |
| |
| =item B<tftp> |
| |
| tftp command SOURCE DEST |
| |
| Transfers a file from/to a tftp server using "octet" mode. |
| |
| Commands: |
| |
| get Get file from server SOURCE and store to local DEST. |
| put Put local file SOURCE to server DEST. |
| |
| When naming a server, use the syntax "server:file". |
| |
| ------------------------------- |
| |
| =item B<touch> |
| |
| touch [B<-c>] file [file ...] |
| |
| Update the last-modified date on the given file[s]. |
| |
| Options: |
| |
| -c Do not create any files |
| |
| Example: |
| |
| $ ls -l /tmp/foo |
| /bin/ls: /tmp/foo: No such file or directory |
| $ touch /tmp/foo |
| $ ls -l /tmp/foo |
| -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo |
| |
| ------------------------------- |
| |
| =item B<tr> |
| |
| tr [B<-cds>] STRING1 [STRING2] |
| |
| Translate, squeeze, and/or delete characters from |
| standard input, writing to standard output. |
| |
| Options: |
| |
| -c take complement of STRING1 |
| -d delete input characters coded STRING1 |
| -s squeeze multiple output characters of STRING2 into one character |
| |
| Example: |
| |
| $ echo "gdkkn vnqkc" | tr [a-y] [b-z] |
| hello world |
| |
| ------------------------------- |
| |
| =item B<true> |
| |
| true |
| |
| Return an exit code of TRUE (0). |
| |
| Example: |
| |
| $ true |
| $ echo $? |
| 0 |
| |
| ------------------------------- |
| |
| =item B<tty> |
| |
| tty |
| |
| Print the file name of the terminal connected to standard input. |
| |
| Options: |
| |
| -s print nothing, only return an exit status |
| |
| Example: |
| |
| $ tty |
| /dev/tty2 |
| |
| ------------------------------- |
| |
| =item B<umount> |
| |
| umount [flags] filesystem|directory |
| |
| Unmount file systems |
| |
| Flags: |
| |
| -a Unmount all file systems in /etc/mtab |
| -n Don't erase /etc/mtab entries |
| -r Try to remount devices as read-only if mount is busy |
| -f Force filesystem umount (i.e. unreachable NFS server) |
| -l Do not free loop device (if a loop device has been used) |
| |
| Example: |
| |
| $ umount /dev/hdc1 |
| |
| ------------------------------- |
| |
| =item B<uname> |
| |
| uname [OPTION]... |
| |
| Print certain system information. With no OPTION, same as B<-s>. |
| |
| Options: |
| |
| -a print all information |
| -m the machine (hardware) type |
| -n print the machine's network node hostname |
| -r print the operating system release |
| -s print the operating system name |
| -p print the host processor type |
| -v print the operating system version |
| |
| Example: |
| |
| $ uname -a |
| Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown |
| |
| ------------------------------- |
| |
| =item B<uniq> |
| |
| uniq [OPTION]... [INPUT [OUTPUT]] |
| |
| Discard all but one of successive identical lines from INPUT |
| (or standard input), writing to OUTPUT (or standard output). |
| |
| Options: |
| |
| -c prefix lines by the number of occurrences |
| -d only print duplicate lines |
| -u only print unique lines |
| |
| Example: |
| |
| $ echo -e "a\na\nb\nc\nc\na" | sort | uniq |
| a |
| b |
| c |
| |
| ------------------------------- |
| |
| =item B<unix2dos> |
| |
| unix2dos [option] [file] |
| |
| See 'dos2unix -B<-help>' for help! |
| |
| ------------------------------- |
| |
| =item B<update> |
| |
| update [options] |
| |
| Periodically flushes filesystem buffers. |
| |
| Options: |
| |
| -S force use of sync(2) instead of flushing |
| -s SECS call sync this often (default 30) |
| -f SECS flush some buffers this often (default 5) |
| |
| ------------------------------- |
| |
| =item B<uptime> |
| |
| uptime |
| |
| Display the time since the last boot. |
| |
| Example: |
| |
| $ uptime |
| 1:55pm up 2:30, load average: 0.09, 0.04, 0.00 |
| |
| ------------------------------- |
| |
| =item B<usleep> |
| |
| usleep N |
| |
| Pause for N microseconds. |
| |
| Example: |
| |
| $ usleep 1000000 |
| [pauses for 1 second] |
| |
| ------------------------------- |
| |
| =item B<uudecode> |
| |
| uudecode [FILE]... |
| |
| Uudecode a file that is uuencoded. |
| |
| Options: |
| |
| -o FILE direct output to FILE |
| |
| Example: |
| |
| $ uudecode -o busybox busybox.uu |
| $ ls -l busybox |
| -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox |
| |
| ------------------------------- |
| |
| =item B<uuencode> |
| |
| uuencode [OPTION] [INFILE] REMOTEFILE |
| |
| Uuencode a file. |
| |
| Options: |
| |
| -m use base64 encoding as of RFC1521 |
| |
| Example: |
| |
| $ uuencode busybox busybox |
| begin 755 busybox |
| <encoded file snipped> |
| $ uudecode busybox busybox > busybox.uu |
| $ |
| |
| ------------------------------- |
| |
| =item B<vi> |
| |
| vi [OPTION] [FILE]... |
| |
| edit FILE. |
| |
| Options: |
| |
| -R Read-only- do not write to the file. |
| |
| ------------------------------- |
| |
| =item B<watchdog> |
| |
| watchdog DEV |
| |
| Periodically write to watchdog device DEV |
| |
| ------------------------------- |
| |
| =item B<wc> |
| |
| wc [OPTION]... [FILE]... |
| |
| Print line, word, and byte counts for each FILE, and a total line if |
| more than one FILE is specified. With no FILE, read standard input. |
| |
| Options: |
| |
| -c print the byte counts |
| -l print the newline counts |
| -L print the length of the longest line |
| -w print the word counts |
| |
| Example: |
| |
| $ wc /etc/passwd |
| 31 46 1365 /etc/passwd |
| |
| ------------------------------- |
| |
| =item B<wget> |
| |
| wget [B<-c>] [B<-q>] [B<-O> file] url |
| |
| wget retrieves files via HTTP or FTP |
| |
| Options: |
| |
| -c continue retrieval of aborted transfers |
| -q quiet mode - do not print |
| -O save to filename ('-' for stdout) |
| |
| ------------------------------- |
| |
| =item B<which> |
| |
| which [COMMAND ...] |
| |
| Locates a COMMAND. |
| |
| Example: |
| |
| $ which login |
| /bin/login |
| |
| ------------------------------- |
| |
| =item B<whoami> |
| |
| whoami |
| |
| Prints the user name associated with the current effective user id. |
| |
| ------------------------------- |
| |
| =item B<xargs> |
| |
| xargs [COMMAND] [ARGS...] |
| |
| Executes COMMAND on every item given by standard input. |
| |
| Example: |
| |
| $ ls | xargs gzip |
| $ find . -name '*.c' -print | xargs rm |
| |
| ------------------------------- |
| |
| =item B<yes> |
| |
| yes [OPTION]... [STRING]... |
| |
| Repeatedly outputs a line with all specified STRING(s), or 'y'. |
| |
| ------------------------------- |
| |
| =item B<zcat> |
| |
| zcat FILE |
| |
| Uncompress to stdout. |
| |
| ------------------------------- |
| |
| =back |
| |
| =head1 LIBC NSS |
| |
| GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C |
| library for the local environment, and to configure how it reads system data, |
| such as passwords and group information. BusyBox has made it Policy that it |
| will never use NSS, and will never use and libc calls that make use of NSS. |
| This allows you to run an embedded system without the need for installing an |
| /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed. |
| |
| If you are using a system that is using a remote LDAP server for authentication |
| via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the |
| BusyBox source. Chances are though, that if you have enough space to install |
| of that stuff on your system, then you probably want the full GNU utilities. |
| |
| =head1 SEE ALSO |
| |
| textutils(1), shellutils(1), etc... |
| |
| =head1 MAINTAINER |
| |
| Erik Andersen <andersee@debian.org> <andersen@lineo.com> |
| |
| =head1 AUTHORS |
| |
| The following people have contributed code to BusyBox whether |
| they know it or not. |
| |
| |
| =for html <br> |
| |
| Erik Andersen <andersen@lineo.com>, <andersee@debian.org> |
| |
| Tons of new stuff, major rewrite of most of the |
| core apps, tons of new apps as noted in header files. |
| |
| =for html <br> |
| |
| John Beppu <beppu@lineo.com> |
| |
| du, head, nslookup, sort, tee, uniq (so Kraai could rewrite them ;-), |
| documentation |
| |
| =for html <br> |
| |
| Edward Betts <edward@debian.org> |
| |
| expr, hostid, logname, tty, wc, whoami, yes |
| |
| =for html <br> |
| |
| Brian Candler <B.Candler@pobox.com> |
| |
| tiny-ls(ls) |
| |
| =for html <br> |
| |
| Randolph Chung <tausq@debian.org> |
| |
| fbset, ping, hostname, and mkfifo |
| |
| =for html <br> |
| |
| Dave Cinege <dcinege@psychosis.com> |
| |
| more(v2), makedevs, dutmp, modularization, auto links file, |
| various fixes, Linux Router Project maintenance |
| |
| =for html <br> |
| |
| Larry Doolittle <ldoolitt@recycle.lbl.gov> |
| |
| various fixes, shell rewrite |
| |
| =for html <br> |
| |
| Karl M. Hegbloom <karlheg@debian.org> |
| |
| cp_mv.c, the test suite, various fixes to utility.c, &c. |
| |
| =for html <br> |
| |
| Sterling Huxley <sterling@europa.com> |
| |
| vi (!!!) |
| |
| =for html <br> |
| |
| Daniel Jacobowitz <dan@debian.org> |
| |
| mktemp.c |
| |
| =for html <br> |
| |
| Matt Kraai <kraai@alumni.carnegiemellon.edu> |
| |
| documentation, bugfixes |
| |
| =for html <br> |
| |
| John Lombardo <john@deltanet.com> |
| |
| dirname, tr |
| |
| =for html <br> |
| |
| Glenn McGrath <bug1@netconnect.com.au> |
| |
| ar.c |
| |
| =for html <br> |
| |
| Vladimir Oleynik <dzo@simtreas.ru> |
| |
| cmdedit, stty-port, locale, various fixes |
| and irreconcilable critic of everything not perfect. |
| |
| =for html <br> |
| |
| Bruce Perens <bruce@pixar.com> |
| |
| Original author of BusyBox. His code is still in many apps. |
| |
| =for html <br> |
| |
| Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com> |
| |
| wget - Contributed by permission of Covad Communications |
| |
| =for html <br> |
| |
| Pavel Roskin <proski@gnu.org> |
| |
| Lots of bugs fixes and patches. |
| |
| =for html <br> |
| |
| Gyepi Sam <gyepi@praxis-sw.com> |
| |
| Remote logging feature for syslogd |
| |
| =for html <br> |
| |
| Linus Torvalds <torvalds@transmeta.com> |
| |
| mkswap, fsck.minix, mkfs.minix |
| |
| =for html <br> |
| |
| Mark Whitley <markw@lineo.com> |
| |
| sed remix, bug fixes, style-guide, etc. |
| |
| =for html <br> |
| |
| Charles P. Wright <cpwright@villagenet.com> |
| |
| gzip, mini-netcat(nc) |
| |
| =for html <br> |
| |
| Enrique Zanardi <ezanardi@ull.es> |
| |
| tarcat (since removed), loadkmap, various fixes, Debian maintenance |
| |
| =cut |
| |
| # $Id: busybox.pod,v 1.102 2001/04/17 23:57:23 beppu Exp $ |