More documentation updates, and minor fixes to make things sync
[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 -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 [-signal] process-name [process-name ...]
765
766 Send a signal (default is SIGTERM) to the specified process(es).
767
768 Options:
769         -l      List all signal names and numbers.
770
771 Example:
772
773         $ killall apache
774
775 -------------------------------
776
777 =item length
778
779 Usage: length string
780
781 Prints out the length of the specified string.
782
783 Example:
784         $ length "Hello"
785         5
786
787 -------------------------------
788
789 =item ln
790
791 Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
792 Create a link named LINK_NAME or DIRECTORY to the specified TARGET
793  
794 Options:
795
796         -s      make symbolic links instead of hard links
797         -f      remove existing destination files
798  
799 Example:
800
801     $ ln -s busybox /tmp/ls
802     [andersen@debian busybox]$ ls -l /tmp/ls
803     lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -> busybox*
804
805 -------------------------------
806
807 =item loadacm
808
809 FIXME
810
811 -------------------------------
812
813 =item loadfont
814
815 FIXME
816
817 -------------------------------
818
819 =item loadkmap
820
821 FIXME
822
823 -------------------------------
824
825 =item logger
826
827 Usage: logger [OPTION]... [MESSAGE]
828
829 Write MESSAGE to the system log.  If MESSAGE is '-', log stdin.
830
831 Options:
832
833         -s      Log to stderr as well as the system log.
834         -t      Log using the specified tag (defaults to user name).
835         -p      Enter the message with the specified priority.
836                 This may be numerical or a ``facility.level'' pair.
837
838 Example:
839
840                 $ logger "hello"
841
842 -------------------------------
843
844 =item logname
845
846 Usage: logname
847
848 Print the name of the current user.
849
850 Example:
851
852         $ logname
853         root
854
855 -------------------------------
856
857 =item ls
858
859 Usage: ls [B<-1acdelnpuxACF>] [filenames...]
860
861 Options:
862
863         -a      do not hide entries starting with .
864         -c      with  -l:  show ctime (the time of last
865                 modification of file status information)
866         -d      list directory entries instead of contents
867         -e      list both full date and full time
868         -l      use a long listing format
869         -n      list numeric UIDs and GIDs instead of names
870         -p      append indicator (one of /=@|) to entries
871         -u      with -l: show access time (the time of last
872                 access of the file)
873         -x      list entries by lines instead of by columns
874         -A      do not list implied . and ..
875         -C      list entries by columns
876         -F      append indicator (one of */=@|) to entries
877
878 -------------------------------
879
880 =item lsmod
881
882 Usage: lsmod
883
884 Shows a list of all currently loaded kernel modules.
885
886 -------------------------------
887
888 =item makedevs
889
890 Usage: makedevs NAME TYPE MAJOR MINOR FIRST LAST [s]
891
892 Creates a range of block or character special files
893
894 TYPEs include:
895
896         b:      Make a block (buffered) device.
897         c or u: Make a character (un-buffered) device.
898         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
899
900 FIRST specifies the number appended to NAME to create the first device.
901 LAST specifies the number of the last item that should be created.
902 If 's' is the last argument, the base device is created as well.
903
904 Example:
905
906         $ makedevs /dev/ttyS c 4 66 2 63
907         [creates ttyS2-ttyS63]
908         $ makedevs /dev/hda b 3 0 0 8 s
909         [creates hda,hda1-hda8]
910
911 -------------------------------
912
913 =item math
914
915 Usage: math expression ...
916
917 This is a Tiny RPN calculator that understands the
918 following operations: +, -, /, *, and, or, not, eor.
919
920 Example:
921
922         $ math 2 2 add
923         4
924         $ math 8 8 \* 2 2 + /
925         16
926         $ math 0 1 and
927         0
928         $ math 0 1 or
929         1
930
931 -------------------------------
932
933 =item mkdir
934
935 Usage: mkdir [OPTION] DIRECTORY...
936
937 Create the DIRECTORY(ies), if they do not already exist
938
939 Options:
940
941         -m      set permission mode (as in chmod), not rwxrwxrwx - umask
942         -p      no error if dir exists, make parent directories as needed
943
944 Example:
945
946         $ mkdir /tmp/foo
947         $ mkdir /tmp/foo
948         /tmp/foo: File exists
949         $ mkdir /tmp/foo/bar/baz
950         /tmp/foo/bar/baz: No such file or directory
951         $ mkdir -p /tmp/foo/bar/baz
952
953 -------------------------------
954
955 =item mkfifo
956
957 Usage: mkfifo [OPTIONS] name
958
959 Creates a named pipe (identical to 'mknod name p')
960
961 Options:
962         -m      create the pipe using the specified mode (default a=rw)
963
964 -------------------------------
965
966 =item mkfs.minix
967
968 Usage: mkfs.minix [B<-c> | B<-l> filename] [B<-nXX>] [B<-iXX>] /dev/name [blocks]
969
970 Make a MINIX filesystem.
971
972 OPTIONS:
973
974         -c              Check the device for bad blocks
975         -n [14|30]      Specify the maximum length of filenames
976         -i              Specify the number of inodes for the filesystem
977         -l FILENAME     Read the bad blocks list from FILENAME
978         -v              Make a Minix version 2 filesystem
979
980 -------------------------------
981
982 =item mknod
983
984 Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
985
986 Create a special file (block, character, or pipe).
987
988 Options:
989         -m      create the special file using the specified mode (default a=rw)
990
991 TYPEs include:
992         b:      Make a block (buffered) device.
993         c or u: Make a character (un-buffered) device.
994         p:      Make a named pipe. MAJOR and MINOR are ignored for named pipes.
995
996 Example:
997
998         $ mknod /dev/fd0 b 2 0 
999         $ mknod -m 644 /tmp/pipe p
1000
1001 -------------------------------
1002
1003 =item mkswap
1004
1005 Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
1006
1007 Prepare a disk partition to be used as a swap partition.
1008
1009 Options:
1010
1011         -c              Check for read-ability.
1012         -v0             Make version 0 swap [max 128 Megs].
1013         -v1             Make version 1 swap [big!] (default for kernels > 2.1.117).
1014         block-count     Number of block to use (default is entire partition).
1015
1016 -------------------------------
1017
1018 =item mnc
1019
1020 Usage: mnc [IP] [port]
1021
1022 mini-netcat opens a pipe to IP:port
1023
1024 Example:
1025
1026         $ mnc foobar.somedomain.com 25
1027         220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
1028         help
1029         214-Commands supported:
1030         214-    HELO EHLO MAIL RCPT DATA AUTH
1031         214     NOOP QUIT RSET HELP
1032         quit
1033         221 foobar closing connection
1034  
1035 -------------------------------
1036
1037 =item more
1038
1039 Usage: more [file ...]
1040
1041 More is a filter for paging through text one screenful at a time.
1042
1043 Example:
1044
1045         $ dmesg | more
1046
1047 -------------------------------
1048
1049 =item mount
1050
1051 Usage:  mount [flags]
1052         mount [flags] device directory [B<-o> options,more-options]
1053
1054 Flags:
1055
1056         -a:     Mount all file systems in fstab.
1057         -o option:      One of many filesystem options, listed below.
1058         -r:     Mount the filesystem read-only.
1059         -t filesystem-type:     Specify the filesystem type.
1060         -w:     Mount for reading and writing (default).
1061
1062 Options for use with the "B<-o>" flag:
1063
1064         async / sync:   Writes are asynchronous / synchronous.
1065         dev / nodev:    Allow use of special device files / disallow them.
1066         exec / noexec:  Allow use of executable files / disallow them.
1067         loop: Mounts a file via loop device.
1068         suid / nosuid:  Allow set-user-id-root programs / disallow them.
1069         remount: Re-mount a currently-mounted filesystem, changing its flags.
1070         ro / rw: Mount for read-only / read-write.
1071         There are EVEN MORE flags that are specific to each filesystem.
1072         You'll have to see the written documentation for those.
1073
1074 Example:
1075
1076         $ mount
1077         /dev/hda3 on / type minix (rw)
1078         proc on /proc type proc (rw)
1079         devpts on /dev/pts type devpts (rw)
1080         $ mount /dev/fd0 /mnt -t msdos -o ro
1081         $ mount /tmp/diskimage /opt -t ext2 -o loop
1082
1083 -------------------------------
1084
1085 =item mt
1086
1087 Usage: mt [-f device] opcode value
1088
1089 Control magnetic tape drive operation
1090
1091 -------------------------------
1092
1093 =item mv
1094
1095 Usage: mv SOURCE DEST
1096
1097    or: mv SOURCE... DIRECTORY
1098
1099 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
1100
1101 Example:
1102
1103         $ mv /tmp/foo /bin/bar
1104
1105 -------------------------------
1106
1107 =item nslookup
1108
1109 Usage: nslookup [HOST]
1110
1111 Queries the nameserver for the IP address of the given HOST
1112
1113 Example:
1114
1115         $ nslookup localhost
1116         Server:     default
1117         Address:    default
1118
1119         Name:       debian
1120         Address:    127.0.0.1
1121
1122 -------------------------------
1123
1124 =item ping
1125
1126 Usage: ping [OPTION]... host
1127
1128 Send ICMP ECHO_REQUEST packets to network hosts.
1129
1130 Options:
1131
1132         -c COUNT        Send only COUNT pings.
1133         -q              Quiet mode, only displays output at start
1134                         and when finished.
1135 Example:
1136
1137         $ ping localhost
1138         PING slag (127.0.0.1): 56 data bytes
1139         64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
1140
1141         --- debian ping statistics ---
1142         1 packets transmitted, 1 packets received, 0% packet loss
1143         round-trip min/avg/max = 20.1/20.1/20.1 ms
1144
1145 -------------------------------
1146
1147 =item poweroff
1148
1149 Shuts down the system, and requests that the kernel turn off power upon halting.
1150
1151 -------------------------------
1152
1153 =item printf
1154
1155 Usage: printf format [argument...]
1156
1157 Formats and prints the given data in a manner similar to the C printf command.
1158
1159 Example:
1160
1161         $ printf "Val=%d\n" 5
1162         Val=5
1163
1164 -------------------------------
1165
1166 =item ps
1167
1168 Usage: ps
1169
1170 Report process status
1171
1172 This version of ps accepts no options.
1173
1174 Example:
1175
1176         $ ps
1177   PID  Uid      Gid State Command
1178     1 root     root     S init
1179     2 root     root     S [kflushd]
1180     3 root     root     S [kupdate]
1181     4 root     root     S [kpiod]
1182     5 root     root     S [kswapd]
1183   742 andersen andersen S [bash]
1184   743 andersen andersen S -bash
1185   745 root     root     S [getty]
1186  2990 andersen andersen R ps
1187
1188 -------------------------------
1189
1190 =item pwd
1191
1192 Prints the full filename of the current working directory.
1193
1194 Example:
1195
1196         $ pwd
1197         /root
1198
1199 -------------------------------
1200
1201 =item reboot
1202
1203 Instructs the kernel to reboot the system.
1204
1205 -------------------------------
1206
1207 =item rm
1208
1209 Usage: rm [OPTION]... FILE...
1210
1211 Remove (unlink) the FILE(s).
1212
1213 Options:
1214
1215         -f              remove existing destinations, never prompt
1216         -r or -R        remove the contents of directories recursively
1217
1218 Example:
1219
1220         $ rm -rf /tmp/foo
1221
1222 -------------------------------
1223
1224 =item rmdir
1225
1226 Usage: rmdir [OPTION]... DIRECTORY...
1227
1228 Remove the DIRECTORY(ies), if they are empty.
1229
1230 Example:
1231
1232         # rmdir /tmp/foo
1233
1234 -------------------------------
1235
1236 =item rmmod
1237
1238 Usage: rmmod [OPTION]... [MODULE]...
1239
1240 Unloads the specified kernel modules from the kernel.
1241
1242 Options:
1243
1244         -a      Try to remove all unused kernel modules.
1245
1246 Example:
1247
1248         $ rmmod tulip
1249
1250 -------------------------------
1251
1252 =item sed
1253
1254 Usage: sed [-n] -e script [file...]
1255
1256 Allowed sed scripts come in the following form:
1257
1258         'ADDR [!] COMMAND'
1259
1260         where address ADDR can be:
1261           NUMBER    Match specified line number
1262           $         Match last line
1263           /REGEXP/  Match specified regexp
1264           (! inverts the meaning of the match)
1265
1266         and COMMAND can be:
1267           s/regexp/replacement/[igp]
1268                  which attempt to match regexp against the pattern space
1269                  and if successful replaces the matched portion with replacement.
1270
1271           aTEXT
1272                  which appends TEXT after the pattern space
1273
1274 Options:
1275
1276         -e      add the script to the commands to be executed
1277         -n      suppress automatic printing of pattern space
1278
1279 This version of sed matches full regular expresions.
1280
1281 Example:
1282
1283         $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
1284         bar
1285
1286 -------------------------------
1287
1288 =item sh
1289
1290 FIXME
1291
1292 -------------------------------
1293
1294 =item sfdisk
1295
1296 Usage: sfdisk [options] device ...
1297
1298 device: something like /dev/hda or /dev/sda
1299
1300 useful options:
1301
1302     -s [or --show-size]: list size of a partition
1303     -c [or --id]:        print or change partition Id
1304     -l [or --list]:      list partitions of each device
1305     -d [or --dump]:      idem, but in a format suitable for later input
1306     -i [or --increment]: number cylinders etc. from 1 instead of from 0
1307     -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB
1308     -T [or --list-types]:list the known partition types
1309     -D [or --DOS]:       for DOS-compatibility: waste a little space
1310     -R [or --re-read]:   make kernel reread partition table
1311     -N# :                change only the partition with number #
1312     -n :                 do not actually write to disk
1313     -O file :            save the sectors that will be overwritten to file
1314     -I file :            restore these sectors again
1315     -v [or --version]:   print version
1316     -? [or --help]:      print this message
1317
1318 dangerous options:
1319
1320     -g [or --show-geometry]: print the kernel's idea of the geometry
1321     -x [or --show-extended]: also list extended partitions on output
1322
1323                              or expect descriptors for them on input
1324     -L  [or --Linux]:      do not complain about things irrelevant for Linux
1325     -q  [or --quiet]:      suppress warning messages
1326     You can override the detected geometry using:
1327     -C# [or --cylinders #]:set the number of cylinders to use
1328     -H# [or --heads #]:    set the number of heads to use
1329     -S# [or --sectors #]:  set the number of sectors to use
1330
1331 You can disable all consistency checking with:
1332
1333     -f  [or --force]:      do what I say, even if it is stupid
1334
1335 -------------------------------
1336
1337 =item sleep
1338
1339 Usage: sleep N
1340
1341 Pause for N seconds.
1342
1343 Example:
1344
1345         $ sleep 2
1346         [2 second delay results]
1347
1348 -------------------------------
1349
1350 =item sort
1351
1352 Usage: sort [-n] [-r] [FILE]...
1353
1354 Sorts lines of text in the specified files
1355
1356 Example:
1357
1358         $ echo -e "e\nf\nb\nd\nc\na" | sort
1359         a
1360         b
1361         c
1362         d
1363         e
1364         f
1365
1366 -------------------------------
1367
1368 =item sync
1369
1370 Usage: sync
1371
1372 Write all buffered filesystem blocks to disk.
1373
1374 -------------------------------
1375
1376 =item syslogd
1377
1378 Usage: syslogd [OPTION]...
1379
1380 Linux system and kernel (provides klogd) logging utility.
1381 Note that this version of syslogd/klogd ignores /etc/syslog.conf.
1382
1383 Options:
1384
1385         -m      Change the mark timestamp interval. default=20min. 0=off
1386         -n      Do not fork into the background (for when run by init)
1387         -K      Do not start up the klogd process (by default syslogd spawns klogd).
1388         -O      Specify an alternate log file.  default=/var/log/messages
1389
1390 -------------------------------
1391
1392 =item swapon
1393
1394 Usage: swapon [OPTION] [device]
1395
1396 Start swapping virtual memory pages on the given device.
1397
1398 Options:
1399
1400         -a      Start swapping on all swap devices
1401
1402 -------------------------------
1403
1404 =item swapoff
1405
1406 Usage: swapoff [OPTION] [device]
1407
1408 Stop swapping virtual memory pages on the given device.
1409
1410 Options:
1411
1412         -a      Stop swapping on all swap devices
1413
1414 -------------------------------
1415
1416 =item tail
1417
1418 Usage: tail [OPTION] [FILE]...
1419
1420 Print last 10 lines of each FILE to standard output.
1421 With more than one FILE, precede each with a header giving the
1422 file name. With no FILE, or when FILE is -, read standard input.
1423
1424 Options:
1425
1426         -n NUM          Print last NUM lines instead of first 10
1427         -f              Output data as the file grows.  This version
1428                         of 'tail -f' supports only one file at a time.
1429
1430 Example:
1431
1432         $ tail -n 1 /etc/resolv.conf
1433         nameserver 10.0.0.1
1434
1435 -------------------------------
1436
1437 =item tar
1438
1439 Usage: tar -[cxtvO] [--exclude File] [-f tarFile] [FILE] ...
1440
1441 Create, extract, or list files from a tar file.  Note that
1442 this version of tar treats hard links as separate files.
1443
1444 Main operation mode:
1445
1446         c               create
1447         x               extract
1448         t               list
1449
1450 File selection:
1451
1452         f               name of tarfile or "-" for stdin
1453         O               extract to stdout
1454         --exclude       file to exclude
1455
1456 Informative output:
1457
1458         v               verbosely list files processed
1459
1460 Example:
1461
1462         $ zcat /tmp/tarball.tar.gz | tar -xf -
1463         $ tar -cf /tmp/tarball.tar /usr/local
1464
1465 -------------------------------
1466
1467 =item test, [
1468
1469 Usage: test EXPRESSION
1470 or   [ EXPRESSION ]
1471
1472 Checks file types and compares values returning an exit
1473 code determined by the value of EXPRESSION.
1474
1475 Example:
1476
1477         $ test 1 -eq 2
1478         $ echo $?
1479         1
1480         $ test 1 -eq 1
1481         $ echo $?
1482         0
1483         $ [ -d /etc ]
1484         $ echo $?
1485         0
1486         $ [ -d /junk ]
1487         $ echo $?
1488         1
1489
1490 -------------------------------
1491
1492 =item tee
1493
1494 Usage: tee [OPTION]... [FILE]...
1495
1496 Copy standard input to each FILE, and also to standard output.
1497
1498 Options:
1499
1500         -a      append to the given FILEs, do not overwrite
1501
1502 Example:
1503
1504         $ echo "Hello" | tee /tmp/foo
1505         $ cat /tmp/foo
1506         Hello
1507
1508 -------------------------------
1509
1510 =item touch
1511
1512 Usage: touch [-c] file [file ...]
1513
1514 Update the last-modified date on (or create) the selected file[s].
1515
1516 Example:
1517
1518         $ ls -l /tmp/foo
1519         /bin/ls: /tmp/foo: No such file or directory
1520         $ touch /tmp/foo
1521         $ ls -l /tmp/foo
1522         -rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
1523
1524 -------------------------------
1525
1526 =item tr
1527
1528 Usage:  tr [-csu] string1 string2
1529         tr [-cu] -d string1
1530         tr [-cu] -s string1
1531         tr [-cu] -ds string1 string2
1532
1533 Translate, squeeze, and/or delete characters from standard
1534 input, writing to standard output.
1535
1536 Example:
1537
1538         $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
1539         hello world
1540
1541 -------------------------------
1542
1543 =item true
1544
1545 Returns an exit code of TRUE (0)
1546
1547 Example:
1548
1549         $ true
1550         $ echo $?
1551         0
1552
1553 -------------------------------
1554
1555 =item tty
1556
1557 FIXME
1558
1559 -------------------------------
1560
1561 =item umount
1562
1563 FIXME
1564
1565 -------------------------------
1566
1567 =item uname
1568
1569 FIXME
1570
1571 -------------------------------
1572
1573 =item uniq
1574
1575 FIXME
1576
1577 -------------------------------
1578
1579 =item update
1580
1581 FIXME
1582
1583 -------------------------------
1584
1585 =item uptime
1586
1587 FIXME
1588
1589 -------------------------------
1590
1591 =item usleep
1592
1593 FIXME
1594
1595 -------------------------------
1596
1597 =item wc
1598
1599 FIXME
1600
1601 -------------------------------
1602
1603 =item whoami
1604
1605 FIXME
1606
1607 -------------------------------
1608
1609 =item yes
1610
1611 FIXME
1612
1613 -------------------------------
1614
1615 =item zcat
1616
1617 FIXME
1618
1619 -------------------------------
1620
1621 =back
1622
1623 =head1 SEE ALSO
1624
1625 textutils(1), shellutils(1), etc...
1626
1627 =head1 MAINTAINER
1628
1629 Erik Andersen <erik@lineo.com>
1630
1631 =head1 AUTHORS
1632
1633 The following people have contributed code to BusyBox whether
1634 they know it or not.
1635
1636 Erik Andersen <erik@lineo.com>
1637
1638 =for html <br>
1639
1640 John Beppu <beppu@lineo.com>
1641
1642 =for html <br>
1643
1644 Brian Candler <B.Candler@pobox.com>
1645
1646 =for html <br>
1647
1648 Randolph Chung <tausq@debian.org>
1649
1650 =for html <br>
1651
1652 Dave Cinege <dcinege@psychosis.com>     
1653
1654 =for html <br>
1655
1656 Karl M. Hegbloom <karlheg@debian.org>
1657
1658 =for html <br>
1659
1660 Bruce Perens <bruce@perens.com>
1661
1662 =for html <br>
1663
1664 Linus Torvalds <torvalds@transmeta.com>
1665
1666 =for html <br>
1667
1668 Charles P. Wright <cpwright@villagenet.com>
1669
1670 =for html <br>
1671
1672 Enrique Zanardi <ezanardi@ull.es>
1673
1674 =for html <br>
1675
1676 =cut
1677
1678 # $Id: busybox.pod,v 1.10 2000/04/15 16:34:54 erik Exp $