Latest and greatest. Some effort at libc5 (aiming towards newlib)
[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 emdedded system.  The utilities in BusyBox generally have fewer options then
20 their full featured GNU cousins; however, the options that are included provide
21 the expected functionality and behave very much like their GNU counterparts.  
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 basename, cat, chgrp, chmod, chown, chroot, clear, chvt, cp, date, dd, df,
59 dirname, dmesg, du, dutmp, echo, false, fbset, fdflush, find, free,
60 freeramdisk, deallocvt, fsck.minix, grep, gunzip, gzip, halt, head, hostid,
61 hostname, init, kill, killall, length, ln, loadacm, loadfont, loadkmap, logger,
62 logname, ls, lsmod, makedevs, math, mkdir, mkfifo, mkfs.minix, mknod, mkswap,
63 mktemp, mnc, more, mount, mt, mv, nslookup, ping, poweroff, printf, ps, pwd,
64 reboot, rm, rmdir, rmmod, sed, setkeycodes, sh, sfdisk, sleep, sort, sync,
65 syslogd, swapon, swapoff, tail, tar, test, tee, touch, tr, true, tty, umount,
66 uname, uniq, update, uptime, usleep, wc, whoami, yes, zcat, [
67
68 =over 4
69
70 =item basename
71
72 Usage: basename [file ...]
73
74 Strips directory path and suffixes from FILE(s). 
75
76 Example: 
77
78         $ basename /usr/local/bin/foo
79         foo
80         $ basename /usr/local/bin/
81         bin
82
83 -------------------------------
84
85 =item cat  
86
87 Usage: cat [FILE ...]
88
89 Concatenates FILE(s) and prints them to the standard output.
90
91 Example:
92
93         $ cat /proc/uptime
94         110716.72 17.67
95
96 -------------------------------
97
98 =item chgrp
99
100 Usage: chgrp [OPTION]... GROUP FILE...
101
102 Change the group membership of each FILE to GROUP.
103
104 Options:
105
106         -R      change files and directories recursively
107
108 Example:
109
110         $ ls -l /tmp/foo
111         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
112         $ chgrp root /tmp/foo
113         $ ls -l /tmp/foo
114         -r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo
115
116 -------------------------------
117
118 =item chmod
119
120 Usage: chmod [B<-R>] MODE[,MODE]... FILE...
121
122 Changes file access permissions for the specified FILE(s) (or directories).
123 Each MODE is defined by combining the letters for WHO has access to the file,
124 an OPERATOR for selecting how the permissions should be changed, and a
125 PERISSION for FILE(s) (or directories).
126
127 WHO may be chosen from
128
129         u       User who owns the file
130         g       Users in the file's Group
131         o       Other users not in the file's group
132         a       All users
133
134 OPERATOR may be chosen from
135
136         +       Add a permission
137         -       Remove a permission
138         =       Assign a permission
139  
140 PERMISSION may be chosen from
141
142         r       Read
143         w       Write
144         x       Execute (or access for directories)
145         s       Set user (or group) ID bit
146         t       Stickey bit (for directories prevents removing files by non-owners)
147
148 Alternately, permissions can be set numerically where the first three
149 numbers are calculated by adding the octal values, such as
150
151         4       Read
152         2       Write
153         1       Execute
154
155 An optional fourth digit can also be used to specify
156
157         4       Set user ID
158         2       Set group ID
159         1       Stickey bit
160
161 Options:
162
163         -R      Change files and directories recursively.
164  
165 Example:
166
167         $ ls -l /tmp/foo
168         -rw-rw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo
169         $ chmod u+x /tmp/foo
170         $ ls -l /tmp/foo
171         -rwxrw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo*
172         $ chmod 444 /tmp/foo
173         $ ls -l /tmp/foo
174         -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
175
176 -------------------------------
177
178 =item chown
179
180 Usage: chown [OPTION]...  OWNER[<.|:>[GROUP] FILE...
181
182 Changes the owner and/or group of each FILE to OWNER and/or GROUP.
183
184 Options:
185
186         -R      Changes files and directories recursively
187
188 Example:
189
190         $ ls -l /tmp/foo
191         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
192         $ chown root /tmp/foo
193         $ ls -l /tmp/foo
194         -r--r--r--    1 root     andersen        0 Apr 12 18:25 /tmp/foo
195         $ chown root.root /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 chroot
202
203 Usage: chroot NEWROOT [COMMAND...]
204
205 Run COMMAND with root directory set to NEWROOT.
206  
207 Example:
208
209         $ ls -l /bin/ls
210         lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -> /BusyBox
211         $ mount /dev/hdc1 /mnt -t minix
212         $ chroot /mnt
213         $ ls -l /bin/ls
214         -rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*
215
216 -------------------------------
217
218 =item clear
219
220 Clears the screen.
221
222 -------------------------------
223
224 =item chvt
225
226 Usage: chvt N
227
228 Changes the foreground virtual terminal to /dev/ttyN
229
230 -------------------------------
231
232 =item cp
233
234 Usage: cp [OPTION]... SOURCE DEST
235
236    or: cp [OPTION]... SOURCE... DIRECTORY
237
238 Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
239
240         -a      Same as -dpR
241         -d      Preserves links
242         -p      Preserves file attributes if possable
243         -R      Copies directories recursively
244
245 -------------------------------
246
247 =item date
248
249 Usage: date [OPTION]... [+FORMAT]
250
251   or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
252
253 Displays the current time in the given FORMAT, or sets the system date.
254
255 Options:
256         -R      Outputs RFC-822 compliant date string
257         -s      Sets time described by STRING
258         -u      Prints or sets Coordinated Universal Time
259
260 Example:
261
262         $ date
263         Wed Apr 12 18:52:41 MDT 2000
264
265 -------------------------------
266
267 =item dd
268
269 Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
270
271 Copy a file, converting and formatting according to options
272
273         if=FILE read from FILE instead of stdin
274         of=FILE write to FILE instead of stdout
275         bs=n    read and write n bytes at a time
276         count=n copy only n input blocks
277         skip=n  skip n input blocks
278         seek=n  skip n output blocks
279
280 Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
281  
282 Example:
283
284         $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
285         4+0 records in
286         4+0 records out
287
288 -------------------------------
289
290 =item df
291
292 Usage: df [filesystem ...]
293
294 Prints the filesystem space used and space available.
295
296 Example:
297
298         $ df
299         Filesystem           1k-blocks      Used Available Use% Mounted on
300         /dev/sda3              8690864   8553540    137324  98% /
301         /dev/sda1                64216     36364     27852  57% /boot
302         $ df /dev/sda3
303         Filesystem           1k-blocks      Used Available Use% Mounted on
304         /dev/sda3              8690864   8553540    137324  98% /
305
306 -------------------------------
307
308 =item dirname
309
310 Usage: dirname NAME
311
312 Strip non-directory suffix from file name
313
314 Example:
315
316         $ dirname /tmp/foo
317         /tmp
318         $ dirname /tmp/foo/
319         /tmp
320
321 -------------------------------
322
323 =item dmesg
324
325 Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
326  
327 Print or controls the kernel ring buffer.
328
329 -------------------------------
330
331 =item du
332
333 Usage: du [OPTION]... [FILE]...
334
335 Summarize disk space used for each FILE and/or directory.
336 Disk space is printed in units of 1k (i.e. 1024 bytes).
337
338 Options:
339
340         -l      count sizes many times if hard linked
341         -s      display only a total for each argument
342
343 Example:
344
345         $ ./BusyBox du
346         16      ./CVS
347         12      ./kernel-patches/CVS
348         80      ./kernel-patches
349         12      ./tests/CVS
350         36      ./tests
351         12      ./scripts/CVS
352         16      ./scripts
353         12      ./docs/CVS
354         104     ./docs
355         2417    .
356          
357 -------------------------------
358
359 =item dutmp
360
361 Usage: dutmp [FILE]
362
363 Dump utmp file format (pipe delimited) from FILE
364 or stdin to stdout.
365
366 Example:
367
368         $ dutmp /var/run/utmp
369         8|7||si|||0|0|0|955637625|760097|0
370         2|0|~|~~|reboot||0|0|0|955637625|782235|0
371         1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
372         8|125||l4|||0|0|0|955637629|998367|0
373         6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
374         6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
375         7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
376          
377 -------------------------------
378
379 =item echo
380
381 Usage: echo [-neE] [ARG ...]
382
383 Prints the specified ARGs to stdout
384
385 Options:
386
387         -n      suppress trailing newline
388         -e      interpret backslash-escaped characters (i.e. \t=tab etc)
389         -E      disable interpretation of backslash-escaped characters
390
391 Example:
392
393         $ echo "Erik is cool"
394         Erik is cool
395         $  echo -e "Erik\nis\ncool"
396         Erik
397         is
398         cool
399         $ echo "Erik\nis\ncool"
400         Erik\nis\ncool
401          
402 -------------------------------
403
404 =item false
405
406 Returns an exit code of FALSE (1)
407
408 Example:
409
410         $ false
411         $ echo $?
412         1
413
414 -------------------------------
415
416 =item fbset
417
418 Usage: fbset [options] [mode]
419
420 Show and modify frame buffer device settings
421
422 Options:
423
424         -h
425         -fb
426         -db
427         -a
428         -i
429         -g
430         -t
431         -accel
432         -hsync
433         -vsync
434         -laced
435         -double
436
437 Example:
438
439         $ fbset
440         mode "1024x768-76"
441                         # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
442                         geometry 1024 768 1024 768 16
443                         timings 12714 128 32 16 4 128 4
444                         accel false
445                         rgba 5/11,6/5,5/0,0/0
446         endmode
447
448 -------------------------------
449
450 =item fdflush
451
452 Usage: fdflush device
453
454 Force floppy disk drive to detect disk change
455
456 -------------------------------
457
458 =item find
459
460 Usage: find [PATH...] [EXPRESSION]
461
462 Search for files in a directory hierarchy.  The default PATH is
463 the current directory; default EXPRESSION is '-print'
464
465
466 EXPRESSION may consist of:
467
468         -follow                 Dereference symbolic links.
469         -name PATTERN   File name (leading directories removed) matches PATTERN.
470         -print                  print the full file name followed by a newline to stdout.
471
472 Example:
473
474         $ find / -name /etc/passwd
475         /etc/passwd
476
477 -------------------------------
478
479 =item free
480
481 Usage: free
482
483 Displays the amount of free and used memory in the system.
484
485 Example:
486
487         $ free
488                                   total         used         free       shared      buffers
489           Mem:       257628       248724         8904        59644        93124
490          Swap:       128516         8404       120112
491         Total:       386144       257128       129016
492
493 -------------------------------
494
495 =item freeramdisk
496
497 Usage: freeramdisk DEVICE
498
499 Free all memory used by the specified ramdisk.
500
501 Example:
502
503         $ freeramdisk /dev/ram2
504
505 -------------------------------
506
507 =item deallocvt
508
509 Usage: deallocvt N
510
511 Deallocates unused virtual terminal /dev/ttyN
512
513 -------------------------------
514
515 =item fsck.minix
516
517 Usage: fsck.minix [B<-larvsmf>] /dev/name
518
519 Performs a consistency check for MINIX filesystems.
520
521 OPTIONS:
522
523         -l      Lists all filenames
524         -r      Perform interactive repairs
525         -a      Perform automatic repairs
526         -v      verbose
527         -s      Outputs super-block information
528         -m      Activates MINIX-like "mode not cleared" warnings
529         -f      Force file system check.
530
531 -------------------------------
532
533 =item grep
534
535 Usage: grep [OPTIONS]... PATTERN [FILE]...
536
537 Search for PATTERN in each FILE or standard input.
538
539 OPTIONS:
540
541         -h      suppress the prefixing filename on output
542         -i      ignore case distinctions
543         -n      print line number with output lines
544         -q      be quiet. Returns 0 if result was found, 1 otherwise
545     -v      select non-matching lines
546
547 This version of grep matches full regular expresions.
548
549 Example:
550
551         $ grep root /etc/passwd
552         root:x:0:0:root:/root:/bin/bash
553         $ grep ^[rR]oo. /etc/passwd
554         root:x:0:0:root:/root:/bin/bash
555
556 -------------------------------
557
558 =item gunzip
559
560 Usage: gunzip [OPTION]... FILE
561
562 Uncompress FILE (or standard input if FILE is '-').
563
564 Options:
565
566         -c      Write output to standard output
567         -t      Test compressed file integrity
568
569 Example:
570
571         $ ls -la /tmp/BusyBox*
572         -rw-rw-r--    1 andersen andersen   557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
573         $ gunzip /tmp/BusyBox-0.43.tar.gz
574         $ ls -la /tmp/BusyBox*
575         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
576
577 -------------------------------
578
579 =item gzip
580
581 Usage: gzip [OPTION]... FILE
582
583 Compress FILE with maximum compression.
584 When FILE is '-', reads standard input.  Implies B<-c>.
585
586 Options:
587
588         -c      Write output to standard output instead of FILE.gz
589
590 Example:
591
592         $ ls -la /tmp/BusyBox*
593         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
594         $ gzip /tmp/BusyBox-0.43.tar
595         $ ls -la /tmp/BusyBox*
596         -rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
597
598
599 -------------------------------
600
601 =item halt
602
603 Usage: halt
604
605 This comand halts the system.
606
607 -------------------------------
608
609 =item head
610
611 Usage: head [OPTION] [FILE]...
612
613 Print first 10 lines of each FILE to standard output.
614 With more than one FILE, precede each with a header giving the
615 file name. With no FILE, or when FILE is -, read standard input.
616
617 Options:
618
619         -n NUM          Print first NUM lines instead of first 10
620
621 Example:
622
623         $ head -n 2 /etc/passwd
624         root:x:0:0:root:/root:/bin/bash
625         daemon:x:1:1:daemon:/usr/sbin:/bin/sh
626
627 -------------------------------
628
629 =item hostid
630
631 Usage: hostid
632
633 Prints out a unique  32-bit  identifier  for  the  current
634 machine.   The  32-bit identifier is intended to be unique
635 among all UNIX systems in existence. 
636
637 -------------------------------
638
639 =item hostname
640
641 Usage: hostname [OPTION] {hostname | B<-F> file}
642
643 Get or set the hostname or DNS domain name. If a hostname is given
644 (or a file with the B<-F> parameter), the host name will be set.
645
646 Options:
647
648         -s              Short
649         -i              Addresses for the hostname
650         -d              DNS domain name
651         -F FILE         Use the contents of FILE to specify the hostname
652
653 Example:
654
655         $ hostname
656         slag 
657
658 -------------------------------
659
660 =item init
661
662 Usage: init
663
664 Init is the parent of all processes.
665
666 This version of init is designed to be run only by the kernel.
667
668 BusyBox init doesn't support multiple runlevels.  The runlevels field of
669 the /etc/inittab file is completely ignored by BusyBox init. If you want 
670 runlevels, use sysvinit.
671
672 BusyBox init works just fine without an inittab.  If no inittab is found, 
673 it has the following default behavior:
674
675         ::sysinit:/etc/init.d/rcS
676         ::askfirst:/bin/sh
677
678 if it detects that /dev/console is _not_ a serial console, it will also run:
679
680         tty2::askfirst:/bin/sh
681
682 If you choose to use an /etc/inittab file, the inittab entry format is as follows:
683
684         <id>:<runlevels>:<action>:<process>
685
686         <id>: 
687
688                 WARNING: This field has a non-traditional meaning for BusyBox init!
689                 The id field is used by BusyBox init to specify the controlling tty for
690                 the specified process to run on.  The contents of this field are
691                 appended to "/dev/" and used as-is.  There is no need for this field to
692                 be unique, although if it isn't you may have strange results.  If this
693                 field is left blank, it is completely ignored.  Also note that if
694                 BusyBox detects that a serial console is in use, then all entries
695                 containing non-empty id fields will _not_ be run.  BusyBox init does
696                 nothing with utmp.  We don't need no stinkin' utmp.
697
698         <runlevels>: 
699
700                 The runlevels field is completely ignored.
701
702         <action>: 
703
704                 Valid actions include: sysinit, respawn, askfirst, wait, 
705                 once, and ctrlaltdel.
706
707                 askfirst acts just like respawn, but before running the specified
708                 process it displays the line "Please press Enter to activate this
709                 console." and then waits for the user to press enter before starting
710                 the specified process.
711
712                 Unrecognised actions (like initdefault) will cause init to emit
713                 an error message, and then go along with its business.
714
715         <process>: 
716
717                 Specifies the process to be executed and it's command line.
718
719
720 Example /etc/inittab file:
721
722         # This is run first except when booting in single-user mode.
723         #
724         ::sysinit:/etc/init.d/rcS
725
726         # /bin/sh invocations on selected ttys
727         #
728         # Start an "askfirst" shell on the console (whatever that may be)
729         ::askfirst:/bin/sh
730         # Start an "askfirst" shell on /dev/tty2
731         tty2::askfirst:/bin/sh
732
733         # /sbin/getty invocations for selected ttys
734         #
735         tty4::respawn:/sbin/getty 38400 tty4
736         tty5::respawn:/sbin/getty 38400 tty5
737
738
739         # Example of how to put a getty on a serial line (for a terminal)
740         #
741         #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
742         #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
743         #
744         # Example how to put a getty on a modem line.
745         #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
746
747         # Stuff to do before rebooting
748         ::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1
749         ::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1
750
751 -------------------------------
752
753 =item kill
754
755 Usage: kill [B<-signal>] process-id [process-id ...]
756
757 Send a signal (default is SIGTERM) to the specified process(es).
758
759 Options:
760
761         -l      List all signal names and numbers.
762
763 Example:
764
765         $ ps | grep apache
766         252 root     root     S [apache]
767         263 www-data www-data S [apache]
768         264 www-data www-data S [apache]
769         265 www-data www-data S [apache]
770         266 www-data www-data S [apache]
771         267 www-data www-data S [apache]
772         $ kill 252
773
774 -------------------------------
775
776 =item killall
777
778 Usage: killall [B<-signal>] process-name [process-name ...]
779
780 Send a signal (default is SIGTERM) to the specified process(es).
781
782 Options:
783
784         -l      List all signal names and numbers.
785
786 Example:
787
788         $ killall apache
789
790 -------------------------------
791
792 =item length
793
794 Usage: length string
795
796 Prints out the length of the specified string.
797
798 Example:
799         $ length "Hello"
800         5
801
802 -------------------------------
803
804 =item ln
805
806 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
807 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
808  
809 Options:
810
811         -s      make symbolic links instead of hard links
812         -f      remove existing destination files
813  
814 Example:
815
816     $ ln -s BusyBox /tmp/ls
817     [andersen@debian BusyBox]$ ls -l /tmp/ls
818     lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -> BusyBox*
819
820 -------------------------------
821
822 =item loadacm
823
824 Usage: loadacm
825
826 Loads an acm from standard input.
827
828 Example:
829
830         $ loadacm < /etc/i18n/acmname
831
832 -------------------------------
833
834 =item loadfont
835
836 Usage: loadfont
837
838 Loads a console font from standard input.
839
840 Example:
841
842         $ loadfont < /etc/i18n/fontname
843
844 -------------------------------
845
846 =item loadkmap
847
848 Usage: loadkmap
849
850 Loads a binary keyboard translation table from standard input.
851
852 Example:
853
854         $ loadkmap < /etc/i18n/lang-keymap
855
856 -------------------------------
857
858 =item logger
859
860 Usage: logger [OPTION]... [MESSAGE]
861
862 Write MESSAGE to the system log.  If MESSAGE is '-', log stdin.
863
864 Options:
865
866         -s      Log to stderr as well as the system log.
867         -t      Log using the specified tag (defaults to user name).
868         -p      Enter the message with the specified priority.
869                 This may be numerical or a ``facility.level'' pair.
870
871 Example:
872
873                 $ logger "hello"
874
875 -------------------------------
876
877 =item logname
878
879 Usage: logname
880
881 Print the name of the current user.
882
883 Example:
884
885         $ logname
886         root
887
888 -------------------------------
889
890 =item ls
891
892 Usage: ls [B<-1acdelnpuxACF>] [filenames...]
893
894 Options:
895
896         -a      do not hide entries starting with .
897         -c      with  -l:  show ctime (the time of last
898                 modification of file status information)
899         -d      list directory entries instead of contents
900         -e      list both full date and full time
901         -l      use a long listing format
902         -n      list numeric UIDs and GIDs instead of names
903         -p      append indicator (one of /=@|) to entries
904         -u      with -l: show access time (the time of last
905                 access of the file)
906         -x      list entries by lines instead of by columns
907         -A      do not list implied . and ..
908         -C      list entries by columns
909         -F      append indicator (one of */=@|) to entries
910
911 -------------------------------
912
913 =item lsmod
914
915 Usage: lsmod
916
917 Shows a list of all currently loaded kernel modules.
918
919 -------------------------------
920
921 =item makedevs
922
923 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
924
925 Creates a range of block or character special files
926
927 TYPEs include:
928
929         b:      Make a block (buffered) device.
930         c or u: Make a character (un-buffered) device.
931         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
932
933 FIRST specifies the number appended to NAME to create the first device.
934 LAST specifies the number of the last item that should be created.
935 If 's' is the last argument, the base device is created as well.
936
937 Example:
938
939         $ makedevs /dev/ttyS c 4 66 2 63
940         [creates ttyS2-ttyS63]
941         $ makedevs /dev/hda b 3 0 0 8 s
942         [creates hda,hda1-hda8]
943
944 -------------------------------
945
946 =item math
947
948 Usage: math expression ...
949
950 This is a Tiny RPN calculator that understands the
951 following operations: +, -, /, *, and, or, not, eor.
952
953 Example:
954
955         $ math 2 2 add
956         4
957         $ math 8 8 \* 2 2 + /
958         16
959         $ math 0 1 and
960         0
961         $ math 0 1 or
962         1
963
964 -------------------------------
965
966 =item mkdir
967
968 Usage: mkdir [OPTION] DIRECTORY...
969
970 Create the DIRECTORY(ies), if they do not already exist
971
972 Options:
973
974         -m      set permission mode (as in chmod), not rwxrwxrwx - umask
975         -p      no error if dir exists, make parent directories as needed
976
977 Example:
978
979         $ mkdir /tmp/foo
980         $ mkdir /tmp/foo
981         /tmp/foo: File exists
982         $ mkdir /tmp/foo/bar/baz
983         /tmp/foo/bar/baz: No such file or directory
984         $ mkdir -p /tmp/foo/bar/baz
985
986 -------------------------------
987
988 =item mkfifo
989
990 Usage: mkfifo [OPTIONS] name
991
992 Creates a named pipe (identical to 'mknod name p')
993
994 Options:
995
996         -m      create the pipe using the specified mode (default a=rw)
997
998 -------------------------------
999
1000 =item mkfs.minix
1001
1002 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
1003
1004 Make a MINIX filesystem.
1005
1006 OPTIONS:
1007
1008         -c              Check the device for bad blocks
1009         -n [14|30]      Specify the maximum length of filenames
1010         -i              Specify the number of inodes for the filesystem
1011         -l FILENAME     Read the bad blocks list from FILENAME
1012         -v              Make a Minix version 2 filesystem
1013
1014 -------------------------------
1015
1016 =item mknod
1017
1018 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
1019
1020 Create a special file (block, character, or pipe).
1021
1022 Options:
1023
1024         -m      create the special file using the specified mode (default a=rw)
1025
1026 TYPEs include:
1027         b:      Make a block (buffered) device.
1028         c or u: Make a character (un-buffered) device.
1029         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
1030
1031 Example:
1032
1033         $ mknod /dev/fd0 b 2 0 
1034         $ mknod -m 644 /tmp/pipe p
1035
1036 -------------------------------
1037
1038 =item mkswap
1039
1040 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1041
1042 Prepare a disk partition to be used as a swap partition.
1043
1044 Options:
1045
1046         -c              Check for read-ability.
1047         -v0             Make version 0 swap [max 128 Megs].
1048         -v1             Make version 1 swap [big!] (default for kernels > 2.1.117).
1049         block-count     Number of block to use (default is entire partition).
1050
1051 -------------------------------
1052
1053 =item mktemp
1054
1055 Usage: mktemp [-q] TEMPLATE
1056
1057 Creates a temporary file with its name based on TEMPLATE.
1058 TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX).
1059
1060 Example:
1061         
1062         $ mktemp /tmp/temp.XXXXXX
1063         /tmp/temp.mWiLjM
1064         $ ls -la /tmp/temp.mWiLjM
1065         -rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM
1066
1067 -------------------------------
1068
1069 =item mnc
1070
1071 Usage: mnc [IP] [port]
1072
1073 mini-netcat opens a pipe to IP:port
1074
1075 Example:
1076
1077         $ mnc foobar.somedomain.com 25
1078         220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1079         help
1080         214-Commands supported:
1081         214-    HELO EHLO MAIL RCPT DATA AUTH
1082         214     NOOP QUIT RSET HELP
1083         quit
1084         221 foobar closing connection
1085  
1086 -------------------------------
1087
1088 =item more
1089
1090 Usage: more [file ...]
1091
1092 More is a filter for paging through text one screenful at a time.
1093
1094 Example:
1095
1096         $ dmesg | more
1097
1098 -------------------------------
1099
1100 =item mount
1101
1102 Usage:  mount [flags]
1103         mount [flags] device directory [B<-o> options,more-options]
1104
1105 Flags:
1106
1107         -a:     Mount all file systems in fstab.
1108         -o option:      One of many filesystem options, listed below.
1109         -r:     Mount the filesystem read-only.
1110         -t filesystem-type:     Specify the filesystem type.
1111         -w:     Mount for reading and writing (default).
1112
1113 Options for use with the "B<-o>" flag:
1114
1115         async / sync:   Writes are asynchronous / synchronous.
1116         dev / nodev:    Allow use of special device files / disallow them.
1117         exec / noexec:  Allow use of executable files / disallow them.
1118         loop: Mounts a file via loop device.
1119         suid / nosuid:  Allow set-user-id-root programs / disallow them.
1120         remount: Re-mount a currently-mounted filesystem, changing its flags.
1121         ro / rw: Mount for read-only / read-write.
1122         There are EVEN MORE flags that are specific to each filesystem.
1123         You'll have to see the written documentation for those.
1124
1125 Example:
1126
1127         $ mount
1128         /dev/hda3 on / type minix (rw)
1129         proc on /proc type proc (rw)
1130         devpts on /dev/pts type devpts (rw)
1131         $ mount /dev/fd0 /mnt -t msdos -o ro
1132         $ mount /tmp/diskimage /opt -t ext2 -o loop
1133
1134 -------------------------------
1135
1136 =item mt
1137
1138 Usage: mt [B<-f> device] opcode value
1139
1140 Control magnetic tape drive operation
1141
1142 -------------------------------
1143
1144 =item mv
1145
1146 Usage: mv SOURCE DEST
1147
1148    or: mv SOURCE... DIRECTORY
1149
1150 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1151
1152 Example:
1153
1154         $ mv /tmp/foo /bin/bar
1155
1156 -------------------------------
1157
1158 =item nslookup
1159
1160 Usage: nslookup [HOST]
1161
1162 Queries the nameserver for the IP address of the given HOST
1163
1164 Example:
1165
1166         $ nslookup localhost
1167         Server:     default
1168         Address:    default
1169
1170         Name:       debian
1171         Address:    127.0.0.1
1172
1173 -------------------------------
1174
1175 =item ping
1176
1177 Usage: ping [OPTION]... host
1178
1179 Send ICMP ECHO_REQUEST packets to network hosts.
1180
1181 Options:
1182
1183         -c COUNT        Send only COUNT pings.
1184         -q              Quiet mode, only displays output at start
1185                         and when finished.
1186 Example:
1187
1188         $ ping localhost
1189         PING slag (127.0.0.1): 56 data bytes
1190         64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1191
1192         --- debian ping statistics ---
1193         1 packets transmitted, 1 packets received, 0% packet loss
1194         round-trip min/avg/max = 20.1/20.1/20.1 ms
1195
1196 -------------------------------
1197
1198 =item poweroff
1199
1200 Shuts down the system, and requests that the kernel turn off power upon halting.
1201
1202 -------------------------------
1203
1204 =item printf
1205
1206 Usage: printf format [argument...]
1207
1208 Formats and prints the given data in a manner similar to the C printf command.
1209
1210 Example:
1211
1212         $ printf "Val=%d\n" 5
1213         Val=5
1214
1215 -------------------------------
1216
1217 =item ps
1218
1219 Usage: ps
1220
1221 Report process status
1222
1223 This version of ps accepts no options.
1224
1225 Example:
1226
1227         $ ps
1228   PID  Uid      Gid State Command
1229     1 root     root     S init
1230     2 root     root     S [kflushd]
1231     3 root     root     S [kupdate]
1232     4 root     root     S [kpiod]
1233     5 root     root     S [kswapd]
1234   742 andersen andersen S [bash]
1235   743 andersen andersen S -bash
1236   745 root     root     S [getty]
1237  2990 andersen andersen R ps
1238
1239 -------------------------------
1240
1241 =item pwd
1242
1243 Prints the full filename of the current working directory.
1244
1245 Example:
1246
1247         $ pwd
1248         /root
1249
1250 -------------------------------
1251
1252 =item reboot
1253
1254 Instructs the kernel to reboot the system.
1255
1256 -------------------------------
1257
1258 =item rm
1259
1260 Usage: rm [OPTION]... FILE...
1261
1262 Remove (unlink) the FILE(s).
1263
1264 Options:
1265
1266         -f              remove existing destinations, never prompt
1267         -r or -R        remove the contents of directories recursively
1268
1269 Example:
1270
1271         $ rm -rf /tmp/foo
1272
1273 -------------------------------
1274
1275 =item rmdir
1276
1277 Usage: rmdir [OPTION]... DIRECTORY...
1278
1279 Remove the DIRECTORY(ies), if they are empty.
1280
1281 Example:
1282
1283         # rmdir /tmp/foo
1284
1285 -------------------------------
1286
1287 =item rmmod
1288
1289 Usage: rmmod [OPTION]... [MODULE]...
1290
1291 Unloads the specified kernel modules from the kernel.
1292
1293 Options:
1294
1295         -a      Try to remove all unused kernel modules.
1296
1297 Example:
1298
1299         $ rmmod tulip
1300
1301 -------------------------------
1302
1303 =item sed
1304
1305 Usage: sed [B<-n>] B<-e> script [file...]
1306
1307 Allowed sed scripts come in the following form:
1308
1309         'ADDR [!] COMMAND'
1310
1311         where address ADDR can be:
1312           NUMBER    Match specified line number
1313           $         Match last line
1314           /REGEXP/  Match specified regexp
1315           (! inverts the meaning of the match)
1316
1317         and COMMAND can be:
1318           s/regexp/replacement/[igp]
1319                  which attempt to match regexp against the pattern space
1320                  and if successful replaces the matched portion with replacement.
1321
1322           aTEXT
1323                  which appends TEXT after the pattern space
1324
1325 Options:
1326
1327         -e      add the script to the commands to be executed
1328         -n      suppress automatic printing of pattern space
1329
1330 This version of sed matches full regular expresions.
1331
1332 Example:
1333
1334         $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1335         bar
1336
1337 -------------------------------
1338
1339 =item setkeycodes
1340
1341 Usage: setkeycodes SCANCODE KEYCODE ...
1342
1343 Set entries into the kernel's scancode-to-keycode map,
1344 allowing unusual keyboards to generate usable keycodes.
1345
1346 SCANCODE may be either xx or e0xx (hexadecimal),
1347 and KEYCODE is given in decimal
1348
1349 Example:
1350
1351         # setkeycodes e030 127
1352
1353 -------------------------------
1354
1355 =item sh
1356
1357 Usage: sh
1358
1359 lash -- the BusyBox LAme SHell (command interpreter)
1360
1361 This command does not yet have proper documentation.  
1362
1363 Use lash just as you would use any other shell.  It properly handles pipes,
1364 redirects, job control, can be used as the shell for scripts (#!/bin/sh), and
1365 has a sufficient set of builtins to do what is needed.  It does not (yet)
1366 support Bourne Shell syntax.  If you need things like "if-then-else", "while",
1367 and such, use ash or bash.  If you just need a very simple and extremely small
1368 shell, this will do the job.
1369
1370 -------------------------------
1371
1372 =item sfdisk
1373
1374 Usage: sfdisk [options] device ...
1375
1376 device: something like /dev/hda or /dev/sda
1377
1378 useful options:
1379
1380     -s [or --show-size]: list size of a partition
1381     -c [or --id]:        print or change partition Id
1382     -l [or --list]:      list partitions of each device
1383     -d [or --dump]:      idem, but in a format suitable for later input
1384     -i [or --increment]: number cylinders etc. from 1 instead of from 0
1385     -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB
1386     -T [or --list-types]:list the known partition types
1387     -D [or --DOS]:       for DOS-compatibility: waste a little space
1388     -R [or --re-read]:   make kernel reread partition table
1389     -N# :                change only the partition with number #
1390     -n :                 do not actually write to disk
1391     -O file :            save the sectors that will be overwritten to file
1392     -I file :            restore these sectors again
1393     -v [or --version]:   print version
1394     -? [or --help]:      print this message
1395
1396 dangerous options:
1397
1398     -g [or --show-geometry]: print the kernel's idea of the geometry
1399     -x [or --show-extended]: also list extended partitions on output
1400
1401                              or expect descriptors for them on input
1402     -L  [or --Linux]:      do not complain about things irrelevant for Linux
1403     -q  [or --quiet]:      suppress warning messages
1404     You can override the detected geometry using:
1405     -C# [or --cylinders #]:set the number of cylinders to use
1406     -H# [or --heads #]:    set the number of heads to use
1407     -S# [or --sectors #]:  set the number of sectors to use
1408
1409 You can disable all consistency checking with:
1410
1411     -f  [or --force]:      do what I say, even if it is stupid
1412
1413 -------------------------------
1414
1415 =item sleep
1416
1417 Usage: sleep N
1418
1419 Pause for N seconds.
1420
1421 Example:
1422
1423         $ sleep 2
1424         [2 second delay results]
1425
1426 -------------------------------
1427
1428 =item sort
1429
1430 Usage: sort [B<-n>] [B<-r>] [FILE]...
1431
1432 Sorts lines of text in the specified files
1433
1434 Example:
1435
1436         $ echo -e "e\nf\nb\nd\nc\na" | sort
1437         a
1438         b
1439         c
1440         d
1441         e
1442         f
1443
1444 -------------------------------
1445
1446 =item sync
1447
1448 Usage: sync
1449
1450 Write all buffered filesystem blocks to disk.
1451
1452 -------------------------------
1453
1454 =item syslogd
1455
1456 Usage: syslogd [OPTION]...
1457
1458 Linux system and kernel (provides klogd) logging utility.
1459 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1460
1461 Options:
1462
1463         -m      Change the mark timestamp interval. default=20min. 0=off
1464         -n      Do not fork into the background (for when run by init)
1465         -K      Do not start up the klogd process (by default syslogd spawns klogd).
1466         -O      Specify an alternate log file.  default=/var/log/messages
1467
1468 -------------------------------
1469
1470 =item swapon
1471
1472 Usage: swapon [OPTION] [device]
1473
1474 Start swapping virtual memory pages on the given device.
1475
1476 Options:
1477
1478         -a      Start swapping on all swap devices
1479
1480 -------------------------------
1481
1482 =item swapoff
1483
1484 Usage: swapoff [OPTION] [device]
1485
1486 Stop swapping virtual memory pages on the given device.
1487
1488 Options:
1489
1490         -a      Stop swapping on all swap devices
1491
1492 -------------------------------
1493
1494 =item tail
1495
1496 Usage: tail [OPTION] [FILE]...
1497
1498 Print last 10 lines of each FILE to standard output.
1499 With more than one FILE, precede each with a header giving the
1500 file name. With no FILE, or when FILE is -, read standard input.
1501
1502 Options:
1503
1504         -n NUM          Print last NUM lines instead of first 10
1505         -f              Output data as the file grows.  This version
1506                         of 'tail -f' supports only one file at a time.
1507
1508 Example:
1509
1510         $ tail -n 1 /etc/resolv.conf
1511         nameserver 10.0.0.1
1512
1513 -------------------------------
1514
1515 =item tar
1516
1517 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1518
1519 Create, extract, or list files from a tar file.  Note that
1520 this version of tar treats hard links as separate files.
1521
1522 Main operation mode:
1523
1524         c               create
1525         x               extract
1526         t               list
1527
1528 File selection:
1529
1530         f               name of tarfile or "-" for stdin
1531         O               extract to stdout
1532         --exclude       file to exclude
1533
1534 Informative output:
1535
1536         v               verbosely list files processed
1537
1538 Example:
1539
1540         $ zcat /tmp/tarball.tar.gz | tar -xf -
1541         $ tar -cf /tmp/tarball.tar /usr/local
1542
1543 -------------------------------
1544
1545 =item test, [
1546
1547 Usage: test EXPRESSION
1548 or   [ EXPRESSION ]
1549
1550 Checks file types and compares values returning an exit
1551 code determined by the value of EXPRESSION.
1552
1553 Example:
1554
1555         $ test 1 -eq 2
1556         $ echo $?
1557         1
1558         $ test 1 -eq 1
1559         $ echo $?
1560         0
1561         $ [ -d /etc ]
1562         $ echo $?
1563         0
1564         $ [ -d /junk ]
1565         $ echo $?
1566         1
1567
1568 -------------------------------
1569
1570 =item tee
1571
1572 Usage: tee [OPTION]... [FILE]...
1573
1574 Copy standard input to each FILE, and also to standard output.
1575
1576 Options:
1577
1578         -a      append to the given FILEs, do not overwrite
1579
1580 Example:
1581
1582         $ echo "Hello" | tee /tmp/foo
1583         $ cat /tmp/foo
1584         Hello
1585
1586 -------------------------------
1587
1588 =item touch
1589
1590 Usage: touch [B<-c>] file [file ...]
1591
1592 Update the last-modified date on (or create) the selected file[s].
1593
1594 Example:
1595
1596         $ ls -l /tmp/foo
1597         /bin/ls: /tmp/foo: No such file or directory
1598         $ touch /tmp/foo
1599         $ ls -l /tmp/foo
1600         -rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
1601
1602 -------------------------------
1603
1604 =item tr
1605
1606 Usage:  tr [B<-cdsu>] string1 [string2]
1607
1608 Translate, squeeze, and/or delete characters from standard
1609 input, writing to standard output.
1610
1611 Example:
1612
1613         $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1614         hello world
1615
1616 -------------------------------
1617
1618 =item true
1619
1620 Returns an exit code of TRUE (0)
1621
1622 Example:
1623
1624         $ true
1625         $ echo $?
1626         0
1627
1628 -------------------------------
1629
1630 =item tty
1631
1632 Usage: tty
1633
1634 Print the file name of the terminal connected to standard input.
1635
1636 Options:
1637
1638         -s      print nothing, only return an exit status
1639
1640 Example:
1641
1642         $ tty
1643         /dev/tty2
1644
1645 -------------------------------
1646
1647 =item umount
1648
1649 Usage: umount [flags] filesystem|directory
1650
1651 Flags:
1652
1653         -a:     Unmount all file systems
1654         -r:     Try to remount devices as read-only if mount is busy
1655         -f:     Do not free loop device (if a loop device has been used)
1656
1657 Example:
1658
1659         $ umount /dev/hdc1 
1660
1661 -------------------------------
1662
1663 =item uname
1664
1665 Usage: uname [OPTION]...
1666
1667 Print certain system information.  With no OPTION, same as B<-s>.
1668
1669 Options:
1670
1671         -a      print all information
1672         -m      the machine (hardware) type
1673         -n      print the machine's network node hostname
1674         -r      print the operating system release
1675         -s      print the operating system name
1676         -p      print the host processor type
1677         -v      print the operating system version
1678
1679 Example:
1680
1681         $ uname -a
1682         Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
1683
1684 -------------------------------
1685
1686 =item uniq
1687
1688 Usage: uniq [OPTION]... [INPUT [OUTPUT]]
1689
1690 Discard all but one of successive identical lines from INPUT
1691 (or standard input), writing to OUTPUT (or standard output).
1692
1693 Example:
1694
1695         $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
1696         a
1697         b
1698         c
1699
1700 -------------------------------
1701
1702 =item update
1703
1704 Usage: update [options]
1705
1706 Periodically flushes filesystem buffers.
1707
1708 Options:
1709
1710         -S      force use of sync(2) instead of flushing
1711         -s SECS call sync this often (default 30)
1712         -f SECS flush some buffers this often (default 5)
1713
1714 -------------------------------
1715
1716 =item uptime
1717
1718 Usage: uptime
1719
1720 Tells how long the system has been running since boot.
1721
1722 Example:
1723
1724         $ uptime
1725           1:55pm  up  2:30, load average: 0.09, 0.04, 0.00
1726
1727 -------------------------------
1728
1729 =item usleep
1730
1731 Usage: usleep N
1732
1733 Pauses for N microseconds.
1734
1735 Example:
1736
1737         $ usleep 1000000
1738         [pauses for 1 second]
1739
1740 -------------------------------
1741
1742 =item wc
1743
1744 Usage: wc [OPTION]... [FILE]...
1745
1746 Print line, word, and byte counts for each FILE, and a total line if
1747 more than one FILE is specified.  With no FILE, read standard input.
1748
1749 Options:
1750
1751         -c      print the byte counts
1752         -l      print the newline counts
1753         -L      print the length of the longest line
1754         -w      print the word counts
1755
1756 Example:
1757
1758         $ wc /etc/passwd
1759              31      46    1365 /etc/passwd
1760
1761 -------------------------------
1762
1763 =item whoami
1764
1765 Usage: whoami
1766
1767 Prints the user name associated with the current effective user id.
1768
1769 Example:
1770
1771         $ whoami
1772         andersen
1773
1774 -------------------------------
1775
1776 =item yes
1777
1778 Usage: yes [OPTION]... [STRING]...
1779
1780 Repeatedly outputs a line with all specified STRING(s), or `y'.
1781
1782 -------------------------------
1783
1784 =item zcat
1785
1786 This is essentially an alias for invoking "gunzip B<-c>", where 
1787 it decompresses the file inquestion and send the output to stdout. 
1788
1789 -------------------------------
1790
1791 =back
1792
1793 =head1 SEE ALSO
1794
1795 textutils(1), shellutils(1), etc...
1796
1797 =head1 MAINTAINER
1798
1799 Erik Andersen <andersee@debian.org> <andersen@lineo.com>
1800
1801 =head1 AUTHORS
1802
1803 The following people have contributed code to BusyBox whether
1804 they know it or not.
1805
1806 Erik Andersen <andersee@debian.org>
1807
1808 =for html <br>
1809
1810 John Beppu <beppu@lineo.com>
1811
1812 =for html <br>
1813
1814 Brian Candler <B.Candler@pobox.com>
1815
1816 =for html <br>
1817
1818 Randolph Chung <tausq@debian.org>
1819
1820 =for html <br>
1821
1822 Dave Cinege <dcinege@psychosis.com>     
1823
1824 =for html <br>
1825
1826 Karl M. Hegbloom <karlheg@debian.org>
1827
1828 =for html <br>
1829
1830 John Lombardo <john@deltanet.com>       
1831
1832 =for html <br>
1833
1834 Bruce Perens <bruce@perens.com>
1835
1836 =for html <br>
1837
1838 Linus Torvalds <torvalds@transmeta.com>
1839
1840 =for html <br>
1841
1842 Charles P. Wright <cpwright@villagenet.com>
1843
1844 =for html <br>
1845
1846 Enrique Zanardi <ezanardi@ull.es>
1847
1848 =for html <br>
1849
1850 =cut
1851
1852 # $Id: busybox.pod,v 1.24 2000/04/28 00:18:56 erik Exp $