Remember to delete un-expandable variables, and do a better job of expanding
[oweals/busybox.git] / docs / busybox.pod
1 # vi: set sw=4 ts=4:
2
3 =head1 NAME
4
5 BusyBox - The Swiss Army Knife of Embedded Linux
6
7 =head1 SYNTAX
8
9  BusyBox <function> [arguments...]  # or
10
11  <function> [arguments...]          # if symlinked
12
13 =head1 DESCRIPTION
14
15 BusyBox combines tiny versions of many common UNIX utilities into a single
16 small executable. It provides minimalist replacements for most of the utilities
17 you usually find in fileutils, shellutils, findutils, textutils, grep, gzip,
18 tar, etc.  BusyBox provides a fairly complete POSIX environment for any small
19 or embedded system.  The utilities in BusyBox generally have fewer options than
20 their full-featured GNU cousins; however, the options that are included provide
21 the expected functionality and behave very much like their GNU counterparts. 
22
23 BusyBox has been written with size-optimization and limited resources in mind.
24 It is also extremely modular so you can easily include or exclude commands (or
25 features) at compile time.  This makes it easy to customize your embedded
26 systems.  To create a working system, just add a kernel, a shell (such as ash),
27 and an editor (such as elvis-tiny or ae).
28
29 =head1 USAGE
30
31 When you create a link to BusyBox for the function you wish to use, when BusyBox
32 is called using that link it will behave as if the command itself has been invoked.
33
34 For example, entering
35
36         ln -s ./BusyBox ls
37         ./ls
38
39 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
40 into BusyBox). 
41
42 You can also invoke BusyBox by issuing the command as an argument on the
43 command line.  For example, entering
44
45         ./BusyBox ls
46
47 will also cause BusyBox to behave as 'ls'. 
48
49 =head1 COMMON OPTIONS
50
51 Most BusyBox commands support the B<--help> option to provide a
52 terse runtime description of their behavior. 
53
54 =head1 COMMANDS
55
56 Currently defined functions include:
57
58 ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date, dc,
59 dd, deallocvt, df, dirname, dmesg, dos2unix, dpkg-deb, du, dumpkmap, dutmp,
60 echo, false, fbset, fdflush, find, free, freeramdisk, fsck.minix, getopt, grep,
61 gunzip, gzip, halt, head, hostid, hostname, id, init, insmod, kill, killall,
62 length, ln, loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs,
63 mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
64 nslookup, ping, poweroff, printf, ps, pwd, rdate, reboot, renice, reset, rm,
65 rmdir, rmmod, sed, setkeycodes, sh, sleep, sort, swapoff, swapon, sync,
66 syslogd, tail, tar, tee, telnet, test, touch, tr, true, tty, umount, uname,
67 uniq, unix2dos, unrpm, update, uptime, usleep, uudecode, uuencode, watchdog,
68 wc, which, whoami, xargs, yes, zcat, [
69
70 -------------------------------
71
72 =over 4
73
74 =item ar
75
76 Usage: ar [optxvV] archive [filenames]
77
78 Extract or list files from an ar archive.
79
80 Options:
81
82         o               preserve original dates
83         p               extract to stdout
84         t               list
85         x               extract
86         v               verbosely list files processed
87
88 -------------------------------
89
90 =item basename
91
92 Usage: basename FILE [SUFFIX]
93
94 Strips directory path and suffixes from FILE.
95 If specified, also removes any trailing SUFFIX.
96
97 Example:
98
99         $ basename /usr/local/bin/foo
100         foo
101         $ basename /usr/local/bin/
102         bin
103         $ basename /foo/bar.txt .txt
104         bar
105
106 -------------------------------
107
108 =item cat  
109
110 Usage: cat [FILE ...]
111
112 Concatenates FILE(s) and prints them to the standard output.
113
114 Example:
115
116         $ cat /proc/uptime
117         110716.72 17.67
118
119 -------------------------------
120
121 =item chgrp
122
123 Usage: chgrp [OPTION]... GROUP FILE...
124
125 Change the group membership of each FILE to GROUP.
126
127 Options:
128
129         -R      change files and directories recursively
130
131 Example:
132
133         $ ls -l /tmp/foo
134         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
135         $ chgrp root /tmp/foo
136         $ ls -l /tmp/foo
137         -r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo
138
139 -------------------------------
140
141 =item chmod
142
143 Usage: chmod [B<-R>] MODE[,MODE]... FILE...
144
145 Changes file access permissions for the specified FILE(s) (or directories).
146 Each MODE is defined by combining the letters for WHO has access to the file,
147 an OPERATOR for selecting how the permissions should be changed, and a
148 PERMISSION for FILE(s) (or directories).
149
150 WHO may be chosen from
151
152         u       User who owns the file
153         g       Users in the file's Group
154         o       Other users not in the file's group
155         a       All users
156
157 OPERATOR may be chosen from
158
159         +       Add a permission
160         -       Remove a permission
161         =       Assign a permission
162
163 PERMISSION may be chosen from
164
165         r       Read
166         w       Write
167         x       Execute (or access for directories)
168         s       Set user (or group) ID bit
169         t       Sticky bit (for directories prevents removing files by non-owners)
170
171 Alternately, permissions can be set numerically where the first three
172 numbers are calculated by adding the octal values, such as
173
174         4       Read
175         2       Write
176         1       Execute
177
178 An optional fourth digit can also be used to specify
179
180         4       Set user ID
181         2       Set group ID
182         1       Sticky bit
183
184 Options:
185
186         -R      Change files and directories recursively.
187
188 Example:
189
190         $ ls -l /tmp/foo
191         -rw-rw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo
192         $ chmod u+x /tmp/foo
193         $ ls -l /tmp/foo
194         -rwxrw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo*
195         $ chmod 444 /tmp/foo
196         $ ls -l /tmp/foo
197         -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
198
199 -------------------------------
200
201 =item chown
202
203 Usage: chown [OPTION]...  OWNER[<.|:>[GROUP] FILE...
204
205 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
206
207 Options:
208
209         -R      Changes files and directories recursively
210
211 Example:
212
213         $ ls -l /tmp/foo
214         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
215         $ chown root /tmp/foo
216         $ ls -l /tmp/foo
217         -r--r--r--    1 root     andersen        0 Apr 12 18:25 /tmp/foo
218         $ chown root.root /tmp/foo
219         ls -l /tmp/foo
220         -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
221
222 -------------------------------
223
224 =item chroot
225
226 Usage: chroot NEWROOT [COMMAND...]
227
228 Run COMMAND with root directory set to NEWROOT.
229
230 Example:
231
232         $ ls -l /bin/ls
233         lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -> /BusyBox
234         $ mount /dev/hdc1 /mnt -t minix
235         $ chroot /mnt
236         $ ls -l /bin/ls
237         -rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*
238
239 -------------------------------
240
241 =item chvt
242
243 Usage: chvt N
244
245 Changes the foreground virtual terminal to /dev/ttyN
246
247 -------------------------------
248
249 =item clear
250
251 Clears the screen.
252
253 -------------------------------
254
255 =item cp
256
257 Usage: cp [OPTION]... SOURCE DEST
258
259    or: cp [OPTION]... SOURCE... DIRECTORY
260
261 Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
262
263 Options:
264
265         -a      Same as -dpR
266         -d      Preserves links
267         -p      Preserves file attributes if possible
268         -R      Copies directories recursively
269
270 -------------------------------
271
272 =item cut
273
274 Usage: cut [OPTION]... [FILE]...
275
276 Prints selected fields from each input FILE to standard output.
277
278 Options:
279
280                 -b LIST Output only bytes from LIST
281                 -c LIST Output only characters from LIST
282                 -d CHAR Use CHAR instead of tab as the field delimiter
283                 -s      Output only the lines containing delimiter
284                 -f N    Print only these fields
285                 -n      Ignored
286
287 Example:
288
289         $ echo "Hello world" | cut -f 1 -d ' '
290         Hello
291         $ echo "Hello world" | cut -f 2 -d ' '
292         world
293
294
295 -------------------------------
296
297 =item date
298
299 Usage: date [OPTION]... [+FORMAT]
300
301   or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
302
303 Displays the current time in the given FORMAT, or sets the system date.
304
305 Options:
306
307         -R      Outputs RFC-822 compliant date string
308         -s      Sets time described by STRING
309         -u      Prints or sets Coordinated Universal Time
310
311 Example:
312
313         $ date
314         Wed Apr 12 18:52:41 MDT 2000
315
316 -------------------------------
317
318 =item dc
319
320 Usage: dc expression ...
321
322 This is a Tiny RPN calculator that understands the
323 following operations: +, -, /, *, and, or, not, eor.
324 If no arguments are given, dc will process input from STDIN.
325
326 The behaviour of BusyBox/dc deviates (just a little ;-) from
327 GNU/dc, but this will be remedied in the future.
328
329 Example:
330
331         $ dc 2 2 +
332         4
333         $ dc 8 8 \* 2 2 + /
334         16
335         $ dc 0 1 and
336         0
337         $ dc 0 1 or
338         1
339         $ echo 72 9 div 8 mul | dc
340         64
341
342 -------------------------------
343
344 =item dd
345
346 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
347
348 Copy a file, converting and formatting according to options
349
350         if=FILE read from FILE instead of stdin
351         of=FILE write to FILE instead of stdout
352         bs=n    read and write n bytes at a time
353         count=n copy only n input blocks
354         skip=n  skip n input blocks
355         seek=n  skip n output blocks
356
357 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
358
359 Example:
360
361         $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
362         4+0 records in
363         4+0 records out
364
365 -------------------------------
366
367 =item deallocvt
368
369 Usage: deallocvt N
370
371 Deallocates unused virtual terminal /dev/ttyN
372
373 -------------------------------
374
375 =item df
376
377 Usage: df [filesystem ...]
378
379 Prints the filesystem space used and space available.
380
381 Example:
382
383         $ df
384         Filesystem           1k-blocks      Used Available Use% Mounted on
385         /dev/sda3              8690864   8553540    137324  98% /
386         /dev/sda1                64216     36364     27852  57% /boot
387         $ df /dev/sda3
388         Filesystem           1k-blocks      Used Available Use% Mounted on
389         /dev/sda3              8690864   8553540    137324  98% /
390
391 -------------------------------
392
393 =item dirname
394
395 Usage: dirname NAME
396
397 Strip non-directory suffix from file name
398
399 Example:
400
401         $ dirname /tmp/foo
402         /tmp
403         $ dirname /tmp/foo/
404         /tmp
405
406 -------------------------------
407
408 =item dmesg
409
410 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
411
412 Print or controls the kernel ring buffer.
413
414 -------------------------------
415
416 =item dos2unix
417
418 Usage: dos2unix < dosfile > unixfile
419
420 Converts a text file from dos format to unix format.
421
422 -------------------------------
423
424 =item dpkg-deb
425
426 Usage: dpkg-deb [-cexX] archive-file [directory]
427
428 Debian package archive (.deb) manipulation tool
429
430 Options:
431
432         -c      Lists the contents of the filesystem tree archive
433                 portion  of  the  package archive.
434
435         -e      Extracts the control information files from a package
436                 archive into the specified directory.
437         
438         -x      Silently extracts the filesystem tree from a package
439                 archive into the specified directory.
440         
441         -X      Extracts the filesystem tree from a package archive
442                 into the specified directory, list files as it goes.
443
444 Example:
445
446         dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp
447
448 -------------------------------
449
450 =item du
451
452 Usage: du [OPTION]... [FILE]...
453
454 Summarize disk space used for each FILE and/or directory.
455 Disk space is printed in units of 1k (i.e. 1024 bytes).
456
457 Options:
458
459         -l      count sizes many times if hard linked
460         -s      display only a total for each argument
461
462 Example:
463
464         $ ./BusyBox du
465         16      ./CVS
466         12      ./kernel-patches/CVS
467         80      ./kernel-patches
468         12      ./tests/CVS
469         36      ./tests
470         12      ./scripts/CVS
471         16      ./scripts
472         12      ./docs/CVS
473         104     ./docs
474         2417    .
475
476 -------------------------------
477
478 =item dumpkmap
479
480 Usage: dumpkmap
481
482 Prints out a binary keyboard translation table to standard output.
483
484 Example:
485
486         $ dumpkmap > keymap
487
488 -------------------------------
489
490 =item dutmp
491
492 Usage: dutmp [FILE]
493
494 Dump utmp file format (pipe delimited) from FILE
495 or stdin to stdout.
496
497 Example:
498
499         $ dutmp /var/run/utmp
500         8|7||si|||0|0|0|955637625|760097|0
501         2|0|~|~~|reboot||0|0|0|955637625|782235|0
502         1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
503         8|125||l4|||0|0|0|955637629|998367|0
504         6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
505         6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
506         7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
507
508 -------------------------------
509
510 =item echo
511
512 Usage: echo [-neE] [ARG ...]
513
514 Prints the specified ARGs to stdout
515
516 Options:
517
518         -n      suppress trailing newline
519         -e      interpret backslash-escaped characters (i.e. \t=tab etc)
520         -E      disable interpretation of backslash-escaped characters
521
522 Example:
523
524         $ echo "Erik is cool"
525         Erik is cool
526         $  echo -e "Erik\nis\ncool"
527         Erik
528         is
529         cool
530         $ echo "Erik\nis\ncool"
531         Erik\nis\ncool
532
533 -------------------------------
534
535 =item expr
536
537
538 Usage: expr EXPRESSION
539
540 Prints the value of EXPRESSION to standard output.
541
542 EXPRESSION may be:
543
544         ARG1 |  ARG2    ARG1 if it is neither null nor 0, otherwise ARG2
545         ARG1 &  ARG2    ARG1 if neither argument is null or 0, otherwise 0
546         ARG1 <  ARG2    ARG1 is less than ARG2
547         ARG1 <= ARG2    ARG1 is less than or equal to ARG2
548         ARG1 =  ARG2    ARG1 is equal to ARG2
549         ARG1 != ARG2    ARG1 is unequal to ARG2
550         ARG1 >= ARG2    ARG1 is greater than or equal to ARG2
551         ARG1 >  ARG2    ARG1 is greater than ARG2
552         ARG1 +  ARG2    arithmetic sum of ARG1 and ARG2
553         ARG1 -  ARG2    arithmetic difference of ARG1 and ARG2
554         ARG1 *  ARG2    arithmetic product of ARG1 and ARG2
555         ARG1 /  ARG2    arithmetic quotient of ARG1 divided by ARG2
556         ARG1 %  ARG2    arithmetic remainder of ARG1 divided by ARG2
557         STRING : REGEXP             anchored pattern match of REGEXP in STRING
558         match STRING REGEXP         same as STRING : REGEXP
559         substr STRING POS LENGTH    substring of STRING, POS counted from 1
560         index STRING CHARS          index in STRING where any CHARS is found, or 0
561         length STRING               length of STRING
562         quote TOKEN                 interpret TOKEN as a string, even if it is a
563                                                                         keyword like `match' or an operator like `/'
564         ( EXPRESSION )              value of EXPRESSION
565
566 Beware that many operators need to be escaped or quoted for shells.
567 Comparisons are arithmetic if both ARGs are numbers, else
568 lexicographical.  Pattern matches return the string matched between
569 \( and \) or null; if \( and \) are not used, they return the number
570 of characters matched or 0.
571
572 -------------------------------
573
574 =item false
575
576 Returns an exit code of FALSE (1)
577
578 Example:
579
580         $ false
581         $ echo $?
582         1
583
584 -------------------------------
585
586 =item fbset
587
588 Usage: fbset [options] [mode]
589
590 Show and modify frame buffer device settings
591
592 Options:
593
594         -h
595         -fb
596         -db
597         -a
598         -i
599         -g
600         -t
601         -accel
602         -hsync
603         -vsync
604         -laced
605         -double
606
607 Example:
608
609         $ fbset
610         mode "1024x768-76"
611                         # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
612                         geometry 1024 768 1024 768 16
613                         timings 12714 128 32 16 4 128 4
614                         accel false
615                         rgba 5/11,6/5,5/0,0/0
616         endmode
617
618 -------------------------------
619
620 =item fdflush
621
622 Usage: fdflush device
623
624 Force floppy disk drive to detect disk change
625
626 -------------------------------
627
628 =item find
629
630 Usage: find [PATH...] [EXPRESSION]
631
632 Search for files in a directory hierarchy.  The default PATH is
633 the current directory; default EXPRESSION is '-print'
634
635
636 EXPRESSION may consist of:
637
638         -follow                 Dereference symbolic links.
639         -name PATTERN   File name (leading directories removed) matches PATTERN.
640         -print                  print the full file name followed by a newline to stdout.
641
642 Example:
643
644         $ find / -name /etc/passwd
645         /etc/passwd
646
647 -------------------------------
648
649 =item free
650
651 Usage: free
652
653 Displays the amount of free and used system memory.
654
655 Example:
656
657         $ free
658                                   total         used         free       shared      buffers
659           Mem:       257628       248724         8904        59644        93124
660          Swap:       128516         8404       120112
661         Total:       386144       257128       129016
662
663 -------------------------------
664
665 =item freeramdisk
666
667 Usage: freeramdisk DEVICE
668
669 Frees all memory used by the specified ramdisk.
670
671 Example:
672
673         $ freeramdisk /dev/ram2
674
675 -------------------------------
676
677 =item fsck.minix
678
679 Usage: fsck.minix [B<-larvsmf>] /dev/name
680
681 Performs a consistency check for MINIX filesystems.
682
683 Options:
684
685         -l      Lists all filenames
686         -r      Perform interactive repairs
687         -a      Perform automatic repairs
688         -v      verbose
689         -s      Outputs super-block information
690         -m      Activates MINIX-like "mode not cleared" warnings
691         -f      Force file system check.
692
693 -------------------------------
694
695 =item getopt
696
697 Usage: getopt [OPTIONS]...
698
699 Parse command options
700
701 Options:
702
703        -a, --alternative            Allow long options starting with single -\n"
704        -l, --longoptions=longopts   Long options to be recognized\n"
705        -n, --name=progname          The name under which errors are reported\n"
706        -o, --options=optstring      Short options to be recognized\n"
707        -q, --quiet                  Disable error reporting by getopt(3)\n"
708        -Q, --quiet-output           No normal output\n"
709        -s, --shell=shell            Set shell quoting conventions\n"
710        -T, --test                   Test for getopt(1) version\n"
711        -u, --unqote                 Do not quote the output\n"
712
713 Example:
714
715         $ cat getopt.test
716         #!/bin/sh
717         GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \
718                 -n 'example.busybox' -- "$@"`
719         if [ $? != 0 ] ; then  exit 1 ; fi
720         eval set -- "$GETOPT"
721         while true ; do
722           case $1 in
723             -a|--a-long) echo "Option a" ; shift ;;
724             -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;
725             -c|--c-long)
726               case "$2" in
727                 "") echo "Option c, no argument"; shift 2 ;;
728                 *)  echo "Option c, argument \`$2'" ; shift 2 ;;
729               esac ;;
730             --) shift ; break ;;
731             *) echo "Internal error!" ; exit 1 ;;
732           esac
733         done
734
735
736 -------------------------------
737
738 =item grep
739
740 Usage: grep [OPTIONS]... PATTERN [FILE]...
741
742 Search for PATTERN in each FILE or standard input.
743
744 Options:
745
746         -h      suppress the prefixing filename on output
747         -i      ignore case distinctions
748         -n      print line number with output lines
749         -q      be quiet. Returns 0 if result was found, 1 otherwise
750         -v      select non-matching lines
751
752 This version of grep matches full regular expressions.
753
754 Example:
755
756         $ grep root /etc/passwd
757         root:x:0:0:root:/root:/bin/bash
758         $ grep ^[rR]oo. /etc/passwd
759         root:x:0:0:root:/root:/bin/bash
760
761 -------------------------------
762
763 =item gunzip
764
765 Usage: gunzip [OPTION]... FILE
766
767 Uncompress FILE (or standard input if FILE is '-').
768
769 Options:
770
771         -c      Write output to standard output
772         -t      Test compressed file integrity
773
774 Example:
775
776         $ ls -la /tmp/BusyBox*
777         -rw-rw-r--    1 andersen andersen   557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
778         $ gunzip /tmp/BusyBox-0.43.tar.gz
779         $ ls -la /tmp/BusyBox*
780         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
781
782 -------------------------------
783
784 =item gzip
785
786 Usage: gzip [OPTION]... FILE
787
788 Compress FILE with maximum compression.
789 When FILE is '-', reads standard input.  Implies B<-c>.
790
791 Options:
792
793         -c      Write output to standard output instead of FILE.gz
794         -d      decompress
795
796 Example:
797
798         $ ls -la /tmp/BusyBox*
799         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
800         $ gzip /tmp/BusyBox-0.43.tar
801         $ ls -la /tmp/BusyBox*
802         -rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
803
804
805 -------------------------------
806
807 =item halt
808
809 Usage: halt
810
811 This command halts the system.
812
813 -------------------------------
814
815 =item head
816
817 Usage: head [OPTION] [FILE]...
818
819 Print first 10 lines of each FILE to standard output.
820 With more than one FILE, precede each with a header giving the
821 file name. With no FILE, or when FILE is -, read standard input.
822
823 Options:
824
825         -n NUM          Print first NUM lines instead of first 10
826
827 Example:
828
829         $ head -n 2 /etc/passwd
830         root:x:0:0:root:/root:/bin/bash
831         daemon:x:1:1:daemon:/usr/sbin:/bin/sh
832
833 -------------------------------
834
835 =item hostid
836
837 Usage: hostid
838
839 Prints out a unique  32-bit  identifier  for  the  current
840 machine.   The  32-bit identifier is intended to be unique
841 among all UNIX systems in existence. 
842
843 -------------------------------
844
845 =item hostname
846
847 Usage: hostname [OPTION] {hostname | B<-F> file}
848
849 Get or set the hostname or DNS domain name. If a hostname is given
850 (or a file with the B<-F> parameter), the host name will be set.
851
852 Options:
853
854         -s              Short
855         -i              Addresses for the hostname
856         -d              DNS domain name
857         -F, --file FILE Use the contents of FILE to specify the hostname
858
859 Example:
860
861         $ hostname
862         slag 
863
864 -------------------------------
865
866 =item id
867
868 Print information for USERNAME or the current user
869
870 Options:
871
872         -g      prints only the group ID
873         -u      prints only the user ID
874                 -n      print a name instead of a number (with for -ug)
875         -r      prints the real user ID instead of the effective ID (with -ug)
876
877 Example:
878
879         $ id
880         uid=1000(andersen) gid=1000(andersen)
881
882 -------------------------------
883
884 =item init
885
886 Usage: init
887
888 Init is the parent of all processes.
889
890 This version of init is designed to be run only by the kernel.
891
892 BusyBox init doesn't support multiple runlevels.  The runlevels field of
893 the /etc/inittab file is completely ignored by BusyBox init. If you want 
894 runlevels, use sysvinit.
895
896 BusyBox init works just fine without an inittab.  If no inittab is found, 
897 it has the following default behavior:
898
899         ::sysinit:/etc/init.d/rcS
900         ::askfirst:/bin/sh
901
902 if it detects that /dev/console is _not_ a serial console, it will also run:
903
904         tty2::askfirst:/bin/sh
905
906 If you choose to use an /etc/inittab file, the inittab entry format is as follows:
907
908         <id>:<runlevels>:<action>:<process>
909
910         <id>: 
911
912                 WARNING: This field has a non-traditional meaning for BusyBox init!
913                 The id field is used by BusyBox init to specify the controlling tty for
914                 the specified process to run on.  The contents of this field are
915                 appended to "/dev/" and used as-is.  There is no need for this field to
916                 be unique, although if it isn't you may have strange results.  If this
917                 field is left blank, the controlling tty is set to the console.  Also
918                 note that if BusyBox detects that a serial console is in use, then only
919                 entries whose controlling tty is either the serial console or /dev/null
920                 will be run.  BusyBox init does nothing with utmp.  We don't need no
921                 stinkin' utmp.
922
923         <runlevels>: 
924
925                 The runlevels field is completely ignored.
926
927         <action>: 
928
929                 Valid actions include: sysinit, respawn, askfirst, wait, 
930                 once, and ctrlaltdel.
931
932
933                 The available actions can be classified into two groups: actions
934                 that are run only once, and actions that are re-run when the specified
935                 process exits.
936
937                 Run only-once actions:
938
939                         'sysinit' is the first item run on boot.  init waits until all
940                         sysinit actions are completed before continuing.  Following the
941                         completion of all sysinit actions, all 'wait' actions are run.
942                         'wait' actions, like  'sysinit' actions, cause init to wait until
943                         the specified task completes.  'once' actions are asyncronous,
944                         therefore, init does not wait for them to complete.  'ctrlaltdel'
945                         actions are run immediately before init causes the system to reboot
946                         (unmounting filesystems with a 'ctrlaltdel' action is a very good
947                         idea).
948
949                 Run repeatedly actions:
950
951                         'respawn' actions are run after the 'once' actions.  When a process
952                         started with a 'respawn' action exits, init automatically restarts
953                         it.  Unlike sysvinit, BusyBox init does not stop processes from
954                         respawning out of control.  The 'askfirst' actions acts just like
955                         respawn, except that before running the specified process it
956                         displays the line "Please press Enter to activate this console."
957                         and then waits for the user to press enter before starting the
958                         specified process.  
959
960                 Unrecognized actions (like initdefault) will cause init to emit an
961                 error message, and then go along with its business.  All actions are
962                 run in the reverse order from how they appear in /etc/inittab.
963
964         <process>: 
965
966                 Specifies the process to be executed and it's command line.
967
968
969 Example /etc/inittab file:
970
971         # This is run first except when booting in single-user mode.
972         #
973         ::sysinit:/etc/init.d/rcS
974
975         # /bin/sh invocations on selected ttys
976         #
977         # Start an "askfirst" shell on the console (whatever that may be)
978         ::askfirst:-/bin/sh
979         # Start an "askfirst" shell on /dev/tty2-4
980         tty2::askfirst:-/bin/sh
981         tty3::askfirst:-/bin/sh
982         tty4::askfirst:-/bin/sh
983
984         # /sbin/getty invocations for selected ttys
985         #
986         tty4::respawn:/sbin/getty 38400 tty5
987         tty5::respawn:/sbin/getty 38400 tty6
988
989
990         # Example of how to put a getty on a serial line (for a terminal)
991         #
992         #::respawn:/sbin/getty -L ttyS0 9600 vt100
993         #::respawn:/sbin/getty -L ttyS1 9600 vt100
994         #
995         # Example how to put a getty on a modem line.
996         #::respawn:/sbin/getty 57600 ttyS2
997
998         # Stuff to do before rebooting
999         ::ctrlaltdel:/bin/umount -a -r
1000         ::ctrlaltdel:/sbin/swapoff -a
1001
1002 -------------------------------
1003
1004 =item insmod
1005
1006 Usage: insmod [OPTION]... MODULE [symbol=value]...
1007
1008 Loads the specified kernel modules into the kernel.
1009
1010 Options:
1011
1012                 -f      Force module to load into the wrong kernel version.
1013                 -k      Make module autoclean-able.
1014                 -v      verbose output
1015                 -x      do not export externs
1016                 -L      Prevent simultaneous loads of the same module
1017
1018 -------------------------------
1019
1020 =item kill
1021
1022 Usage: kill [B<-signal>] process-id [process-id ...]
1023
1024 Send a signal (default is SIGTERM) to the specified process(es).
1025
1026 Options:
1027
1028         -l      List all signal names and numbers.
1029
1030 Example:
1031
1032         $ ps | grep apache
1033         252 root     root     S [apache]
1034         263 www-data www-data S [apache]
1035         264 www-data www-data S [apache]
1036         265 www-data www-data S [apache]
1037         266 www-data www-data S [apache]
1038         267 www-data www-data S [apache]
1039         $ kill 252
1040
1041 -------------------------------
1042
1043 =item killall
1044
1045 Usage: killall [B<-signal>] process-name [process-name ...]
1046
1047 Send a signal (default is SIGTERM) to the specified process(es).
1048
1049 Options:
1050
1051         -l      List all signal names and numbers.
1052
1053 Example:
1054
1055         $ killall apache
1056
1057 -------------------------------
1058
1059 =item length
1060
1061 Usage: length STRING
1062
1063 Prints out the length of the specified STRING.
1064
1065 Example:
1066
1067         $ length "Hello"
1068         5
1069
1070 -------------------------------
1071
1072 =item ln
1073
1074 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
1075
1076 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
1077 You may use '--' to indicate that all following arguments are non-options.
1078
1079 Options:
1080
1081         -s      make symbolic links instead of hard links
1082         -f      remove existing destination files
1083
1084 Example:
1085
1086     $ ln -s BusyBox /tmp/ls
1087     $ ls -l /tmp/ls
1088     lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -> BusyBox*
1089
1090 -------------------------------
1091
1092 =item loadacm
1093
1094 Usage: loadacm
1095
1096 Loads an acm from standard input.
1097
1098 Example:
1099
1100         $ loadacm < /etc/i18n/acmname
1101
1102 -------------------------------
1103
1104 =item loadfont
1105
1106 Usage: loadfont
1107
1108 Loads a console font from standard input.
1109
1110 Example:
1111
1112         $ loadfont < /etc/i18n/fontname
1113
1114 -------------------------------
1115
1116 =item loadkmap
1117
1118 Usage: loadkmap
1119
1120 Loads a binary keyboard translation table from standard input.
1121
1122 Example:
1123
1124         $ loadkmap < /etc/i18n/lang-keymap
1125
1126 -------------------------------
1127
1128 =item logger
1129
1130 Usage: logger [OPTION]... [MESSAGE]
1131
1132 Write MESSAGE to the system log.  If MESSAGE is omitted, log stdin.
1133
1134 Options:
1135
1136         -s      Log to stderr as well as the system log.
1137         -t      Log using the specified tag (defaults to user name).
1138         -p      Enter the message with the specified priority.
1139                 This may be numerical or a ``facility.level'' pair.
1140
1141 Example:
1142
1143                 $ logger "hello"
1144
1145 -------------------------------
1146
1147 =item logname
1148
1149 Usage: logname
1150
1151 Print the name of the current user.
1152
1153 Example:
1154
1155         $ logname
1156         root
1157
1158 -------------------------------
1159
1160 =item ls
1161
1162 Usage: ls [B<-1acdelnpuxACFLR>] [filenames...]
1163
1164 Options:
1165
1166         -a      do not hide entries starting with .
1167         -c      with  -l:  show ctime (the time of last
1168                 modification of file status information)
1169         -d      list directory entries instead of contents
1170         -e      list both full date and full time
1171         -l      use a long listing format
1172         -n      list numeric UIDs and GIDs instead of names
1173         -p      append indicator (one of /=@|) to entries
1174         -u      with -l: show access time (the time of last
1175                 access of the file)
1176         -x      list entries by lines instead of by columns
1177         -A      do not list implied . and ..
1178         -C      list entries by columns
1179         -F      append indicator (one of */=@|) to entries
1180         -R  list subdirectories recursively
1181         -L  list entries pointed to by symbolic links
1182
1183 -------------------------------
1184
1185 =item lsmod
1186
1187 Usage: lsmod
1188
1189 Shows a list of all currently loaded kernel modules.
1190
1191 -------------------------------
1192
1193 =item makedevs
1194
1195 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
1196
1197 Creates a range of block or character special files
1198
1199 TYPEs include:
1200
1201         b:      Make a block (buffered) device.
1202         c or u: Make a character (un-buffered) device.
1203         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1204
1205 FIRST specifies the number appended to NAME to create the first device.
1206 LAST specifies the number of the last item that should be created.
1207 If 's' is the last argument, the base device is created as well.
1208
1209 Example:
1210
1211         $ makedevs /dev/ttyS c 4 66 2 63
1212         [creates ttyS2-ttyS63]
1213         $ makedevs /dev/hda b 3 0 0 8 s
1214         [creates hda,hda1-hda8]
1215
1216 -------------------------------
1217
1218 =item md5sum
1219
1220 Usage: md5sum [OPTION] [file ...]
1221
1222 Print or check MD5 checksums.
1223
1224 Options:
1225
1226         -b       read files in binary mode
1227         -c       check MD5 sums against given list
1228         -t       read files in text mode (default)
1229         -g       read a string
1230
1231 The following two options are useful only when verifying checksums:
1232
1233         -s       don't output anything, status code shows success
1234         -w       warn about improperly formated MD5 checksum lines
1235
1236 Example:
1237
1238         $ md5sum busybox
1239         6fd11e98b98a58f64ff3398d7b324003  busybox
1240         $ md5sum -c -
1241         6fd11e98b98a58f64ff3398d7b324003  busybox
1242         busybox: OK
1243         ^D
1244
1245 -------------------------------
1246
1247 =item mkdir
1248
1249 Usage: mkdir [OPTION] DIRECTORY...
1250
1251 Create the DIRECTORY(ies), if they do not already exist
1252
1253 Options:
1254
1255         -m      set permission mode (as in chmod), not rwxrwxrwx - umask
1256         -p      no error if directory exists, make parent directories as needed
1257
1258 Example:
1259
1260         $ mkdir /tmp/foo
1261         $ mkdir /tmp/foo
1262         /tmp/foo: File exists
1263         $ mkdir /tmp/foo/bar/baz
1264         /tmp/foo/bar/baz: No such file or directory
1265         $ mkdir -p /tmp/foo/bar/baz
1266
1267 -------------------------------
1268
1269 =item mkfifo
1270
1271 Usage: mkfifo [OPTIONS] name
1272
1273 Creates a named pipe (identical to 'mknod name p')
1274
1275 Options:
1276
1277         -m      create the pipe using the specified mode (default a=rw)
1278
1279 -------------------------------
1280
1281 =item mkfs.minix
1282
1283 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
1284
1285 Make a MINIX filesystem.
1286
1287 Options:
1288
1289         -c              Check the device for bad blocks
1290         -n [14|30]      Specify the maximum length of filenames
1291         -i              Specify the number of inodes for the filesystem
1292         -l FILENAME     Read the bad blocks list from FILENAME
1293         -v              Make a Minix version 2 filesystem
1294
1295 -------------------------------
1296
1297 =item mknod
1298
1299 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
1300
1301 Create a special file (block, character, or pipe).
1302
1303 Options:
1304
1305         -m      create the special file using the specified mode (default a=rw)
1306
1307 TYPEs include:
1308         b:      Make a block (buffered) device.
1309         c or u: Make a character (un-buffered) device.
1310         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1311
1312 Example:
1313
1314         $ mknod /dev/fd0 b 2 0 
1315         $ mknod -m 644 /tmp/pipe p
1316
1317 -------------------------------
1318
1319 =item mkswap
1320
1321 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1322
1323 Prepare a disk partition to be used as a swap partition.
1324
1325 Options:
1326
1327         -c              Check for read-ability.
1328         -v0             Make version 0 swap [max 128 Megs].
1329         -v1             Make version 1 swap [big!] (default for kernels > 2.1.117).
1330         block-count     Number of block to use (default is entire partition).
1331
1332 -------------------------------
1333
1334 =item mktemp
1335
1336 Usage: mktemp [B<-q>] TEMPLATE
1337
1338 Creates a temporary file with its name based on TEMPLATE.
1339 TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).
1340
1341 Example:
1342
1343         $ mktemp /tmp/temp.XXXXXX
1344         /tmp/temp.mWiLjM
1345         $ ls -la /tmp/temp.mWiLjM
1346         -rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM
1347
1348 -------------------------------
1349
1350 =item more
1351
1352 Usage: more [file ...]
1353
1354 More is a filter for paging through text one screenful at a time.
1355
1356 Example:
1357
1358         $ dmesg | more
1359
1360 -------------------------------
1361
1362 =item mount
1363
1364 Usage:  mount [flags]
1365         mount [flags] device directory [B<-o> options,more-options]
1366
1367 Flags:
1368
1369         -a:             Mount all file systems in fstab.
1370         -o option:      One of many filesystem options, listed below.
1371         -r:             Mount the filesystem read-only.
1372         -t fs-type:     Specify the filesystem type.
1373         -w:             Mount for reading and writing (default).
1374
1375 Options for use with the "B<-o>" flag:
1376
1377         async/sync:     Writes are asynchronous / synchronous.
1378         atime/noatime:  Enable / disable updates to inode access times.
1379         dev/nodev:      Allow use of special device files / disallow them.
1380         exec/noexec:    Allow use of executable files / disallow them.
1381         loop:           Mounts a file via loop device.
1382         suid/nosuid:    Allow set-user-id-root programs / disallow them.
1383         remount:        Re-mount a currently-mounted filesystem, changing its flags.
1384         ro/rw:          Mount for read-only / read-write.
1385         There are EVEN MORE flags that are specific to each filesystem.
1386         You'll have to see the written documentation for those.
1387
1388 Example:
1389
1390         $ mount
1391         /dev/hda3 on / type minix (rw)
1392         proc on /proc type proc (rw)
1393         devpts on /dev/pts type devpts (rw)
1394         $ mount /dev/fd0 /mnt -t msdos -o ro
1395         $ mount /tmp/diskimage /opt -t ext2 -o loop
1396
1397 -------------------------------
1398
1399 =item mt
1400
1401 Usage: mt [B<-f> device] opcode value
1402
1403 Control magnetic tape drive operation
1404
1405 -------------------------------
1406
1407 =item mv
1408
1409 Usage: mv SOURCE DEST
1410
1411    or: mv SOURCE... DIRECTORY
1412
1413 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1414
1415 Example:
1416
1417         $ mv /tmp/foo /bin/bar
1418
1419 -------------------------------
1420
1421 =item nc
1422
1423 Usage: nc [IP] [port]
1424
1425 Netcat opens a pipe to IP:port
1426
1427 Example:
1428
1429         $ nc foobar.somedomain.com 25
1430         220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1431         help
1432         214-Commands supported:
1433         214-    HELO EHLO MAIL RCPT DATA AUTH
1434         214     NOOP QUIT RSET HELP
1435         quit
1436         221 foobar closing connection
1437
1438 -------------------------------
1439
1440 =item nslookup
1441
1442 Usage: nslookup [HOST]
1443
1444 Queries the nameserver for the IP address of the given HOST
1445
1446 Example:
1447
1448         $ nslookup localhost
1449         Server:     default
1450         Address:    default
1451
1452         Name:       debian
1453         Address:    127.0.0.1
1454
1455 -------------------------------
1456
1457 =item ping
1458
1459 Usage: ping [OPTION]... host
1460
1461 Send ICMP ECHO_REQUEST packets to network hosts.
1462
1463 Options:
1464
1465         -c COUNT        Send only COUNT pings.
1466         -s SIZE         Send SIZE data bytes in packets (default=56).
1467         -q              Quiet mode, only displays output at start
1468                         and when finished.
1469 Example:
1470
1471         $ ping localhost
1472         PING slag (127.0.0.1): 56 data bytes
1473         64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1474
1475         --- debian ping statistics ---
1476         1 packets transmitted, 1 packets received, 0% packet loss
1477         round-trip min/avg/max = 20.1/20.1/20.1 ms
1478
1479 -------------------------------
1480
1481 =item poweroff
1482
1483 Shuts down the system, and requests that the kernel turn off power upon halting.
1484
1485 -------------------------------
1486
1487 =item printf
1488
1489 Usage: printf format [argument...]
1490
1491 Formats and prints the given data in a manner similar to the C printf command.
1492
1493 Example:
1494
1495         $ printf "Val=%d\n" 5
1496         Val=5
1497
1498 -------------------------------
1499
1500 =item ps
1501
1502 Usage: ps
1503
1504 Report process status
1505
1506 This version of ps accepts no options.
1507
1508 Example:
1509
1510         $ ps
1511   PID  Uid      Gid State Command
1512     1 root     root     S init
1513     2 root     root     S [kflushd]
1514     3 root     root     S [kupdate]
1515     4 root     root     S [kpiod]
1516     5 root     root     S [kswapd]
1517   742 andersen andersen S [bash]
1518   743 andersen andersen S -bash
1519   745 root     root     S [getty]
1520  2990 andersen andersen R ps
1521
1522 -------------------------------
1523
1524 =item pwd
1525
1526 Prints the full filename of the current working directory.
1527
1528 Example:
1529
1530         $ pwd
1531         /root
1532
1533 -------------------------------
1534
1535 =item rdate
1536
1537 Usage: rdate [OPTION] HOST
1538
1539 Get and possibly set the system date and time from a remote HOST.
1540
1541 Options:
1542
1543         -s      Set the system date and time (default).
1544         -p      Print the date and time.
1545
1546 -------------------------------
1547
1548 =item reboot
1549
1550 Instructs the kernel to reboot the system.
1551
1552 -------------------------------
1553
1554 =item renice
1555
1556 Usage: renice priority pid [pid ...]
1557
1558 Changes priority of running processes. Allowed priorities range
1559 from 20 (the process runs only when nothing else is running) to 0
1560 (default priority) to -20 (almost nothing else ever gets to run).
1561
1562 -------------------------------
1563
1564 =item reset
1565
1566 Usage: reset
1567
1568 Resets the screen.
1569
1570 -------------------------------
1571
1572 =item rm
1573
1574 Usage: rm [OPTION]... FILE...
1575
1576 Remove (unlink) the FILE(s).  You may use '--' to 
1577 indicate that all following arguments are non-options.
1578
1579 Options:
1580
1581         -f              remove existing destinations, never prompt
1582         -r or -R        remove the contents of directories recursively
1583
1584 Example:
1585
1586         $ rm -rf /tmp/foo
1587
1588 -------------------------------
1589
1590 =item rmdir
1591
1592 Usage: rmdir [OPTION]... DIRECTORY...
1593
1594 Remove the DIRECTORY(ies), if they are empty.
1595
1596 Example:
1597
1598         # rmdir /tmp/foo
1599
1600 -------------------------------
1601
1602 =item rmmod
1603
1604 Usage: rmmod [OPTION]... [MODULE]...
1605
1606 Unloads the specified kernel modules from the kernel.
1607
1608 Options:
1609
1610         -a      Try to remove all unused kernel modules.
1611
1612 Example:
1613
1614         $ rmmod tulip
1615
1616 -------------------------------
1617
1618 =item sed
1619
1620 Usage: sed [B<-n>] B<-e> script [file...]
1621
1622 Allowed sed scripts come in the following form:
1623
1624         'ADDR [!] COMMAND'
1625
1626         where address ADDR can be:
1627           NUMBER    Match specified line number
1628           $         Match last line
1629           /REGEXP/  Match specified regexp
1630           (! inverts the meaning of the match)
1631
1632         and COMMAND can be:
1633           s/regexp/replacement/[igp]
1634                  which attempt to match regexp against the pattern space
1635                  and if successful replaces the matched portion with replacement.
1636
1637           aTEXT
1638                  which appends TEXT after the pattern space
1639
1640 Options:
1641
1642         -e      add the script to the commands to be executed
1643         -n      suppress automatic printing of pattern space
1644
1645 This version of sed matches full regular expressions.
1646
1647 Example:
1648
1649         $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1650         bar
1651
1652 -------------------------------
1653
1654 =item setkeycodes
1655
1656 Usage: setkeycodes SCANCODE KEYCODE ...
1657
1658 Set entries into the kernel's scancode-to-keycode map,
1659 allowing unusual keyboards to generate usable keycodes.
1660
1661 SCANCODE may be either xx or e0xx (hexadecimal),
1662 and KEYCODE is given in decimal
1663
1664 Example:
1665
1666         # setkeycodes e030 127
1667
1668 -------------------------------
1669
1670 =item sh
1671
1672 Usage: sh
1673
1674 lash -- the BusyBox LAme SHell (command interpreter)
1675
1676 This command does not yet have proper documentation.  
1677
1678 Use lash just as you would use any other shell.  It properly handles pipes,
1679 redirects, job control, can be used as the shell for scripts (#!/bin/sh), and
1680 has a sufficient set of builtins to do what is needed.  It does not (yet)
1681 support Bourne Shell syntax.  If you need things like "if-then-else", "while",
1682 and such, use ash or bash.  If you just need a very simple and extremely small
1683 shell, this will do the job.
1684
1685 -------------------------------
1686
1687 =item sleep
1688
1689 Usage: sleep N
1690
1691 Pause for N seconds.
1692
1693 Example:
1694
1695         $ sleep 2
1696         [2 second delay results]
1697
1698 -------------------------------
1699
1700 =item sort
1701
1702 Usage: sort [B<-n>] [B<-r>] [FILE]...
1703
1704 Sorts lines of text in the specified files
1705
1706 Example:
1707
1708         $ echo -e "e\nf\nb\nd\nc\na" | sort
1709         a
1710         b
1711         c
1712         d
1713         e
1714         f
1715
1716 -------------------------------
1717
1718 =item swapoff
1719
1720 Usage: swapoff [OPTION] [device]
1721
1722 Stop swapping virtual memory pages on the given device.
1723
1724 Options:
1725
1726         -a      Stop swapping on all swap devices
1727
1728 -------------------------------
1729
1730 =item swapon
1731
1732 Usage: swapon [OPTION] [device]
1733
1734 Start swapping virtual memory pages on the given device.
1735
1736 Options:
1737
1738         -a      Start swapping on all swap devices
1739
1740 -------------------------------
1741
1742 =item sync
1743
1744 Usage: sync
1745
1746 Write all buffered filesystem blocks to disk.
1747
1748 -------------------------------
1749
1750 =item syslogd
1751
1752 Usage: syslogd [OPTION]...
1753
1754 Linux system and kernel (provides klogd) logging utility.
1755 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1756
1757 Options:
1758
1759         -m NUM  Interval between MARK lines (default=20min, 0=off)
1760         -n              Run as a foreground process
1761         -K              Do not start up the klogd process
1762         -O FILE Use an alternate log file (default=/var/log/messages)
1763         -R HOST[:PORT]  Log remotely to IP or hostname on PORT (default PORT=514/UDP)
1764         -L      Log locally as well as network logging (default is network only)
1765
1766 Example:
1767
1768         $ syslogd -R masterlog:514
1769         $ syslogd -R 192.168.1.1:601
1770
1771 -------------------------------
1772
1773 =item tail
1774
1775 Usage: tail [OPTION] [FILE]...
1776
1777 Print last 10 lines of each FILE to standard output.
1778 With more than one FILE, precede each with a header giving the
1779 file name. With no FILE, or when FILE is -, read standard input.
1780
1781 Options:
1782
1783         -n NUM          Print last NUM lines instead of first 10
1784         -f              Output data as the file grows.  This version
1785                         of 'tail -f' supports only one file at a time.
1786
1787 Example:
1788
1789         $ tail -n 1 /etc/resolv.conf
1790         nameserver 10.0.0.1
1791
1792 -------------------------------
1793
1794 =item tar
1795
1796 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1797
1798 Create, extract, or list files from a tar file.  Note that
1799 this version of tar treats hard links as separate files.
1800
1801 Main operation mode:
1802
1803         c               create
1804         x               extract
1805         t               list
1806
1807 File selection:
1808
1809         f               name of tarfile or "-" for stdin
1810         O               extract to stdout
1811         exclude         file to exclude
1812
1813 Informative output:
1814
1815         v               verbosely list files processed
1816
1817 Example:
1818
1819         $ zcat /tmp/tarball.tar.gz | tar -xf -
1820         $ tar -cf /tmp/tarball.tar /usr/local
1821
1822 -------------------------------
1823
1824 =item tee
1825
1826 Usage: tee [OPTION]... [FILE]...
1827
1828 Copy standard input to each FILE, and also to standard output.
1829
1830 Options:
1831
1832         -a      append to the given FILEs, do not overwrite
1833
1834 Example:
1835
1836         $ echo "Hello" | tee /tmp/foo
1837         $ cat /tmp/foo
1838         Hello
1839
1840 -------------------------------
1841
1842 =item telnet
1843
1844 Usage: telnet host [port]
1845
1846 Telnet is used to establish interactive communication with another
1847 computer over a network using the TELNET protocol.
1848
1849 -------------------------------
1850
1851 =item test, [
1852
1853 Usage: test EXPRESSION
1854 or   [ EXPRESSION ]
1855
1856 Checks file types and compares values returning an exit
1857 code determined by the value of EXPRESSION.
1858
1859 Example:
1860
1861         $ test 1 -eq 2
1862         $ echo $?
1863         1
1864         $ test 1 -eq 1
1865         $ echo $?
1866         0
1867         $ [ -d /etc ]
1868         $ echo $?
1869         0
1870         $ [ -d /junk ]
1871         $ echo $?
1872         1
1873
1874 -------------------------------
1875
1876 =item touch
1877
1878 Usage: touch [B<-c>] file [file ...]
1879
1880 Update the last-modified date on (or create) the selected file[s].
1881
1882 Example:
1883
1884         $ ls -l /tmp/foo
1885         /bin/ls: /tmp/foo: No such file or directory
1886         $ touch /tmp/foo
1887         $ ls -l /tmp/foo
1888         -rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
1889
1890 -------------------------------
1891
1892 =item tr
1893
1894 Usage: tr [-cds] STRING1 [STRING2]
1895
1896 Translate, squeeze, and/or delete characters from
1897 standard input, writing to standard output.
1898
1899 Options:
1900
1901         -c      take complement of STRING1
1902         -d      delete input characters coded STRING1
1903         -s      squeeze multiple output characters of STRING2 into one character
1904
1905 Example:
1906
1907         $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1908         hello world
1909
1910 -------------------------------
1911
1912 =item true
1913
1914 Returns an exit code of TRUE (0)
1915
1916 Example:
1917
1918         $ true
1919         $ echo $?
1920         0
1921
1922 -------------------------------
1923
1924 =item tty
1925
1926 Usage: tty
1927
1928 Print the file name of the terminal connected to standard input.
1929
1930 Options:
1931
1932         -s      print nothing, only return an exit status
1933
1934 Example:
1935
1936         $ tty
1937         /dev/tty2
1938
1939 -------------------------------
1940
1941 =item umount
1942
1943 Usage: umount [flags] filesystem|directory
1944
1945 Flags:
1946
1947                 -a:     Unmount all file systems
1948                 -r:     Try to remount devices as read-only if mount is busy
1949                 -f:     Force filesystem umount (i.e. unreachable NFS server)
1950                 -l:     Do not free loop device (if a loop device has been used)
1951
1952 Example:
1953
1954         $ umount /dev/hdc1 
1955
1956 -------------------------------
1957
1958 =item uname
1959
1960 Usage: uname [OPTION]...
1961
1962 Print certain system information.  With no OPTION, same as B<-s>.
1963
1964 Options:
1965
1966         -a      print all information
1967         -m      the machine (hardware) type
1968         -n      print the machine's network node hostname
1969         -r      print the operating system release
1970         -s      print the operating system name
1971         -p      print the host processor type
1972         -v      print the operating system version
1973
1974 Example:
1975
1976         $ uname -a
1977         Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
1978
1979 -------------------------------
1980
1981 =item uniq
1982
1983 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
1984
1985 Discard all but one of successive identical lines from INPUT
1986 (or standard input), writing to OUTPUT (or standard output).
1987         
1988 Options:
1989
1990         -c              prefix lines by the number of occurrences
1991         -d              only print duplicate lines
1992         -u              only print unique lines
1993
1994 Example:
1995
1996         $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
1997         a
1998         b
1999         c
2000
2001 -------------------------------
2002
2003 =item unix2dos
2004
2005 Usage: unix2dos < unixfile > dosfile
2006
2007 Converts a text file from unix format to dos format.
2008
2009 -------------------------------
2010
2011 =item unrpm
2012
2013 Usage: unrpm < package.rpm | gzip B<-d> | cpio -idmuv
2014
2015 Extracts an rpm archive.
2016
2017 -------------------------------
2018
2019 =item update
2020
2021 Usage: update [options]
2022
2023 Periodically flushes filesystem buffers.
2024
2025 Options:
2026
2027         -S      force use of sync(2) instead of flushing
2028         -s SECS call sync this often (default 30)
2029         -f SECS flush some buffers this often (default 5)
2030
2031 -------------------------------
2032
2033 =item uptime
2034
2035 Usage: uptime
2036
2037 Tells how long the system has been running since boot.
2038
2039 Example:
2040
2041         $ uptime
2042           1:55pm  up  2:30, load average: 0.09, 0.04, 0.00
2043
2044 -------------------------------
2045
2046 =item usleep
2047
2048 Usage: usleep N
2049
2050 Pauses for N microseconds.
2051
2052 Example:
2053
2054         $ usleep 1000000
2055         [pauses for 1 second]
2056
2057 -------------------------------
2058
2059 =item uuencode
2060
2061 Usage: uuencode [OPTION] [INFILE] REMOTEFILE
2062
2063 Uuencode a file.
2064
2065 Options:
2066
2067         -m      use base64 encoding as of RFC1521
2068
2069 Example:
2070
2071         $ uuencode busybox busybox
2072         begin 755 busybox
2073         M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&
2074         .....
2075         $ uudecode busybox busybox > busybox.uu
2076         $
2077
2078 -------------------------------
2079
2080 =item uudecode
2081
2082 Usage: uudecode [OPTION] [FILE]
2083
2084 Uudecode a uuencoded file
2085
2086 Options:
2087
2088         -o FILE  direct output to FILE
2089
2090 Example:
2091
2092         $ uudecode -o busybox busybox.uu
2093         $ ls -l busybox
2094         -rwxr-xr-x   1 ams      ams        245264 Jun  7 21:35 busybox
2095
2096 -------------------------------
2097
2098 =item watchdog
2099
2100 Usage: watchdog device
2101
2102 Periodically writes to watchdog device B<device>.
2103
2104 -------------------------------
2105
2106 =item wc
2107
2108 Usage: wc [OPTION]... [FILE]...
2109
2110 Print line, word, and byte counts for each FILE, and a total line if
2111 more than one FILE is specified.  With no FILE, read standard input.
2112
2113 Options:
2114
2115         -c      print the byte counts
2116         -l      print the newline counts
2117         -L      print the length of the longest line
2118         -w      print the word counts
2119
2120 Example:
2121
2122         $ wc /etc/passwd
2123              31      46    1365 /etc/passwd
2124
2125 -------------------------------
2126
2127 =item which
2128
2129 Usage: which [COMMAND ...]
2130
2131 Locates a COMMAND.
2132
2133 Example:
2134
2135         $ which login
2136         /bin/login
2137
2138 -------------------------------
2139
2140 =item whoami
2141
2142 Usage: whoami
2143
2144 Prints the user name associated with the current effective user id.
2145
2146 Example:
2147
2148         $ whoami
2149         andersen
2150
2151 -------------------------------
2152
2153 =item xargs
2154
2155 Usage: xargs [OPTIONS] [COMMAND] [ARGS...]
2156
2157 Executes COMMAND on every item given by standard input.
2158
2159 Options:
2160
2161                 -t      Print the command just before it is run
2162  
2163 Example:
2164
2165         $ ls | xargs gzip
2166         $ find . -name '*.c' -print | xargs rm
2167
2168 -------------------------------
2169
2170 =item yes
2171
2172 Usage: yes [OPTION]... [STRING]...
2173
2174 Repeatedly outputs a line with all specified STRING(s), or `y'.
2175
2176 -------------------------------
2177
2178 =item zcat
2179
2180 This is essentially an alias for invoking "gunzip B<-c>", where 
2181 it decompresses the file in question and send the output to stdout. 
2182
2183 -------------------------------
2184
2185 =back
2186
2187 =head1 LIBC NSS
2188
2189 GNU Libc uses the Name Service Switch (NSS) to configure the behavior of the C
2190 library for the local environment, and to configure how it reads system data,
2191 such as passwords and group information.  BusyBox has made it Policy that it
2192 will never use NSS, and will never use and libc calls that make use of NSS.
2193 This allows you to run an embedded system without the need for installing an
2194 /etc/nsswitch.conf file and without and /lib/libnss_* libraries installed.
2195
2196 If you are using a system that is using a remote LDAP server for authentication
2197 via GNU libc NSS, and you want to use BusyBox, then you will need to adjust the
2198 BusyBox source.  Chances are though, that if you have enough space to install
2199 of that stuff on your system, then you probably want the full GNU utilities.
2200
2201 =head1 SEE ALSO
2202
2203 textutils(1), shellutils(1), etc...
2204
2205 =head1 MAINTAINER
2206
2207 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
2208
2209 =head1 AUTHORS
2210
2211 The following people have contributed code to BusyBox whether
2212 they know it or not.
2213
2214
2215 =for html <br>
2216
2217 Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
2218
2219     Tons of new stuff, major rewrite of most of the
2220     core apps, tons of new apps as noted in header files.
2221
2222 =for html <br>
2223
2224 Edward Betts <edward@debian.org>
2225
2226     expr, hostid, logname, tty, wc, whoami, yes
2227  
2228 =for html <br>
2229
2230 John Beppu <beppu@lineo.com>
2231
2232     du, head, nslookup, sort, tee, uniq
2233
2234 =for html <br>
2235
2236 Brian Candler <B.Candler@pobox.com>
2237
2238     tiny-ls(ls)
2239
2240 =for html <br>
2241
2242 Randolph Chung <tausq@debian.org>
2243
2244     fbset, ping, hostname, and mkfifo
2245
2246 =for html <br>
2247
2248 Dave Cinege <dcinege@psychosis.com>     
2249
2250     more(v2), makedevs, dutmp, modularization, auto links file, 
2251     various fixes, Linux Router Project maintenance
2252
2253 =for html <br>
2254
2255 Karl M. Hegbloom <karlheg@debian.org>
2256
2257     cp_mv.c, the test suite, various fixes to utility.c, &c.
2258
2259 =for html <br>
2260
2261 Daniel Jacobowitz <dan@debian.org>
2262
2263     mktemp.c
2264
2265 =for html <br>
2266
2267 Matt Kraai <kraai@alumni.carnegiemellon.edu>
2268
2269     documentation, bugfixes
2270
2271 =for html <br>
2272
2273 John Lombardo <john@deltanet.com>       
2274
2275     dirname, tr
2276
2277 =for html <br>
2278
2279 Glenn McGrath <bug1@netconnect.com.au>
2280
2281     ar.c
2282
2283 =for html <br>
2284
2285 Bruce Perens <bruce@pixar.com>
2286
2287     Original author of BusyBox. His code is still in many apps.
2288
2289 =for html <br>
2290
2291 Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com>
2292
2293     wget - Contributed by permission of Covad Communications
2294
2295 =for html <br>
2296
2297 Pavel Roskin <proski@gnu.org>
2298
2299     Lots of bugs fixes and patches.
2300
2301 =for html <br>
2302
2303 Gyepi Sam <gyepi@praxis-sw.com>
2304
2305     Remote logging feature for syslogd
2306
2307 =for html <br>
2308
2309 Linus Torvalds <torvalds@transmeta.com>
2310
2311     mkswap, fsck.minix, mkfs.minix
2312
2313 =for html <br>
2314
2315 Mark Whitley <markw@lineo.com>
2316
2317     sed remix, bug fixes, style-guide, etc.
2318
2319 =for html <br>
2320
2321 Charles P. Wright <cpwright@villagenet.com>
2322
2323     gzip, mini-netcat(nc)
2324
2325 =for html <br>
2326
2327 Enrique Zanardi <ezanardi@ull.es>
2328
2329     tarcat (since removed), loadkmap, various fixes, Debian maintenance
2330
2331 =cut
2332
2333 # $Id: busybox.pod,v 1.89 2001/01/25 23:40:32 andersen Exp $