mirror of
https://github.com/sheumann/hush.git
synced 2024-12-23 05:29:58 +00:00
2186 lines
45 KiB
Plaintext
2186 lines
45 KiB
Plaintext
# 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<--help> option to provide a
|
|
terse runtime description of their behavior.
|
|
|
|
=head1 COMMANDS
|
|
|
|
Currently defined functions include:
|
|
|
|
ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date, dc,
|
|
dd, deallocvt, df, dirname, dmesg, dos2unix, du, dumpkmap, dutmp, echo, false,
|
|
fbset, fdflush, find, free, freeramdisk, fsck.minix, getopt, grep, gunzip,
|
|
gzip, halt, head, hostid, hostname, id, init, insmod, kill, killall, length,
|
|
ln, loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
|
|
mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc, nslookup,
|
|
ping, poweroff, printf, ps, pwd, rdate, reboot, renice, reset, rm, rmdir,
|
|
rmmod, sed, setkeycodes, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
|
|
tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, unix2dos,
|
|
unrpm, update, uptime, usleep, uudecode, uuencode, wc, which, whoami, yes,
|
|
zcat, [
|
|
|
|
-------------------------------
|
|
|
|
=over 4
|
|
|
|
=item ar
|
|
|
|
Usage: ar [optxvV] 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
|
|
|
|
-------------------------------
|
|
|
|
=item basename
|
|
|
|
Usage: 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 cat
|
|
|
|
Usage: cat [FILE ...]
|
|
|
|
Concatenates FILE(s) and prints them to the standard output.
|
|
|
|
Example:
|
|
|
|
$ cat /proc/uptime
|
|
110716.72 17.67
|
|
|
|
-------------------------------
|
|
|
|
=item chgrp
|
|
|
|
Usage: chgrp [OPTION]... GROUP FILE...
|
|
|
|
Change the group membership of each FILE to GROUP.
|
|
|
|
Options:
|
|
|
|
-R change 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 chmod
|
|
|
|
Usage: chmod [B<-R>] MODE[,MODE]... FILE...
|
|
|
|
Changes file access permissions for the specified FILE(s) (or directories).
|
|
Each MODE is defined by combining the letters for WHO has access to the file,
|
|
an OPERATOR for selecting how the permissions should be changed, and a
|
|
PERMISSION for FILE(s) (or directories).
|
|
|
|
WHO may be chosen from
|
|
|
|
u User who owns the file
|
|
g Users in the file's Group
|
|
o Other users not in the file's group
|
|
a All users
|
|
|
|
OPERATOR may be chosen from
|
|
|
|
+ Add a permission
|
|
- Remove a permission
|
|
= Assign a permission
|
|
|
|
PERMISSION may be chosen from
|
|
|
|
r Read
|
|
w Write
|
|
x Execute (or access for directories)
|
|
s Set user (or group) ID bit
|
|
t Sticky bit (for directories prevents removing files by non-owners)
|
|
|
|
Alternately, permissions can be set numerically where the first three
|
|
numbers are calculated by adding the octal values, such as
|
|
|
|
4 Read
|
|
2 Write
|
|
1 Execute
|
|
|
|
An optional fourth digit can also be used to specify
|
|
|
|
4 Set user ID
|
|
2 Set group ID
|
|
1 Sticky bit
|
|
|
|
Options:
|
|
|
|
-R Change 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 chown
|
|
|
|
Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE...
|
|
|
|
Changes 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 chroot
|
|
|
|
Usage: 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 chvt
|
|
|
|
Usage: chvt N
|
|
|
|
Changes the foreground virtual terminal to /dev/ttyN
|
|
|
|
-------------------------------
|
|
|
|
=item clear
|
|
|
|
Clears the screen.
|
|
|
|
-------------------------------
|
|
|
|
=item cp
|
|
|
|
Usage: cp [OPTION]... SOURCE DEST
|
|
|
|
or: cp [OPTION]... SOURCE... DIRECTORY
|
|
|
|
Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
|
|
|
|
Options:
|
|
|
|
-a Same as -dpR
|
|
-d Preserves links
|
|
-p Preserves file attributes if possible
|
|
-R Copies directories recursively
|
|
|
|
-------------------------------
|
|
|
|
=item cut
|
|
|
|
Usage: 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 date
|
|
|
|
Usage: date [OPTION]... [+FORMAT]
|
|
|
|
or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
|
|
|
|
Displays the current time in the given FORMAT, or sets the system date.
|
|
|
|
Options:
|
|
|
|
-R Outputs RFC-822 compliant date string
|
|
-s Sets time described by STRING
|
|
-u Prints or sets Coordinated Universal Time
|
|
|
|
Example:
|
|
|
|
$ date
|
|
Wed Apr 12 18:52:41 MDT 2000
|
|
|
|
-------------------------------
|
|
|
|
=item dc
|
|
|
|
Usage: dc expression ...
|
|
|
|
This is a Tiny RPN calculator that understands the
|
|
following operations: +, -, /, *, and, or, not, eor.
|
|
If no arguments are given, dc will process input from STDIN.
|
|
|
|
The behaviour of BusyBox/dc deviates (just a little ;-) from
|
|
GNU/dc, but this will be remedied in the future.
|
|
|
|
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 dd
|
|
|
|
Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
|
|
|
|
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
|
|
|
|
Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
|
|
|
|
Example:
|
|
|
|
$ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
|
|
4+0 records in
|
|
4+0 records out
|
|
|
|
-------------------------------
|
|
|
|
=item deallocvt
|
|
|
|
Usage: deallocvt N
|
|
|
|
Deallocates unused virtual terminal /dev/ttyN
|
|
|
|
-------------------------------
|
|
|
|
=item df
|
|
|
|
Usage: df [filesystem ...]
|
|
|
|
Prints the filesystem space used and space available.
|
|
|
|
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 dirname
|
|
|
|
Usage: dirname NAME
|
|
|
|
Strip non-directory suffix from file name
|
|
|
|
Example:
|
|
|
|
$ dirname /tmp/foo
|
|
/tmp
|
|
$ dirname /tmp/foo/
|
|
/tmp
|
|
|
|
-------------------------------
|
|
|
|
=item dmesg
|
|
|
|
Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
|
|
|
|
Print or controls the kernel ring buffer.
|
|
|
|
-------------------------------
|
|
|
|
=item dos2unix
|
|
|
|
Usage: dos2unix < dosfile > unixfile
|
|
|
|
Converts a text file from dos format to unix format.
|
|
|
|
-------------------------------
|
|
|
|
=item du
|
|
|
|
Usage: du [OPTION]... [FILE]...
|
|
|
|
Summarize disk space used for each FILE and/or directory.
|
|
Disk space is printed in units of 1k (i.e. 1024 bytes).
|
|
|
|
Options:
|
|
|
|
-l count sizes many times if hard linked
|
|
-s display only a total for each argument
|
|
|
|
Example:
|
|
|
|
$ ./BusyBox 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 dumpkmap
|
|
|
|
Usage: dumpkmap
|
|
|
|
Prints out a binary keyboard translation table to standard input.
|
|
|
|
Example:
|
|
|
|
$ dumpkmap > keymap
|
|
|
|
-------------------------------
|
|
|
|
=item dutmp
|
|
|
|
Usage: dutmp [FILE]
|
|
|
|
Dump utmp file format (pipe delimited) from FILE
|
|
or stdin to stdout.
|
|
|
|
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 echo
|
|
|
|
Usage: echo [-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\nis\ncool"
|
|
Erik\nis\ncool
|
|
|
|
-------------------------------
|
|
|
|
=item echo
|
|
|
|
|
|
Usage: 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 false
|
|
|
|
Returns an exit code of FALSE (1)
|
|
|
|
Example:
|
|
|
|
$ false
|
|
$ echo $?
|
|
1
|
|
|
|
-------------------------------
|
|
|
|
=item fbset
|
|
|
|
Usage: fbset [options] [mode]
|
|
|
|
Show and modify frame buffer device settings
|
|
|
|
Options:
|
|
|
|
-h
|
|
-fb
|
|
-db
|
|
-a
|
|
-i
|
|
-g
|
|
-t
|
|
-accel
|
|
-hsync
|
|
-vsync
|
|
-laced
|
|
-double
|
|
|
|
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 fdflush
|
|
|
|
Usage: fdflush device
|
|
|
|
Force floppy disk drive to detect disk change
|
|
|
|
-------------------------------
|
|
|
|
=item find
|
|
|
|
Usage: find [PATH...] [EXPRESSION]
|
|
|
|
Search for files in a directory hierarchy. The default PATH is
|
|
the current directory; default EXPRESSION is '-print'
|
|
|
|
|
|
EXPRESSION may consist of:
|
|
|
|
-follow Dereference symbolic links.
|
|
-name PATTERN File name (leading directories removed) matches PATTERN.
|
|
-print print the full file name followed by a newline to stdout.
|
|
|
|
Example:
|
|
|
|
$ find / -name /etc/passwd
|
|
/etc/passwd
|
|
|
|
-------------------------------
|
|
|
|
=item free
|
|
|
|
Usage: 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 freeramdisk
|
|
|
|
Usage: freeramdisk DEVICE
|
|
|
|
Frees all memory used by the specified ramdisk.
|
|
|
|
Example:
|
|
|
|
$ freeramdisk /dev/ram2
|
|
|
|
-------------------------------
|
|
|
|
=item fsck.minix
|
|
|
|
Usage: 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 getopt
|
|
|
|
Usage: getopt [OPTIONS]...
|
|
|
|
Parse command options
|
|
|
|
Options:
|
|
|
|
-a, --alternative Allow long options starting with single -\n"
|
|
-l, --longoptions=longopts Long options to be recognized\n"
|
|
-n, --name=progname The name under which errors are reported\n"
|
|
-o, --options=optstring Short options to be recognized\n"
|
|
-q, --quiet Disable error reporting by getopt(3)\n"
|
|
-Q, --quiet-output No normal output\n"
|
|
-s, --shell=shell Set shell quoting conventions\n"
|
|
-T, --test Test for getopt(1) version\n"
|
|
-u, --unqote Do not quote the output\n"
|
|
|
|
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 grep
|
|
|
|
Usage: grep [OPTIONS]... PATTERN [FILE]...
|
|
|
|
Search for PATTERN in each FILE or standard input.
|
|
|
|
Options:
|
|
|
|
-h suppress the prefixing filename on output
|
|
-i ignore case distinctions
|
|
-n print line number with output lines
|
|
-q be quiet. Returns 0 if result was found, 1 otherwise
|
|
-v select non-matching lines
|
|
|
|
This version of grep matches full regular expressions.
|
|
|
|
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 gunzip
|
|
|
|
Usage: 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 gzip
|
|
|
|
Usage: 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
|
|
|
|
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 halt
|
|
|
|
Usage: halt
|
|
|
|
This command halts the system.
|
|
|
|
-------------------------------
|
|
|
|
=item head
|
|
|
|
Usage: 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 hostid
|
|
|
|
Usage: hostid
|
|
|
|
Prints out a unique 32-bit identifier for the current
|
|
machine. The 32-bit identifier is intended to be unique
|
|
among all UNIX systems in existence.
|
|
|
|
-------------------------------
|
|
|
|
=item hostname
|
|
|
|
Usage: 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 Use the contents of FILE to specify the hostname
|
|
|
|
Example:
|
|
|
|
$ hostname
|
|
slag
|
|
|
|
-------------------------------
|
|
|
|
=item id
|
|
|
|
Print information for USERNAME or the current user
|
|
|
|
Options:
|
|
|
|
-g prints only the group ID
|
|
-u prints only the user ID
|
|
-r prints the real user ID instead of the effective ID (with -ug)
|
|
|
|
Example:
|
|
|
|
$ id
|
|
uid=1000(andersen) gid=1000(andersen)
|
|
|
|
-------------------------------
|
|
|
|
=item init
|
|
|
|
Usage: 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
|
|
|
|
if it detects that /dev/console is _not_ a serial console, it will also run:
|
|
|
|
tty2::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, it is completely ignored. Also note that if
|
|
BusyBox detects that a serial console is in use, then all entries
|
|
containing non-empty id fields will _not_ 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, and ctrlaltdel.
|
|
|
|
askfirst acts just like respawn, but 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.
|
|
|
|
<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)
|
|
#
|
|
#ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
|
|
#ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
|
|
#
|
|
# Example how to put a getty on a modem line.
|
|
#ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
|
|
|
|
# Stuff to do before rebooting
|
|
::ctrlaltdel:/bin/umount -a -r
|
|
::ctrlaltdel:/sbin/swapoff -a
|
|
|
|
-------------------------------
|
|
|
|
=item insmod
|
|
|
|
Usage: 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
|
|
-x do not export externs
|
|
|
|
-------------------------------
|
|
|
|
=item kill
|
|
|
|
Usage: 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 killall
|
|
|
|
Usage: 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 length
|
|
|
|
Usage: length STRING
|
|
|
|
Prints out the length of the specified STRING.
|
|
|
|
Example:
|
|
|
|
$ length "Hello"
|
|
5
|
|
|
|
-------------------------------
|
|
|
|
=item ln
|
|
|
|
Usage: 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
|
|
|
|
Example:
|
|
|
|
$ ln -s BusyBox /tmp/ls
|
|
$ ls -l /tmp/ls
|
|
lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox*
|
|
|
|
-------------------------------
|
|
|
|
=item loadacm
|
|
|
|
Usage: loadacm
|
|
|
|
Loads an acm from standard input.
|
|
|
|
Example:
|
|
|
|
$ loadacm < /etc/i18n/acmname
|
|
|
|
-------------------------------
|
|
|
|
=item loadfont
|
|
|
|
Usage: loadfont
|
|
|
|
Loads a console font from standard input.
|
|
|
|
Example:
|
|
|
|
$ loadfont < /etc/i18n/fontname
|
|
|
|
-------------------------------
|
|
|
|
=item loadkmap
|
|
|
|
Usage: loadkmap
|
|
|
|
Loads a binary keyboard translation table from standard input.
|
|
|
|
Example:
|
|
|
|
$ loadkmap < /etc/i18n/lang-keymap
|
|
|
|
-------------------------------
|
|
|
|
=item logger
|
|
|
|
Usage: logger [OPTION]... [MESSAGE]
|
|
|
|
Write MESSAGE to the system log. If MESSAGE is '-', 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 logname
|
|
|
|
Usage: logname
|
|
|
|
Print the name of the current user.
|
|
|
|
Example:
|
|
|
|
$ logname
|
|
root
|
|
|
|
-------------------------------
|
|
|
|
=item ls
|
|
|
|
Usage: ls [B<-1acdelnpuxACFR>] [filenames...]
|
|
|
|
Options:
|
|
|
|
-a do not hide entries starting with .
|
|
-c with -l: show ctime (the time of last
|
|
modification of file status information)
|
|
-d list directory entries instead of contents
|
|
-e list both full date and full time
|
|
-l use a long listing format
|
|
-n list numeric UIDs and GIDs instead of names
|
|
-p append indicator (one of /=@|) to entries
|
|
-u with -l: show access time (the time of last
|
|
access of the file)
|
|
-x list entries by lines instead of by columns
|
|
-A do not list implied . and ..
|
|
-C list entries by columns
|
|
-F append indicator (one of */=@|) to entries
|
|
-R list subdirectories recursively
|
|
|
|
-------------------------------
|
|
|
|
=item lsmod
|
|
|
|
Usage: lsmod
|
|
|
|
Shows a list of all currently loaded kernel modules.
|
|
|
|
-------------------------------
|
|
|
|
=item makedevs
|
|
|
|
Usage: 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.
|
|
|
|
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 md5sum
|
|
|
|
Usage: md5sum [OPTION] [file ...]
|
|
|
|
Print or check MD5 checksums.
|
|
|
|
Options:
|
|
|
|
-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 busybox
|
|
$ md5sum -c -
|
|
6fd11e98b98a58f64ff3398d7b324003 busybox
|
|
busybox: OK
|
|
^D
|
|
|
|
-------------------------------
|
|
|
|
=item mkdir
|
|
|
|
Usage: 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 directory exists, 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 mkfifo
|
|
|
|
Usage: 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 mkfs.minix
|
|
|
|
Usage: 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 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 mknod
|
|
|
|
Usage: 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 mkswap
|
|
|
|
Usage: 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 mktemp
|
|
|
|
Usage: 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 more
|
|
|
|
Usage: more [file ...]
|
|
|
|
More is a filter for paging through text one screenful at a time.
|
|
|
|
Example:
|
|
|
|
$ dmesg | more
|
|
|
|
-------------------------------
|
|
|
|
=item mount
|
|
|
|
Usage: mount [flags]
|
|
mount [flags] device directory [B<-o> options,more-options]
|
|
|
|
Flags:
|
|
|
|
-a: Mount all file systems in fstab.
|
|
-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 currently-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 mt
|
|
|
|
Usage: mt [B<-f> device] opcode value
|
|
|
|
Control magnetic tape drive operation
|
|
|
|
-------------------------------
|
|
|
|
=item mv
|
|
|
|
Usage: mv SOURCE DEST
|
|
|
|
or: mv SOURCE... DIRECTORY
|
|
|
|
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
|
|
|
|
Example:
|
|
|
|
$ mv /tmp/foo /bin/bar
|
|
|
|
-------------------------------
|
|
|
|
=item nc
|
|
|
|
Usage: 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 nslookup
|
|
|
|
Usage: 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 ping
|
|
|
|
Usage: 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 poweroff
|
|
|
|
Shuts down the system, and requests that the kernel turn off power upon halting.
|
|
|
|
-------------------------------
|
|
|
|
=item printf
|
|
|
|
Usage: printf format [argument...]
|
|
|
|
Formats and prints the given data in a manner similar to the C printf command.
|
|
|
|
Example:
|
|
|
|
$ printf "Val=%d\n" 5
|
|
Val=5
|
|
|
|
-------------------------------
|
|
|
|
=item ps
|
|
|
|
Usage: 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 pwd
|
|
|
|
Prints the full filename of the current working directory.
|
|
|
|
Example:
|
|
|
|
$ pwd
|
|
/root
|
|
|
|
-------------------------------
|
|
|
|
=item rdate
|
|
|
|
Usage: 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 reboot
|
|
|
|
Instructs the kernel to reboot the system.
|
|
|
|
-------------------------------
|
|
|
|
=item renice
|
|
|
|
Usage: 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 -20 (almost nothing else ever gets to run).
|
|
|
|
-------------------------------
|
|
|
|
=item reset
|
|
|
|
Usage: reset
|
|
|
|
Resets the screen.
|
|
|
|
-------------------------------
|
|
|
|
=item rm
|
|
|
|
Usage: rm [OPTION]... FILE...
|
|
|
|
Remove (unlink) the FILE(s). You may use '--' to
|
|
indicate that all following arguments are non-options.
|
|
|
|
Options:
|
|
|
|
-f remove existing destinations, never prompt
|
|
-r or -R remove the contents of directories recursively
|
|
|
|
Example:
|
|
|
|
$ rm -rf /tmp/foo
|
|
|
|
-------------------------------
|
|
|
|
=item rmdir
|
|
|
|
Usage: rmdir [OPTION]... DIRECTORY...
|
|
|
|
Remove the DIRECTORY(ies), if they are empty.
|
|
|
|
Example:
|
|
|
|
# rmdir /tmp/foo
|
|
|
|
-------------------------------
|
|
|
|
=item rmmod
|
|
|
|
Usage: rmmod [OPTION]... [MODULE]...
|
|
|
|
Unloads the specified kernel modules from the kernel.
|
|
|
|
Options:
|
|
|
|
-a Try to remove all unused kernel modules.
|
|
|
|
Example:
|
|
|
|
$ rmmod tulip
|
|
|
|
-------------------------------
|
|
|
|
=item sed
|
|
|
|
Usage: sed [B<-n>] B<-e> script [file...]
|
|
|
|
Allowed sed scripts come in the following form:
|
|
|
|
'ADDR [!] COMMAND'
|
|
|
|
where address ADDR can be:
|
|
NUMBER Match specified line number
|
|
$ Match last line
|
|
/REGEXP/ Match specified regexp
|
|
(! inverts the meaning of the match)
|
|
|
|
and COMMAND can be:
|
|
s/regexp/replacement/[igp]
|
|
which attempt to match regexp against the pattern space
|
|
and if successful replaces the matched portion with replacement.
|
|
|
|
aTEXT
|
|
which appends TEXT after the pattern space
|
|
|
|
Options:
|
|
|
|
-e add the script to the commands to be executed
|
|
-n suppress automatic printing of pattern space
|
|
|
|
This version of sed matches full regular expressions.
|
|
|
|
Example:
|
|
|
|
$ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
|
|
bar
|
|
|
|
-------------------------------
|
|
|
|
=item setkeycodes
|
|
|
|
Usage: 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 sh
|
|
|
|
Usage: sh
|
|
|
|
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 (#!/bin/sh), 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 sleep
|
|
|
|
Usage: sleep N
|
|
|
|
Pause for N seconds.
|
|
|
|
Example:
|
|
|
|
$ sleep 2
|
|
[2 second delay results]
|
|
|
|
-------------------------------
|
|
|
|
=item sort
|
|
|
|
Usage: sort [B<-n>] [B<-r>] [FILE]...
|
|
|
|
Sorts lines of text in the specified files
|
|
|
|
Example:
|
|
|
|
$ echo -e "e\nf\nb\nd\nc\na" | sort
|
|
a
|
|
b
|
|
c
|
|
d
|
|
e
|
|
f
|
|
|
|
-------------------------------
|
|
|
|
=item swapoff
|
|
|
|
Usage: swapoff [OPTION] [device]
|
|
|
|
Stop swapping virtual memory pages on the given device.
|
|
|
|
Options:
|
|
|
|
-a Stop swapping on all swap devices
|
|
|
|
-------------------------------
|
|
|
|
=item swapon
|
|
|
|
Usage: swapon [OPTION] [device]
|
|
|
|
Start swapping virtual memory pages on the given device.
|
|
|
|
Options:
|
|
|
|
-a Start swapping on all swap devices
|
|
|
|
-------------------------------
|
|
|
|
=item sync
|
|
|
|
Usage: sync
|
|
|
|
Write all buffered filesystem blocks to disk.
|
|
|
|
-------------------------------
|
|
|
|
=item syslogd
|
|
|
|
Usage: syslogd [OPTION]...
|
|
|
|
Linux system and kernel (provides klogd) logging utility.
|
|
Note that this version of syslogd/klogd ignores /etc/syslog.conf.
|
|
|
|
Options:
|
|
|
|
-m NUM Interval between MARK lines (default=20min, 0=off)
|
|
-n Run as a foreground process
|
|
-K Do not start up the klogd process
|
|
-O FILE Use an alternate log file (default=/var/log/messages)
|
|
-R HOST[:PORT] Log messages to HOST on PORT (default=514) over UDP.
|
|
|
|
Example:
|
|
|
|
$ syslogd -R masterlog:514
|
|
$ syslogd -R 192.168.1.1:601
|
|
|
|
-------------------------------
|
|
|
|
=item tail
|
|
|
|
Usage: 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:
|
|
|
|
-n NUM Print last NUM lines instead of first 10
|
|
-f Output data as the file grows. This version
|
|
of 'tail -f' supports only one file at a time.
|
|
|
|
Example:
|
|
|
|
$ tail -n 1 /etc/resolv.conf
|
|
nameserver 10.0.0.1
|
|
|
|
-------------------------------
|
|
|
|
=item tar
|
|
|
|
Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
|
|
|
|
Create, extract, or list files from a tar file. Note that
|
|
this version of tar treats hard links as separate files.
|
|
|
|
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
|
|
|
|
Informative output:
|
|
|
|
v verbosely list files processed
|
|
|
|
Example:
|
|
|
|
$ zcat /tmp/tarball.tar.gz | tar -xf -
|
|
$ tar -cf /tmp/tarball.tar /usr/local
|
|
|
|
-------------------------------
|
|
|
|
=item tee
|
|
|
|
Usage: 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 telnet
|
|
|
|
Usage: telnet host [port]
|
|
|
|
Telnet is used to establish interactive communication with another
|
|
computer over a network using the TELNET protocol.
|
|
|
|
-------------------------------
|
|
|
|
=item test, [
|
|
|
|
Usage: 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 touch
|
|
|
|
Usage: touch [B<-c>] file [file ...]
|
|
|
|
Update the last-modified date on (or create) the selected file[s].
|
|
|
|
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 tr
|
|
|
|
Usage: tr [-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 true
|
|
|
|
Returns an exit code of TRUE (0)
|
|
|
|
Example:
|
|
|
|
$ true
|
|
$ echo $?
|
|
0
|
|
|
|
-------------------------------
|
|
|
|
=item tty
|
|
|
|
Usage: 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 umount
|
|
|
|
Usage: umount [flags] filesystem|directory
|
|
|
|
Flags:
|
|
|
|
-a: Unmount all file systems
|
|
-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 uname
|
|
|
|
Usage: 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 uniq
|
|
|
|
Usage: uniq [OPTION]... [INPUT [OUTPUT]]
|
|
|
|
Discard all but one of successive identical lines from INPUT
|
|
(or standard input), writing to OUTPUT (or standard output).
|
|
|
|
Example:
|
|
|
|
$ echo -e "a\na\nb\nc\nc\na" | sort | uniq
|
|
a
|
|
b
|
|
c
|
|
|
|
-------------------------------
|
|
|
|
=item unix2dos
|
|
|
|
Usage: unix2dos < unixfile > dosfile
|
|
|
|
Converts a text file from unix format to dos format.
|
|
|
|
-------------------------------
|
|
|
|
=item unrpm
|
|
|
|
Usage: unrpm < package.rpm | gzip B<-d> | cpio -idmuv
|
|
|
|
Extracts an rpm archive.
|
|
|
|
-------------------------------
|
|
|
|
=item update
|
|
|
|
Usage: 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 uptime
|
|
|
|
Usage: uptime
|
|
|
|
Tells how long the system has been running since boot.
|
|
|
|
Example:
|
|
|
|
$ uptime
|
|
1:55pm up 2:30, load average: 0.09, 0.04, 0.00
|
|
|
|
-------------------------------
|
|
|
|
=item usleep
|
|
|
|
Usage: usleep N
|
|
|
|
Pauses for N microseconds.
|
|
|
|
Example:
|
|
|
|
$ usleep 1000000
|
|
[pauses for 1 second]
|
|
|
|
-------------------------------
|
|
|
|
=item uuencode
|
|
|
|
Usage: uuencode [OPTION] [INFILE] REMOTEFILE
|
|
|
|
Uuencode a file.
|
|
|
|
Options:
|
|
|
|
-m use base64 encoding as of RFC1521
|
|
|
|
Example:
|
|
|
|
$ uuencode busybox busybox
|
|
begin 755 busybox
|
|
M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&
|
|
.....
|
|
$ uudecode busybox busybox > busybox.uu
|
|
$
|
|
|
|
-------------------------------
|
|
|
|
=item uudecode
|
|
|
|
Usage: uudecode [OPTION] [FILE]
|
|
|
|
Uudecode a uuencoded file
|
|
|
|
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 wc
|
|
|
|
Usage: 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 which
|
|
|
|
Usage: which [COMMAND ...]
|
|
|
|
Locates a COMMAND.
|
|
|
|
Example:
|
|
|
|
$ which login
|
|
/bin/login
|
|
|
|
-------------------------------
|
|
|
|
=item whoami
|
|
|
|
Usage: whoami
|
|
|
|
Prints the user name associated with the current effective user id.
|
|
|
|
Example:
|
|
|
|
$ whoami
|
|
andersen
|
|
|
|
-------------------------------
|
|
|
|
=item yes
|
|
|
|
Usage: yes [OPTION]... [STRING]...
|
|
|
|
Repeatedly outputs a line with all specified STRING(s), or `y'.
|
|
|
|
-------------------------------
|
|
|
|
=item zcat
|
|
|
|
This is essentially an alias for invoking "gunzip B<-c>", where
|
|
it decompresses the file in question and send the output 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.
|
|
|
|
Erik Andersen <andersee@debian.org>
|
|
|
|
=for html <br>
|
|
|
|
John Beppu <beppu@lineo.com>
|
|
|
|
=for html <br>
|
|
|
|
Brian Candler <B.Candler@pobox.com>
|
|
|
|
=for html <br>
|
|
|
|
Randolph Chung <tausq@debian.org>
|
|
|
|
=for html <br>
|
|
|
|
Dave Cinege <dcinege@psychosis.com>
|
|
|
|
=for html <br>
|
|
|
|
Karl M. Hegbloom <karlheg@debian.org>
|
|
|
|
=for html <br>
|
|
|
|
John Lombardo <john@deltanet.com>
|
|
|
|
=for html <br>
|
|
|
|
Glenn McGrath <bug1@netconnect.com.au>
|
|
|
|
=for html <br>
|
|
|
|
Bruce Perens <bruce@perens.com>
|
|
|
|
=for html <br>
|
|
|
|
Pavel Roskin <proski@gnu.org>
|
|
|
|
=for html <br>
|
|
|
|
Linus Torvalds <torvalds@transmeta.com>
|
|
|
|
=for html <br>
|
|
|
|
Mark Whitley <markw@lineo.com>
|
|
|
|
=for html <br>
|
|
|
|
Charles P. Wright <cpwright@villagenet.com>
|
|
|
|
=for html <br>
|
|
|
|
Enrique Zanardi <ezanardi@ull.es>
|
|
|
|
=for html <br>
|
|
|
|
=cut
|
|
|
|
# $Id: busybox.pod,v 1.70 2000/09/21 02:06:35 andersen Exp $
|