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