+ wrap things in B<> to make pod2man happy
[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 FIXME
1294
1295 -------------------------------
1296
1297 =item sfdisk
1298
1299 Usage: sfdisk [options] device ...
1300
1301 device: something like /dev/hda or /dev/sda
1302
1303 useful options:
1304
1305     -s [or --show-size]: list size of a partition
1306     -c [or --id]:        print or change partition Id
1307     -l [or --list]:      list partitions of each device
1308     -d [or --dump]:      idem, but in a format suitable for later input
1309     -i [or --increment]: number cylinders etc. from 1 instead of from 0
1310     -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB
1311     -T [or --list-types]:list the known partition types
1312     -D [or --DOS]:       for DOS-compatibility: waste a little space
1313     -R [or --re-read]:   make kernel reread partition table
1314     -N# :                change only the partition with number #
1315     -n :                 do not actually write to disk
1316     -O file :            save the sectors that will be overwritten to file
1317     -I file :            restore these sectors again
1318     -v [or --version]:   print version
1319     -? [or --help]:      print this message
1320
1321 dangerous options:
1322
1323     -g [or --show-geometry]: print the kernel's idea of the geometry
1324     -x [or --show-extended]: also list extended partitions on output
1325
1326                              or expect descriptors for them on input
1327     -L  [or --Linux]:      do not complain about things irrelevant for Linux
1328     -q  [or --quiet]:      suppress warning messages
1329     You can override the detected geometry using:
1330     -C# [or --cylinders #]:set the number of cylinders to use
1331     -H# [or --heads #]:    set the number of heads to use
1332     -S# [or --sectors #]:  set the number of sectors to use
1333
1334 You can disable all consistency checking with:
1335
1336     -f  [or --force]:      do what I say, even if it is stupid
1337
1338 -------------------------------
1339
1340 =item sleep
1341
1342 Usage: sleep N
1343
1344 Pause for N seconds.
1345
1346 Example:
1347
1348         $ sleep 2
1349         [2 second delay results]
1350
1351 -------------------------------
1352
1353 =item sort
1354
1355 Usage: sort [B<-n>] [B<-r>] [FILE]...
1356
1357 Sorts lines of text in the specified files
1358
1359 Example:
1360
1361         $ echo -e "e\nf\nb\nd\nc\na" | sort
1362         a
1363         b
1364         c
1365         d
1366         e
1367         f
1368
1369 -------------------------------
1370
1371 =item sync
1372
1373 Usage: sync
1374
1375 Write all buffered filesystem blocks to disk.
1376
1377 -------------------------------
1378
1379 =item syslogd
1380
1381 Usage: syslogd [OPTION]...
1382
1383 Linux system and kernel (provides klogd) logging utility.
1384 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1385
1386 Options:
1387
1388         -m      Change the mark timestamp interval. default=20min. 0=off
1389         -n      Do not fork into the background (for when run by init)
1390         -K      Do not start up the klogd process (by default syslogd spawns klogd).
1391         -O      Specify an alternate log file.  default=/var/log/messages
1392
1393 -------------------------------
1394
1395 =item swapon
1396
1397 Usage: swapon [OPTION] [device]
1398
1399 Start swapping virtual memory pages on the given device.
1400
1401 Options:
1402
1403         -a      Start swapping on all swap devices
1404
1405 -------------------------------
1406
1407 =item swapoff
1408
1409 Usage: swapoff [OPTION] [device]
1410
1411 Stop swapping virtual memory pages on the given device.
1412
1413 Options:
1414
1415         -a      Stop swapping on all swap devices
1416
1417 -------------------------------
1418
1419 =item tail
1420
1421 Usage: tail [OPTION] [FILE]...
1422
1423 Print last 10 lines of each FILE to standard output.
1424 With more than one FILE, precede each with a header giving the
1425 file name. With no FILE, or when FILE is -, read standard input.
1426
1427 Options:
1428
1429         -n NUM          Print last NUM lines instead of first 10
1430         -f              Output data as the file grows.  This version
1431                         of 'tail -f' supports only one file at a time.
1432
1433 Example:
1434
1435         $ tail -n 1 /etc/resolv.conf
1436         nameserver 10.0.0.1
1437
1438 -------------------------------
1439
1440 =item tar
1441
1442 Usage: tar -[cxtvO] [B<--exclude> File] [B<-f> tarFile] [FILE] ...
1443
1444 Create, extract, or list files from a tar file.  Note that
1445 this version of tar treats hard links as separate files.
1446
1447 Main operation mode:
1448
1449         c               create
1450         x               extract
1451         t               list
1452
1453 File selection:
1454
1455         f               name of tarfile or "-" for stdin
1456         O               extract to stdout
1457         --exclude       file to exclude
1458
1459 Informative output:
1460
1461         v               verbosely list files processed
1462
1463 Example:
1464
1465         $ zcat /tmp/tarball.tar.gz | tar -xf -
1466         $ tar -cf /tmp/tarball.tar /usr/local
1467
1468 -------------------------------
1469
1470 =item test, [
1471
1472 Usage: test EXPRESSION
1473 or   [ EXPRESSION ]
1474
1475 Checks file types and compares values returning an exit
1476 code determined by the value of EXPRESSION.
1477
1478 Example:
1479
1480         $ test 1 -eq 2
1481         $ echo $?
1482         1
1483         $ test 1 -eq 1
1484         $ echo $?
1485         0
1486         $ [ -d /etc ]
1487         $ echo $?
1488         0
1489         $ [ -d /junk ]
1490         $ echo $?
1491         1
1492
1493 -------------------------------
1494
1495 =item tee
1496
1497 Usage: tee [OPTION]... [FILE]...
1498
1499 Copy standard input to each FILE, and also to standard output.
1500
1501 Options:
1502
1503         -a      append to the given FILEs, do not overwrite
1504
1505 Example:
1506
1507         $ echo "Hello" | tee /tmp/foo
1508         $ cat /tmp/foo
1509         Hello
1510
1511 -------------------------------
1512
1513 =item touch
1514
1515 Usage: touch [B<-c>] file [file ...]
1516
1517 Update the last-modified date on (or create) the selected file[s].
1518
1519 Example:
1520
1521         $ ls -l /tmp/foo
1522         /bin/ls: /tmp/foo: No such file or directory
1523         $ touch /tmp/foo
1524         $ ls -l /tmp/foo
1525         -rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
1526
1527 -------------------------------
1528
1529 =item tr
1530
1531 Usage:  
1532
1533   tr [-csu] string1 string2
1534   tr [-cu] -d string1
1535   tr [-cu] -s string1
1536   tr [-cu] -ds string1 string2
1537
1538 Translate, squeeze, and/or delete characters from standard
1539 input, writing to standard output.
1540
1541 Example:
1542
1543         $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1544         hello world
1545
1546 -------------------------------
1547
1548 =item true
1549
1550 Returns an exit code of TRUE (0)
1551
1552 Example:
1553
1554         $ true
1555         $ echo $?
1556         0
1557
1558 -------------------------------
1559
1560 =item tty
1561
1562 FIXME
1563
1564 -------------------------------
1565
1566 =item umount
1567
1568 FIXME
1569
1570 -------------------------------
1571
1572 =item uname
1573
1574 FIXME
1575
1576 -------------------------------
1577
1578 =item uniq
1579
1580 FIXME
1581
1582 -------------------------------
1583
1584 =item update
1585
1586 FIXME
1587
1588 -------------------------------
1589
1590 =item uptime
1591
1592 FIXME
1593
1594 -------------------------------
1595
1596 =item usleep
1597
1598 FIXME
1599
1600 -------------------------------
1601
1602 =item wc
1603
1604 FIXME
1605
1606 -------------------------------
1607
1608 =item whoami
1609
1610 FIXME
1611
1612 -------------------------------
1613
1614 =item yes
1615
1616 FIXME
1617
1618 -------------------------------
1619
1620 =item zcat
1621
1622 FIXME
1623
1624 -------------------------------
1625
1626 =back
1627
1628 =head1 SEE ALSO
1629
1630 textutils(1), shellutils(1), etc...
1631
1632 =head1 MAINTAINER
1633
1634 Erik Andersen <erik@lineo.com>
1635
1636 =head1 AUTHORS
1637
1638 The following people have contributed code to BusyBox whether
1639 they know it or not.
1640
1641 Erik Andersen <erik@lineo.com>
1642
1643 =for html <br>
1644
1645 John Beppu <beppu@lineo.com>
1646
1647 =for html <br>
1648
1649 Brian Candler <B.Candler@pobox.com>
1650
1651 =for html <br>
1652
1653 Randolph Chung <tausq@debian.org>
1654
1655 =for html <br>
1656
1657 Dave Cinege <dcinege@psychosis.com>     
1658
1659 =for html <br>
1660
1661 Karl M. Hegbloom <karlheg@debian.org>
1662
1663 =for html <br>
1664
1665 Bruce Perens <bruce@perens.com>
1666
1667 =for html <br>
1668
1669 Linus Torvalds <torvalds@transmeta.com>
1670
1671 =for html <br>
1672
1673 Charles P. Wright <cpwright@villagenet.com>
1674
1675 =for html <br>
1676
1677 Enrique Zanardi <ezanardi@ull.es>
1678
1679 =for html <br>
1680
1681 =cut
1682
1683 # $Id: busybox.pod,v 1.11 2000/04/16 10:22:28 beppu Exp $