This patch finishes the cleanup of all the commands. It also cleans up
[oweals/busybox.git] / docs / busybox.sgml
1 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [...]>
2 <book id="BusyBoxDocumentation">
3  <bookinfo>
4   <title>BusyBox - The Swiss Army Knife of Embedded Linux</title>
5   
6   <legalnotice>
7    <para>
8      This documentation is free software; you can redistribute
9      it and/or modify it under the terms of the GNU General Public
10      License as published by the Free Software Foundation; either
11      version 2 of the License, or (at your option) any later
12      version.
13    </para>
14       
15    <para>
16      This program is distributed in the hope that it will be
17      useful, but WITHOUT ANY WARRANTY; without even the implied
18      warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19      See the GNU General Public License for more details.
20    </para>
21       
22    <para>
23      You should have received a copy of the GNU General Public
24      License along with this program; if not, write to the Free
25      Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
26      MA 02111-1307 USA
27    </para>
28       
29    <para>
30      For more details see the file COPYING in the source
31      distribution of Linux.
32    </para>
33   </legalnotice>
34  </bookinfo>
35
36 <toc></toc>
37   <chapter id="Introduction">
38      <title>Introduction</title>
39
40         <para>
41         BusyBox combines tiny versions of many common UNIX utilities into a single
42         small executable. It provides minimalist replacements for most of the
43         utilities you usually find in fileutils, shellutils, findutils, textutils,
44         grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment
45         for any small or embedded system. The utilities in BusyBox generally have
46         fewer options than their full-featured GNU cousins; however, the options
47         that are included provide the expected functionality and behave very much
48         like their GNU counterparts. 
49         </para>
50
51         <para>
52         BusyBox has been written with size-optimization and limited resources in
53         mind. It is also extremely modular so you can easily include or exclude
54         commands (or features) at compile time. This makes it easy to customize
55         your embedded systems. To create a working system, just add a kernel, a
56         shell (such as ash), and an editor (such as elvis-tiny or ae).
57         </para>
58   </chapter>
59
60   <chapter id="Syntax">
61      <title>How to use BusyBox</title>
62         <sect1 id="How to use BusyBox">
63             <title>Syntax</title
64
65             <para>
66             <screen>
67              BusyBox &lt;function&gt; [arguments...]  # or
68             </screen>
69             </para>
70
71             <para>
72             <screen>
73              &lt;function&gt; [arguments...]          # if symlinked
74             </screen>
75             </para>
76         </sect1>
77
78         <sect1 id="Invoking BusyBox">
79             <para>
80             When you create a link to BusyBox for the function you wish to use, when
81             BusyBox is called using that link it will behave as if the command itself
82             has been invoked.
83             </para>
84
85             <para>
86             For example, entering
87             </para>
88
89             <para>
90             <screen>
91                     ln -s ./BusyBox ls
92                     ./ls
93             </screen>
94             </para>
95
96             <para>
97             will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
98             into BusyBox). 
99             </para>
100
101             <para>
102             You can also invoke BusyBox by issuing the command as an argument on the
103             command line. For example, entering
104             </para>
105
106             <para>
107             <screen>
108                     ./BusyBox ls
109             </screen>
110             </para>
111
112             <para>
113             will also cause BusyBox to behave as 'ls'. 
114             </para>
115
116         </sect1>
117
118         <sect1 id="Common options">
119             <para>
120             Most BusyBox commands support the <emphasis>--help</emphasis> option to provide 
121             a terse runtime description of their behavior. 
122             </para>
123         </sect1>
124   </chapter>
125
126   <chapter id="Commands">
127      <title>BusyBox Commands</title>
128         <sect1 id="Available BusyBox Commands">
129             <title>Available BusyBox Commands</title>
130                 <para>
131                 Currently defined functions include:
132                 </para>
133
134                 <para>
135                 ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
136                 dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
137                 fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
138                 head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
139                 loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
140                 mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
141                 nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
142                 setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
143                 tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
144                 uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
145                 </para>
146         </sect1>
147
148         <sect1 id="ar">
149             <title>ar</title>
150
151                 <para>
152                 Usage: ar [OPTION] archive [FILENAME]...
153                 </para>
154
155                 <para>
156                 Extract or list files from an ar archive.
157                 </para>
158
159                 <para>
160                 Options:
161                 </para>
162
163                 <para>
164                 <screen>
165                         o       Preserve original dates
166                         p       Extract to stdout
167                         t       List
168                         x       Extract
169                         v       Verbosely list files processed
170                 </screen>
171                 </para>
172         </sect1>
173
174         <sect1 id="basename">
175             <title>basename</title>
176                 <para>
177                 Usage: basename FILE [SUFFIX]
178                 </para>
179
180                 <para>
181                 Strip directory path and suffixes from FILE. If specified, also removes
182                 any trailing SUFFIX.
183                 </para>
184
185                 <para>
186                 Example:
187                 </para>
188
189                 <para>
190                 <screen>
191                         $ basename /usr/local/bin/foo
192                         foo
193                         $ basename /usr/local/bin/
194                         bin
195                         $ basename /foo/bar.txt .txt
196                         bar
197                 </screen>
198                 </para>
199         </sect1>
200
201         <sect1 id="cat">
202             <title>cat</title>
203
204                 <para>
205                 Usage: cat [FILE]...
206                 </para>
207
208                 <para>
209                 Concatenate <literal>FILE(s)</literal> and prints them to the standard
210                 output.
211                 </para>
212
213                 <para>
214                 Example:
215                 </para>
216
217                 <para>
218                 <screen>
219                         $ cat /proc/uptime
220                         110716.72 17.67
221                 </screen>
222                 </para>
223         </sect1>
224
225         <sect1 id="chgrp">
226             <title>chgrp</title>
227
228                 <para>
229                 Usage: chgrp [OPTION]... GROUP FILE...
230                 </para>
231
232                 <para>
233                 Change the group membership of each FILE to GROUP.
234                 </para>
235
236                 <para>
237                 Options:
238                 </para>
239
240                 <para>
241                 <screen>
242                         -R      Change files and directories recursively
243                 </screen>
244                 </para>
245
246                 <para>
247                 Example:
248                 </para>
249
250                 <para>
251                 <screen>
252                         $ ls -l /tmp/foo
253                         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
254                         $ chgrp root /tmp/foo
255                         $ ls -l /tmp/foo
256                         -r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo
257                 </screen>
258                 </para>
259         </sect1>
260
261         <sect1 id="chmod">
262             <title>chmod</title>
263
264                 <para>
265                 Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
266                 </para>
267
268                 <para>
269                 Change file access permissions for the specified
270                 <literal>FILE(s)</literal> (or directories). Each MODE is defined by
271                 combining the letters for WHO has access to the file, an OPERATOR for
272                 selecting how the permissions should be changed, and a PERMISSION for
273                 <literal>FILE(s)</literal> (or directories).
274                 </para>
275
276                 <para>
277                 WHO may be chosen from
278                 </para>
279
280                 <para>
281                 <screen>
282                         u       User who owns the file
283                         g       Users in the file's Group
284                         o       Other users not in the file's group
285                         a       All users
286                 </screen>
287                 </para>
288
289                 <para>
290                 OPERATOR may be chosen from
291                 </para>
292
293                 <para>
294                 <screen>
295                         +       Add a permission
296                         -       Remove a permission
297                         =       Assign a permission
298                 </screen>
299                 </para>
300
301                 <para>
302                 PERMISSION may be chosen from
303                 </para>
304
305                 <para>
306                 <screen>
307                         r       Read
308                         w       Write
309                         x       Execute (or access for directories)
310                         s       Set user (or group) ID bit
311                         t       Sticky bit (for directories prevents removing files by non-owners)
312                 </screen>
313                 </para>
314
315                 <para>
316                 Alternately, permissions can be set numerically where the first three
317                 numbers are calculated by adding the octal values, such as
318                 </para>
319
320                 <para>
321                 <screen>
322                         4       Read
323                         2       Write
324                         1       Execute
325                 </screen>
326                 </para>
327
328                 <para>
329                 An optional fourth digit can also be used to specify
330                 </para>
331
332                 <para>
333                 <screen>
334                         4       Set user ID
335                         2       Set group ID
336                         1       Sticky bit
337                 </screen>
338                 </para>
339
340                 <para>
341                 Options:
342                 </para>
343
344                 <para>
345                 <screen>
346                         -R      Change files and directories recursively.
347                 </screen>
348                 </para>
349
350                 <para>
351                 Example:
352                 </para>
353
354                 <para>
355                 <screen>
356                         $ ls -l /tmp/foo
357                         -rw-rw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo
358                         $ chmod u+x /tmp/foo
359                         $ ls -l /tmp/foo
360                         -rwxrw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo*
361                         $ chmod 444 /tmp/foo
362                         $ ls -l /tmp/foo
363                         -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
364                 </screen>
365                 </para>
366         </sect1>
367         
368         <sect1 id="chown">
369             <title>chown</title>
370                 <para>
371                 Usage: chown [OPTION]... OWNER[&lt;.|:&gt;[GROUP] FILE...
372                 </para>
373
374                 <para>
375                 Change the owner and/or group of each FILE to OWNER and/or GROUP.
376                 </para>
377
378                 <para>
379                 Options:
380                 </para>
381
382                 <para>
383                 <screen>
384                         -R      Change files and directories recursively
385                 </screen>
386                 </para>
387
388                 <para>
389                 Example:
390                 </para>
391
392                 <para>
393                 <screen>
394                         $ ls -l /tmp/foo
395                         -r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo
396                         $ chown root /tmp/foo
397                         $ ls -l /tmp/foo
398                         -r--r--r--    1 root     andersen        0 Apr 12 18:25 /tmp/foo
399                         $ chown root.root /tmp/foo
400                         ls -l /tmp/foo
401                         -r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo
402                 </screen>
403                 </para>
404         </sect1>
405
406         <sect1 id="chroot">
407             <title>chroot</title>
408                 <para>
409                 Usage: chroot NEWROOT [COMMAND...]
410                 </para>
411
412                 <para>
413                 Run COMMAND with root directory set to NEWROOT.
414                 </para>
415
416                 <para>
417                 Example:
418                 </para>
419
420                 <para>
421                 <screen>
422                         $ ls -l /bin/ls
423                         lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -&gt; /BusyBox
424                         $ mount /dev/hdc1 /mnt -t minix
425                         $ chroot /mnt
426                         $ ls -l /bin/ls
427                         -rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*
428                 </screen>
429                 </para>
430         </sect1>
431
432         <sect1 id="chvt">
433             <title>chvt</title>
434                 <para>
435                 Usage: chvt N
436                 </para>
437
438                 <para>
439                 Change the foreground virtual terminal to /dev/ttyN
440                 </para>
441         </sect1>
442
443         <sect1 id="clear">
444             <title>clear</title>
445
446                 <para>
447                 Usage: clear
448                 </para>
449
450                 <para>
451                 Clear the screen.
452                 </para>
453         </sect1>
454
455         <sect1 id="cp">
456             <title>cp</title>
457
458                 <para>
459                 Usage: cp [OPTION]... SOURCE DEST
460                 </para>
461
462                 <para>
463                 <screen>
464                    or: cp [OPTION]... SOURCE... DIRECTORY
465                 </screen>
466                 </para>
467
468                 <para>
469                 Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
470                 DIRECTORY.
471                 </para>
472
473                 <para>
474                 Options:
475                 </para>
476
477                 <para>
478                 <screen>
479                         -a      Same as -dpR
480                         -d      Preserve links
481                         -p      Preserve file attributes if possible
482                         -R      Copy directories recursively
483                 </screen>
484                 </para>
485         </sect1>
486
487         <sect1 id="cut">
488             <title>cut</title>
489
490                 <para>
491                 Usage: cut [OPTION]... [FILE]...
492                 </para>
493
494                 <para>
495                 Print selected fields from each input FILE to standard output.
496                 </para>
497
498                 <para>
499                 Options:
500                 </para>
501
502                 <para>
503                 <screen>
504                                 -b LIST Output only bytes from LIST
505                                 -c LIST Output only characters from LIST
506                                 -d CHAR Use CHAR instead of tab as the field delimiter
507                                 -s      Only output Lines if the include DELIM
508                                 -f N    Print only these fields
509                                 -n      Ignored
510                 </screen>
511                 </para>
512
513                 <para>
514                 Example:
515                 </para>
516
517                 <para>
518                 <screen>
519                         $ echo "Hello world" | cut -f 1 -d ' '
520                         Hello
521                         $ echo "Hello world" | cut -f 2 -d ' '
522                         world
523                 </screen>
524                 </para>
525         </sect1>
526
527         <sect1 id="date">
528             <title>date</title>
529
530                 <para>
531                 Usage: date [OPTION]... [+FORMAT]
532                 </para>
533
534                 <para>
535                 <screen>
536                   or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
537                 </screen>
538                 </para>
539
540                 <para>
541                 Display the current time in the given FORMAT, or set the system date.
542                 </para>
543
544                 <para>
545                 Options:
546                 </para>
547
548                 <para>
549                 <screen>
550                         -R      Output RFC-822 compliant date string
551                         -s      Set time described by STRING
552                         -u      Print or set Coordinated Universal Time
553                 </screen>
554                 </para>
555
556                 <para>
557                 Example:
558                 </para>
559
560                 <para>
561                 <screen>
562                         $ date
563                         Wed Apr 12 18:52:41 MDT 2000
564                 </screen>
565                 </para>
566         </sect1>
567
568         <sect1 id="dc">
569             <title>dc</title>
570
571                 <para>
572                 Usage: dc [EXPRESSION]
573                 </para>
574
575                 <para>
576                 This is a Tiny RPN calculator that understands the
577                 following operations: +, -, /, *, and, or, not, eor. If
578                 no arguments are given, dc will process input from
579                 stdin.
580                 </para>
581
582                 <para>
583                 The behaviour of BusyBox/dc deviates (just a little ;-)
584                 from GNU/dc, but this will be remedied in the future.
585                 </para>
586
587                 <para>
588                 Example:
589                 </para>
590
591                 <para>
592                 <screen>
593                         $ dc 2 2 +
594                         4
595                         $ dc 8 8 \* 2 2 + /
596                         16
597                         $ dc 0 1 and
598                         0
599                         $ dc 0 1 or
600                         1
601                         $ echo 72 9 div 8 mul | dc
602                         64
603                 </screen>
604                 </para>
605         </sect1>
606
607         <sect1 id="dd">
608             <title>dd</title>
609
610                 <para>
611                 Usage: dd [OPTION]...
612                 </para>
613
614                 <para>
615                 Copy a file, converting and formatting according to
616                 options.
617                 </para>
618
619                 <para>
620                 Options:
621                 </para>
622
623                 <para>
624                 <screen>
625                         if=FILE Read from FILE instead of stdin
626                         of=FILE Write to FILE instead of stdout
627                         bs=N    Read and write N bytes at a time
628                         count=N Copy only N input blocks
629                         skip=N  Skip N input blocks
630                         seek=N  Skip N output blocks
631                 </screen>
632                 </para>
633
634                 <para>
635                 Numbers may be suffixed by w (x2), k (x1024), b (x512),
636                 or M (x1024^2).
637                 </para>
638
639                 <para>
640                 Example:
641                 </para>
642
643                 <para>
644                 <screen>
645                         $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
646                         4+0 records in
647                         4+0 records out
648                 </screen>
649                 </para>
650         </sect1>
651
652         <sect1 id="deallocvt">
653             <title>deallocvt</title>
654
655                 <para>
656                 Usage: deallocvt N
657                 </para>
658
659                 <para>
660                 Deallocate unused virtual terminal /dev/ttyN.
661                 </para>
662         </sect1>
663
664         <sect1 id="df">
665             <title>df</title>
666
667                 <para>
668                 Usage: df [FILE]...
669                 </para>
670
671                 <para>
672                 Print the filesystem space used and space available.
673                 </para>
674
675                 <para>
676                 Example:
677                 </para>
678
679                 <para>
680                 <screen>
681                         $ df
682                         Filesystem           1k-blocks      Used Available Use% Mounted on
683                         /dev/sda3              8690864   8553540    137324  98% /
684                         /dev/sda1                64216     36364     27852  57% /boot
685                         $ df /dev/sda3
686                         Filesystem           1k-blocks      Used Available Use% Mounted on
687                         /dev/sda3              8690864   8553540    137324  98% /
688                 </screen>
689                 </para>
690         </sect1>
691         
692         <sect1 id="dirname">
693             <title>dirname</title>
694
695                 <para>
696                 Usage: dirname NAME
697                 </para>
698
699                 <para>
700                 Strip non-directory suffix from NAME.
701                 </para>
702
703                 <para>
704                 Example:
705                 </para>
706
707                 <para>
708                 <screen>
709                         $ dirname /tmp/foo
710                         /tmp
711                         $ dirname /tmp/foo/
712                         /tmp
713                 </screen>
714                 </para>
715         </sect1>
716
717         <sect1 id="dmesg">
718             <title>dmesg</title>
719
720                 <para>
721                 Usage: dmesg [OPTION]...
722                 </para>
723
724                 <para>
725                 Print or control the kernel ring buffer.
726                 </para>
727
728                 <para>
729                 Options:
730                 </para>
731
732                 <para>
733                 <screen>
734                         -c              Clear the ring buffer after printing
735                         -n LEVEL        Set the console logging level to LEVEL
736                         -s BUFSIZE      Query ring buffer using a buffer of BUFSIZE
737                 </screen>
738                 </para>
739         </sect1>
740
741         <sect1 id="du">
742             <title>du</title>
743
744                 <para>
745                 Usage: du [OPTION]... [FILE]...
746                 </para>
747
748                 <para>
749                 Summarize the disk space used for each FILE or current
750                 directory.  Disk space printed in units of 1k (i.e.
751                 1024 bytes).
752                 </para>
753
754                 <para>
755                 Options:
756                 </para>
757
758                 <para>
759                 <screen>
760                         -l      Count sizes many times if hard linked
761                         -s      Display only a total for each argument
762                 </screen>
763                 </para>
764
765                 <para>
766                 Example:
767                 </para>
768
769                 <para>
770                 <screen>
771                         $ du
772                         16      ./CVS
773                         12      ./kernel-patches/CVS
774                         80      ./kernel-patches
775                         12      ./tests/CVS
776                         36      ./tests
777                         12      ./scripts/CVS
778                         16      ./scripts
779                         12      ./docs/CVS
780                         104     ./docs
781                         2417    .
782                 </screen>
783                 </para>
784         </sect1>
785
786         <sect1 id="dutmp">
787             <title>dutmp</title>
788
789                 <para>
790                 Usage: dutmp [FILE]
791                 </para>
792
793                 <para>
794                 Dump utmp file format (pipe delimited) from FILE or
795                 stdin to stdout.
796                 </para>
797
798                 <para>
799                 Example:
800                 </para>
801
802                 <para>
803                 <screen>
804                         $ dutmp /var/run/utmp
805                         8|7||si|||0|0|0|955637625|760097|0
806                         2|0|~|~~|reboot||0|0|0|955637625|782235|0
807                         1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
808                         8|125||l4|||0|0|0|955637629|998367|0
809                         6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
810                         6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
811                         7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
812                 </screen>
813                 </para>
814         </sect1>
815
816         <sect1 id="echo">
817             <title>echo</title>
818
819                 <para>
820                 Usage: echo [OPTION]... [ARG]...
821                 </para>
822
823                 <para>
824                 Print ARGs to stdout.
825                 </para>
826
827                 <para>
828                 Options:
829                 </para>
830
831                 <para>
832                 <screen>
833                         -n      Suppress trailing newline
834                         -e      Enable interpretation of escaped characters
835                         -E      Disable interpretation of escaped characters
836                 </screen>
837                 </para>
838
839                 <para>
840                 Example:
841                 </para>
842
843                 <para>
844                 <screen>
845                         $ echo "Erik is cool"
846                         Erik is cool
847                         $ echo -e "Erik\nis\ncool"
848                         Erik
849                         is
850                         cool
851                         $ echo "Erik\nis\ncool"
852                         Erik\nis\ncool
853                 </screen>
854                 </para>
855         </sect1>
856
857         <sect1 id="false">
858             <title>false</title>
859
860                 <para>
861                 Usage: false
862                 </para>
863
864                 <para>
865                 Return an exit code of FALSE (1).
866                 </para>
867
868                 <para>
869                 Example:
870                 </para>
871
872                 <para>
873                 <screen>
874                         $ false
875                         $ echo $?
876                         1
877                 </screen>
878                 </para>
879         </sect1>
880
881         <sect1 id="fbset">
882             <title>fbset</title>
883
884                 <para>
885                 Usage: fbset [OPTION]... [MODE]
886                 </para>
887
888                 <para>
889                 Show and modify frame buffer device settings.
890                 </para>
891
892                 <para>
893                 Options:
894                 </para>
895
896                 <para>
897                 <screen>
898                         -h                                              Display option summary
899                         -fb DEVICE                                      Operate on DEVICE
900                         -db FILE                                        Use FILE for mode database
901                         -g XRES YRES VXRES VYRES DEPTH                  Set all geometry parameters
902                         -t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN  Set all timing parameters
903                         -xres RES                                       Set visible horizontal resolution
904                         -yres RES                                       Set visible vertical resolution
905                 </screen>
906                 </para>
907
908                 <para>
909                 Example:
910                 </para>
911
912                 <para>
913                 <screen>
914                         $ fbset
915                         mode "1024x768-76"
916                                         # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
917                                         geometry 1024 768 1024 768 16
918                                         timings 12714 128 32 16 4 128 4
919                                         accel false
920                                         rgba 5/11,6/5,5/0,0/0
921                         endmode
922                 </screen>
923                 </para>
924         </sect1>
925
926         <sect1 id="fdflush">
927             <title>fdflush</title>
928
929                 <para>
930                 Usage: fdflush DEVICE
931                 </para>
932
933                 <para>
934                 Force floppy disk drive to detect disk change on DEVICE.
935                 </para>
936         </sect1>
937
938         <sect1 id="find">
939             <title>find</title>
940
941                 <para>
942                 Usage: find [PATH]... [EXPRESSION]
943                 </para>
944
945                 <para>
946                 Search for files in a directory hierarchy. The default
947                 PATH is the current directory; default EXPRESSION is
948                 '-print'.
949                 </para>
950
951                 <para>
952                 EXPRESSION may consist of:
953                 </para>
954
955                 <para>
956                 <screen>
957                         -follow         Dereference symbolic links
958                         -name PATTERN   File name (leading directories removed) matches PATTERN
959                         -print          Print the full file name followed by a newline to stdout
960                 </screen>
961                 </para>
962
963                 <para>
964                 Example:
965                 </para>
966
967                 <para>
968                 <screen>
969                         $ find / -name /etc/passwd
970                         /etc/passwd
971                 </screen>
972                 </para>
973         </sect1>
974
975         <sect1 id="free">
976             <title>free</title>
977
978                 <para>
979                 Usage: free
980                 </para>
981
982                 <para>
983                 Displays the amount of free and used system memory.
984                 </para>
985
986                 <para>
987                 Example:
988                 </para>
989
990                 <para>
991                 <screen>
992                         $ free
993                         total         used         free       shared      buffers
994                           Mem:       257628       248724         8904        59644        93124
995                          Swap:       128516         8404       120112
996                         Total:       386144       257128       129016
997                 </screen>
998                 </para>
999         </sect1>
1000
1001         <sect1 id="freeramdisk">
1002             <title>freeramdisk</title>
1003
1004                 <para>
1005                 Usage: freeramdisk DEVICE
1006                 </para>
1007
1008                 <para>
1009                 Free all memory used by the ramdisk DEVICE.
1010                 </para>
1011
1012                 <para>
1013                 Example:
1014                 </para>
1015
1016                 <para>
1017                 <screen>
1018                         $ freeramdisk /dev/ram2
1019                 </screen>
1020                 </para>
1021         </sect1>
1022
1023         <sect1 id="fsck.minix">
1024             <title>fsck.minix</title>
1025
1026                 <para>
1027                 Usage: fsck.minix [OPTION]... DEVICE
1028                 </para>
1029
1030                 <para>
1031                 Perform a consistency check on the MINIX filesystem on
1032                 DEVICE.
1033                 </para>
1034
1035                 <para>
1036                 Options:
1037                 </para>
1038
1039                 <para>
1040                 <screen>
1041                         -l      List all filenames
1042                         -r      Perform interactive repairs
1043                         -a      Perform automatic repairs
1044                         -v      Verbose
1045                         -s      Output super-block information
1046                         -m      Activate MINIX-like "mode not cleared" warnings
1047                         -f      Force file system check.
1048                 </screen>
1049                 </para>
1050         </sect1>
1051
1052         <sect1 id="grep">
1053             <title>grep</title>
1054
1055                 <para>
1056                 Usage: grep [OPTIONS]... PATTERN [FILE]...
1057                 </para>
1058
1059                 <para>
1060                 Search for PATTERN in each FILE or stdin.
1061                 </para>
1062
1063                 <para>
1064                 Options:
1065                 </para>
1066
1067                 <para>
1068                 <screen>
1069                         -h      Suppress the prefixing filename on output
1070                         -i      Ignore case distinctions
1071                         -n      Print line number with output lines
1072                         -q      Be quiet. Returns 0 if result was found, 1 otherwise
1073                         -v      Select non-matching lines
1074                 </screen>
1075                 </para>
1076
1077                 <para>
1078                 This version of grep matches full regular expressions.
1079                 </para>
1080
1081                 <para>
1082                 Example:
1083                 </para>
1084
1085                 <para>
1086                 <screen>
1087                         $ grep root /etc/passwd
1088                         root:x:0:0:root:/root:/bin/bash
1089                         $ grep ^[rR]oo. /etc/passwd
1090                         root:x:0:0:root:/root:/bin/bash
1091                 </screen>
1092                 </para>
1093         </sect1>
1094
1095         <sect1 id="gunzip">
1096             <title>gunzip</title>
1097
1098                 <para>
1099                 Usage: gunzip [OPTION]... FILE
1100                 </para>
1101
1102                 <para>
1103                 Uncompress FILE (or stdin if FILE is '-').
1104                 </para>
1105
1106                 <para>
1107                 Options:
1108                 </para>
1109
1110                 <para>
1111                 <screen>
1112                         -c      Write output to standard output
1113                         -t      Test compressed file integrity
1114                 </screen>
1115                 </para>
1116
1117                 <para>
1118                 Example:
1119                 </para>
1120
1121                 <para>
1122                 <screen>
1123                         $ ls -la /tmp/BusyBox*
1124                         -rw-rw-r--    1 andersen andersen   557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
1125                         $ gunzip /tmp/BusyBox-0.43.tar.gz
1126                         $ ls -la /tmp/BusyBox*
1127                         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1128                 </screen>
1129                 </para>
1130         </sect1>
1131
1132 <       <sect1 id="gzip">
1133             <title>gzip</title>
1134
1135                 <para>
1136                 Usage: gzip [OPTION]... FILE
1137                 </para>
1138
1139                 <para>
1140                 Compress FILE (or stdin if FILE is '-') with maximum
1141                 compression to FILE.gz (or stdout if FILE is '-').
1142                 </para>
1143
1144                 <para>
1145                 Options:
1146                 </para>
1147
1148                 <para>
1149                 <screen>
1150                         -c      Write output to standard output
1151                 </screen>
1152                 </para>
1153
1154                 <para>
1155                 Example:
1156                 </para>
1157
1158                 <para>
1159                 <screen>
1160                         $ ls -la /tmp/BusyBox*
1161                         -rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1162                         $ gzip /tmp/BusyBox-0.43.tar
1163                         $ ls -la /tmp/BusyBox*
1164                         -rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
1165                 </screen>
1166                 </para>
1167         </sect1>
1168
1169         <sect1 id="halt">
1170             <title>halt</title>
1171
1172                 <para>
1173                 Usage: halt
1174                 </para>
1175
1176                 <para>
1177                 Halt the system.
1178                 </para>
1179         </sect1>
1180
1181         <sect1 id="head">
1182             <title>head</title>
1183
1184                 <para>
1185                 Usage: head [OPTION] FILE...
1186                 </para>
1187
1188                 <para>
1189                 Print first 10 lines of each FILE to standard output.
1190                 With more than one FILE, precede each with a header
1191                 giving the file name. With no FILE, or when FILE is -,
1192                 read standard input.
1193                 </para>
1194
1195                 <para>
1196                 Options:
1197                 </para>
1198
1199                 <para>
1200                 <screen>
1201                         -n NUM  Print first NUM lines instead of first 10
1202                 </screen>
1203                 </para>
1204
1205                 <para>
1206                 Example:
1207                 </para>
1208
1209                 <para>
1210                 <screen>
1211                         $ head -n 2 /etc/passwd
1212                         root:x:0:0:root:/root:/bin/bash
1213                         daemon:x:1:1:daemon:/usr/sbin:/bin/sh
1214                 </screen>
1215                 </para>
1216         </sect1>
1217
1218         <sect1 id="hostid">
1219             <title>hostid</title>
1220
1221                 <para>
1222                 Usage: hostid
1223                 </para>
1224
1225                 <para>
1226                 Prints out a unique 32-bit identifier for the current
1227                 machine. The 32-bit identifier is intended to be unique
1228                 among all UNIX systems in existence. 
1229                 </para>
1230         </sect1>
1231
1232         <sect1 id="hostname">
1233             <title>hostname</title>
1234
1235                 <para>
1236                 Usage: hostname [OPTION]... [HOSTNAME|-F FILE]
1237                 </para>
1238
1239                 <para>
1240                 Get or set the hostname or DNS domain name. If a
1241                 hostname is given (or a file with the -F parameter), the
1242                 host name will be set.
1243                 </para>
1244
1245                 <para>
1246                 Options:
1247                 </para>
1248
1249                 <para>
1250                 <screen>
1251                         -s      Short
1252                         -i      Addresses for the hostname
1253                         -d      DNS domain name
1254                         -F FILE Use the contents of FILE to specify the hostname
1255                 </screen>
1256                 </para>
1257
1258                 <para>
1259                 Example:
1260                 </para>
1261
1262                 <para>
1263                 <screen>
1264                         $ hostname
1265                         slag
1266                 </screen>
1267                 </para>
1268         </sect1>
1269
1270         <sect1 id="id">
1271             <title>id</title>
1272
1273                 <para>
1274                 Usage: id [OPTION]... [USERNAME]
1275                 </para>
1276
1277                 <para>
1278                 Print information for USERNAME or the current user.
1279                 </para>
1280
1281                 <para>
1282                 Options:
1283                 </para>
1284
1285                 <para>
1286                 <screen>
1287                         -g      Print only the group ID
1288                         -u      Print only the user ID
1289                         -r      Print the real user ID instead of the effective ID (with -ug)
1290                 </screen>
1291                 </para>
1292
1293                 <para>
1294                 Example:
1295                 </para>
1296
1297                 <para>
1298                 <screen>
1299                         $ id
1300                         uid=1000(andersen) gid=1000(andersen)
1301                 </screen>
1302                 </para>
1303         </sect1>
1304
1305         <sect1 id="init">
1306             <title>init</title>
1307
1308                 <para>
1309                 Usage: init
1310                 </para>
1311
1312                 <para>
1313                 Init is the parent of all processes.
1314                 </para>
1315
1316                 <para>
1317                 This version of init is designed to be run only by the
1318                 kernel.
1319                 </para>
1320
1321                 <para>
1322                 BusyBox init doesn't support multiple runlevels. The
1323                 runlevels field of the /etc/inittab file is completely
1324                 ignored by BusyBox init. If you want runlevels, use
1325                 sysvinit.
1326                 </para>
1327
1328                 <para>
1329                 BusyBox init works just fine without an inittab. If no
1330                 inittab is found, it has the following default behavior:
1331                 </para>
1332
1333                 <para>
1334                 <screen>
1335                         ::sysinit:/etc/init.d/rcS
1336                         ::askfirst:/bin/sh
1337                 </screen>
1338                 </para>
1339
1340                 <para>
1341                 If it detects that /dev/console is _not_ a serial
1342                 console, it will also run:
1343                 </para>
1344
1345                 <para>
1346                 <screen>
1347                         tty2::askfirst:/bin/sh
1348                 </screen>
1349                 </para>
1350
1351                 <para>
1352                 If you choose to use an /etc/inittab file, the inittab
1353                 entry format is as follows:
1354                 </para>
1355
1356                 <para>
1357                 <screen>
1358                         &lt;id&gt;:&lt;runlevels&gt;:&lt;action&gt;:&lt;process&gt;
1359                 </screen>
1360                 <para>
1361
1362                 <sect2>
1363                     <title>id</title>
1364                         <para>
1365                         WARNING: This field has a non-traditional
1366                         meaning for BusyBox init!  The id field is used
1367                         by BusyBox init to specify the controlling tty
1368                         for the specified process to run on.  The
1369                         contents of this field are appended to "/dev/"
1370                         and used as-is.  There is no need for this field
1371                         to be unique, although if it isn't you may have
1372                         strange results.  If this field is left blank,
1373                         it is completely ignored.  Also note that if
1374                         BusyBox detects that a serial console is in use,
1375                         then all entries containing non-empty id fields
1376                         will _not_ be run.  BusyBox init does nothing
1377                         with utmp.  We don't need no stinkin' utmp.
1378                         </para>
1379                 </sect2>
1380
1381                 <sect2>
1382                     <title>runlevels</title>
1383
1384                         <para>
1385                         The runlevels field is completely ignored.
1386                         </para>
1387                 </sect2>
1388
1389                 <sect2>
1390                     <title>action</title>
1391
1392                         <para>
1393                         Valid actions include: sysinit, respawn,
1394                         askfirst, wait, once, and ctrlaltdel.
1395                         </para>
1396
1397                         <para>
1398                         askfirst acts just like respawn, but before
1399                         running the specified process it displays the
1400                         line "Please press Enter to activate this
1401                         console." and then waits for the user to press
1402                         enter before starting the specified process.
1403                         </para>
1404
1405                         <para>
1406                         Unrecognized actions (like initdefault) will
1407                         cause init to emit an error message, and then go
1408                         along with its business.
1409                         </para>
1410                 </sect2>
1411
1412                 <sect2>
1413                     <title>process</title>
1414
1415                         <para>
1416                         Specifies the process to be executed and its
1417                         command line.
1418                         </para>
1419                 </sect2>
1420
1421                 <para>
1422                 Example /etc/inittab file:
1423                 </para>
1424
1425                 <para>
1426                 <screen>
1427                         # This is run first except when booting in single-user mode.
1428                         #
1429                         ::sysinit:/etc/init.d/rcS
1430
1431                         # /bin/sh invocations on selected ttys
1432                         #
1433                         # Start an "askfirst" shell on the console (whatever that may be)
1434                         ::askfirst:/bin/sh
1435                         # Start an "askfirst" shell on /dev/tty2
1436                         tty2::askfirst:/bin/sh
1437
1438                         # /sbin/getty invocations for selected ttys
1439                         #
1440                         tty4::respawn:/sbin/getty 38400 tty4
1441                         tty5::respawn:/sbin/getty 38400 tty5
1442
1443                         # Example of how to put a getty on a serial line (for a terminal)
1444                         #
1445                         #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
1446                         #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
1447                         #
1448                         # Example how to put a getty on a modem line.
1449                         #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
1450
1451                         # Stuff to do before rebooting
1452                         ::ctrlaltdel:/bin/umount -a -r &gt; /dev/null 2&gt;&amp;1
1453                         ::ctrlaltdel:/sbin/swapoff -a &gt; /dev/null 2&gt;&amp;1
1454                 </screen>
1455                 </para>
1456         </sect1>
1457
1458         <sect1 id="insmod">
1459             <title>insmod</title>
1460
1461                 <para>
1462                 Usage: insmod [OPTION]... MODULE [symbol=value]...
1463                 </para>
1464
1465                 <para>
1466                 Load MODULE into the kernel.
1467                 </para>
1468
1469                 <para>
1470                 Options:
1471                 </para>
1472
1473                 <para>
1474                 <screen>
1475                         -f      Force module to load into the wrong kernel version.
1476                         -k      Make module autoclean-able.
1477                         -v      Verbose output
1478                         -x      Do not export externs
1479                 </screen>
1480                 </para>
1481         </sect1>
1482
1483         <sect1 id="kill">
1484             <title>kill</title>
1485
1486                 <para>
1487                 Usage: kill [OPTION] PID...
1488                 </para>
1489
1490                 <para>
1491                 Send a signal (default is SIGTERM) to the specified
1492                 PID(s).
1493                 </para>
1494
1495                 <para>
1496                 Options:
1497                 </para>
1498
1499                 <para>
1500                 <screen>
1501                         -l      List all signal names and numbers
1502                         -SIG    Send signal SIG
1503                 </screen>
1504                 </para>
1505
1506                 <para>
1507                 Example:
1508                 </para>
1509
1510                 <para>
1511                 <screen>
1512                         $ ps | grep apache
1513                         252 root     root     S [apache]
1514                         263 www-data www-data S [apache]
1515                         264 www-data www-data S [apache]
1516                         265 www-data www-data S [apache]
1517                         266 www-data www-data S [apache]
1518                         267 www-data www-data S [apache]
1519                         $ kill 252
1520                 </screen>
1521                 </para>
1522         </sect1>
1523
1524         <sect1 id="killall">
1525             <title>killall</title>
1526
1527                 <para>
1528                 Usage: killall [OPTION] NAME...
1529                 </para>
1530
1531                 <para>
1532                 Send a signal (default is SIGTERM) to the specified
1533                 NAME(s).
1534                 </para>
1535
1536                 <para>
1537                 Options:
1538                 </para>
1539
1540                 <para>
1541                 <screen>
1542                         -l      List all signal names and numbers
1543                         -SIG    Send signal SIG
1544                 </screen>
1545                 </para>
1546
1547                 <para>
1548                 Example:
1549                 </para>
1550
1551                 <para>
1552                 <screen>
1553                         $ killall apache
1554                 </screen>
1555                 </para>
1556         </sect1>
1557
1558         <sect1 id="length">
1559             <title>length</title>
1560
1561                 <para>
1562                 Usage: length STRING
1563                 </para>
1564
1565                 <para>
1566                 Print the length of STRING.
1567                 </para>
1568
1569                 <para>
1570                 Example:
1571                 </para>
1572
1573                 <para>
1574                 <screen>
1575                         $ length "Hello"
1576                         5
1577                 </screen>
1578                 </para>
1579         </sect1>
1580
1581         <sect1 id="ln">
1582             <title>ln</title>
1583
1584                 <para>
1585                 Usage: ln [OPTION]... TARGET FILE|DIRECTORY
1586                 </para>
1587
1588                 <para>
1589                 Create a link named FILE or DIRECTORY to the specified
1590                 TARGET.  You may use '--' to indicate that all following
1591                 arguments are non-options.
1592                 </para>
1593
1594                 <para>
1595                 Options:
1596                 </para>
1597
1598                 <para>
1599                 <screen>
1600                         -s      Make symbolic link instead of hard link
1601                         -f      Remove existing destination file
1602                 </screen>
1603                 </para>
1604
1605                 <para>
1606                 Example:
1607                 </para>
1608
1609                 <para>
1610                 <screen>
1611                         $ ln -s BusyBox /tmp/ls
1612                         $ ls -l /tmp/ls
1613                         lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -&gt; BusyBox*
1614                 </screen>
1615                 </para>
1616         </sect1>
1617
1618         <sect1 id="loadacm">
1619             <title>loadacm</title>
1620
1621                 <para>
1622                 Usage: loadacm
1623                 </para>
1624
1625                 <para>
1626                 Load an acm from stdin.
1627                 </para>
1628
1629                 <para>
1630                 Example:
1631                 </para>
1632
1633                 <para>
1634                 <screen>
1635                         $ loadacm &lt; /etc/i18n/acmname
1636                 </screen>
1637                 </para>
1638         </sect1>
1639
1640         <sect1 id="loadfont">
1641             <title>loadfont</title>
1642
1643                 <para>
1644                 Usage: loadfont
1645                 </para>
1646
1647                 <para>
1648                 Load a console font from stdin.
1649                 </para>
1650
1651                 <para>
1652                 Example:
1653                 </para>
1654
1655                 <para>
1656                 <screen>
1657                         $ loadfont &lt; /etc/i18n/fontname
1658                 </screen>
1659                 </para>
1660         </sect1>
1661
1662         <sect1 id="loadkmap">
1663             <title>loadkmap</title>
1664
1665                 <para>
1666                 Usage: loadkmap
1667                 </para>
1668
1669                 <para>
1670                 Load a binary keyboard translation table from stdin.
1671                 </para>
1672
1673                 <para>
1674                 Example:
1675                 </para>
1676
1677                 <para>
1678                 <screen>
1679                         $ loadkmap &lt; /etc/i18n/lang-keymap
1680                 </screen>
1681                 </para>
1682         </sect1>
1683
1684         <sect1 id="logger">
1685             <title>logger</title>
1686
1687                 <para>
1688                 Usage: logger [OPTION]... [MESSAGE]
1689                 </para>
1690
1691                 <para>
1692                 Write MESSAGE to the system log.  If MESSAGE is '-', log
1693                 stdin.
1694                 </para>
1695
1696                 <para>
1697                 Options:
1698                 </para>
1699
1700                 <para>
1701                 <screen>
1702                         -s      Log to stderr as well as the system log
1703                         -t      Log using the specified tag (defaults to user name)
1704                         -p      Enter the message with the specified priority
1705                                 This may be numerical or a ``facility.level'' pair
1706                 </screen>
1707                 </para>
1708
1709                 <para>
1710                 Example:
1711                 </para>
1712
1713                 <para>
1714                 <screen>
1715                         $ logger "hello"
1716                 </screen>
1717                 </para>
1718         </sect1>
1719
1720         <sect1 id="logname">
1721             <title>logname</title>
1722
1723                 <para>
1724                 Usage: logname
1725                 </para>
1726
1727                 <para>
1728                 Print the name of the current user.
1729                 </para>
1730
1731                 <para>
1732                 Example:
1733                 </para>
1734
1735                 <para>
1736                 <screen>
1737                         $ logname
1738                         root
1739                 </screen>
1740                 </para>
1741         </sect1>
1742
1743         <sect1 id="ls">
1744             <title>ls</title>
1745
1746                 <para>
1747                 Usage: ls [OPTION]... [FILE]...
1748                 </para>
1749
1750                 <para>
1751                 
1752                 </para>
1753
1754                 <para>
1755                 Options:
1756                 </para>
1757
1758                 <para>
1759                 <screen>
1760                         -a      Do not hide entries starting with .
1761                         -c      With  -l:  show ctime (the time of last
1762                                 modification of file status information)
1763                         -d      List directory entries instead of contents
1764                         -e      List both full date and full time
1765                         -l      Use a long listing format
1766                         -n      List numeric UIDs and GIDs instead of names
1767                         -p      Append indicator (one of /=@|) to entries
1768                         -u      With -l: show access time (the time of last
1769                                 access of the file)
1770                         -x      List entries by lines instead of by columns
1771                         -A      Do not list implied . and ..
1772                         -C      List entries by columns
1773                         -F      Append indicator (one of */=@|) to entries
1774                         -R      List subdirectories recursively
1775                 </screen>
1776                 </para>
1777
1778                 <para>
1779                 Example:
1780                 </para>
1781
1782                 <para>
1783                 <screen>
1784                 </screen>
1785                 </para>
1786         </sect1>
1787
1788         <sect1 id="lsmod">
1789             <title>lsmod</title>
1790
1791                 <para>
1792                 Usage: lsmod
1793                 </para>
1794
1795                 <para>
1796                 List currently loaded kernel modules.
1797                 </para>
1798         </sect1>
1799
1800         <sect1 id="makedevs">
1801             <title>makedevs</title>
1802
1803                 <para>
1804                 Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s]
1805                 </para>
1806
1807                 <para>
1808                 Create a range of block or character special files.
1809                 </para>
1810
1811                 <para>
1812                 TYPE may be:
1813                 </para>
1814
1815                 <para>
1816                 <screen>
1817                         b       Make a block (buffered) device
1818                         c or u  Make a character (un-buffered) device
1819                         p       Make a named pipe. MAJOR and MINOR are ignored for named pipes
1820                 </screen>
1821                 </para>
1822
1823                 <para>
1824                 FIRST specifies the number appended to NAME to create
1825                 the first device.  LAST specifies the number of the last
1826                 item that should be created. If 's' is the last
1827                 argument, the base device is created as well.
1828                 </para>
1829
1830                 <para>
1831                 Example:
1832                 </para>
1833
1834                 <para>
1835                 <screen>
1836                         $ makedevs /dev/ttyS c 4 66 2 63
1837                         [creates ttyS2-ttyS63]
1838                         $ makedevs /dev/hda b 3 0 0 8 s
1839                         [creates hda,hda1-hda8]
1840                 </screen>
1841                 </para>
1842         </sect1>
1843
1844         <sect1 id="md5sum">
1845             <title>md5sum</title>
1846
1847                 <para>
1848                 Usage: md5sum [OPTION]... FILE...
1849                 </para>
1850
1851                 <para>
1852                 Print or check MD5 checksums.
1853                 </para>
1854
1855                 <para>
1856                 Options:
1857                 </para>
1858
1859                 <para>
1860                 <screen>
1861                         -b      Read files in binary mode
1862                         -c      Check MD5 sums against given list
1863                         -t      Read files in text mode (default)
1864                         -g      Read a string
1865                 </screen>
1866                 </para>
1867
1868                 <para>
1869                 The following two options are useful only when verifying
1870                 checksums:
1871                 </para>
1872
1873                 <para>
1874                 <screen>
1875                         -s      Don't output anything, status code shows success
1876                         -w      Warn about improperly formated MD5 checksum lines
1877                 </screen>
1878                 </para>
1879
1880                 <para>
1881                 Example:
1882                 </para>
1883
1884                 <para>
1885                 <screen>
1886                         $ md5sum busybox
1887                         6fd11e98b98a58f64ff3398d7b324003  busybox
1888                         $ md5sum -c
1889                         6fd11e98b98a58f64ff3398d7b324003  busybox
1890                         6fd11e98b98a58f64ff3398d7b324002  busybox
1891                         md5sum: MD5 check failed for 'busybox'
1892                         ^D
1893                 </screen>
1894                 </para>
1895         </sect1>
1896
1897         <sect1 id="mkdir">
1898             <title>mkdir</title>
1899
1900                 <para>
1901                 Usage: mkdir [OPTION]... DIRECTORY...
1902                 </para>
1903
1904                 <para>
1905                 Create the DIRECTORY(s), if they do not already exist.
1906                 </para>
1907
1908                 <para>
1909                 Options:
1910                 </para>
1911
1912                 <para>
1913                 <screen>
1914                         -m      Set permission mode (as in chmod), not rwxrwxrwx - umask
1915                         -p      No error if directory exists, make parent directories as needed
1916                 </screen>
1917                 </para>
1918
1919                 <para>
1920                 Example:
1921                 </para>
1922
1923                 <para>
1924                 <screen>
1925                         $ mkdir /tmp/foo
1926                         $ mkdir /tmp/foo
1927                         /tmp/foo: File exists
1928                         $ mkdir /tmp/foo/bar/baz
1929                         /tmp/foo/bar/baz: No such file or directory
1930                         $ mkdir -p /tmp/foo/bar/baz
1931                 </screen>
1932                 </para>
1933         </sect1>
1934
1935         <sect1 id="mkfifo">
1936             <title>mkfifo</title>
1937
1938                 <para>
1939                 Usage: mkfifo [OPTION] NAME
1940                 </para>
1941
1942                 <para>
1943                 Create a named pipe (identical to 'mknod NAME p').
1944                 </para>
1945
1946                 <para>
1947                 Options:
1948                 </para>
1949
1950                 <para>
1951                 <screen>
1952                         -m MODE Create the pipe using the specified mode (default a=rw)
1953                 </screen>
1954                 </para>
1955         </sect1>
1956
1957         <sect1 id="mkfs.minix">
1958             <title>mkfs.minix</title>
1959
1960                 <para>
1961                 Usage: mkfs.minix [OPTION]... NAME [BLOCKS]
1962                 </para>
1963
1964                 <para>
1965                 Make a MINIX filesystem.
1966                 </para>
1967
1968                 <para>
1969                 Options:
1970                 </para>
1971
1972                 <para>
1973                 <screen>
1974                         -c              Check the device for bad blocks
1975                         -n [14|30]      Specify the maximum length of filenames
1976                         -i              Specify the number of inodes for the filesystem
1977                         -l FILENAME     Read the bad blocks list from FILENAME
1978                         -v              Make a Minix version 2 filesystem
1979                 </screen>
1980                 </para>
1981         </sect1>
1982
1983         <sect1 id="mknod">
1984             <title>mknod</title>
1985
1986                 <para>
1987                 Usage: mknod [OPTION]... NAME TYPE MAJOR MINOR
1988                 </para>
1989
1990                 <para>
1991                 Create a special file (block, character, or pipe).
1992                 </para>
1993
1994                 <para>
1995                 Options:
1996                 </para>
1997
1998                 <para>
1999                 <screen>
2000                         -m      Create the special file using the specified mode (default a=rw)
2001                 </screen>
2002                 </para>
2003
2004                 <para>
2005                 TYPE may be:
2006                 </para>
2007
2008                 <para>
2009                 <screen>
2010                         b       Make a block (buffered) device
2011                         c or u  Make a character (un-buffered) device
2012                         p       Make a named pipe. MAJOR and MINOR are ignored for named pipes
2013                 </screen>
2014                 </para>
2015
2016                 <para>
2017                 Example:
2018                 </para>
2019
2020                 <para>
2021                 <screen>
2022                         $ mknod /dev/fd0 b 2 0 
2023                         $ mknod -m 644 /tmp/pipe p
2024                 </screen>
2025                 </para>
2026         </sect1>
2027
2028         <sect1 id="mkswap">
2029             <title>mkswap</title>
2030
2031                 <para>
2032                 Usage: mkswap [OPTION]... DEVICE [BLOCKS]
2033                 </para>
2034
2035                 <para>
2036                 Prepare a disk partition to be used as a swap partition.
2037                 </para>
2038
2039                 <para>
2040                 Options:
2041                 </para>
2042
2043                 <para>
2044                 <screen>
2045                         -c      Check for read-ability.
2046                         -v0     Make version 0 swap [max 128 Megs].
2047                         -v1     Make version 1 swap [big!] (default for kernels &gt; 2.1.117).
2048                         BLOCKS  Number of block to use (default is entire partition).
2049                 </screen>
2050                 </para>
2051         </sect1>
2052
2053         <sect1 id="mktemp">
2054             <title>mktemp</title>
2055
2056                 <para>
2057                 Usage: mktemp TEMPLATE
2058                 </para>
2059
2060                 <para>
2061                 Creates a temporary file with its name based on
2062                 TEMPLATE.  TEMPLATE is any name with six `Xs' (i.e.
2063                 /tmp/temp.XXXXXX).
2064                 </para>
2065
2066                 <para>
2067                 Example:
2068                 </para>
2069
2070                 <para>
2071                 <screen>
2072                         $ mktemp /tmp/temp.XXXXXX
2073                         /tmp/temp.mWiLjM
2074                         $ ls -la /tmp/temp.mWiLjM
2075                         -rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM
2076                 </screen>
2077                 </para>
2078         </sect1>
2079
2080         <sect1 id="more">
2081             <title>more</title>
2082
2083                 <para>
2084                 Usage: more [FILE]...
2085                 </para>
2086
2087                 <para>
2088                 Page through text one screenful at a time.
2089                 </para>
2090
2091                 <para>
2092                 Example:
2093                 </para>
2094
2095                 <para>
2096                 <screen>
2097                         $ dmesg | more
2098                 </screen>
2099                 </para>
2100         </sect1>
2101
2102         <sect1 id="mount">
2103             <title>mount</title>
2104
2105                 <para>
2106                 Usage: mount [OPTION]...
2107                 </para>
2108
2109                 <para>
2110                 <screen>
2111                    or: mount [OPTION]... DEVICE DIRECTORY
2112                 </screen>
2113                 </para>
2114
2115                 <para>
2116                 Mount filesystems.
2117                 </para>
2118
2119                 <para>
2120                 Options:
2121                 </para>
2122
2123                 <para>
2124                 <screen>
2125                         -a      Mount all filesystems in /etc/fstab
2126                         -o      One of the many filesystem options listed below
2127                         -r      Mount the filesystem read-only
2128                         -t TYPE Specify the filesystem type
2129                         -w      Mount the filesystem read-write
2130                 </screen>
2131                 </para>
2132
2133                 <para>
2134                 Options for use with the -o flag:
2135                 </para>
2136
2137                 <para>
2138                 <screen>
2139                         async/sync      Writes are asynchronous / synchronous
2140                         atime/noatime   Enable / disable updates to inode access times
2141                         dev/nodev       Allow / disallow use of special device files
2142                         exec/noexec     Allow / disallow use of executable files
2143                         loop            Mount a file via loop device
2144                         suid/nosuid     Allow / disallow set-user-id-root programs
2145                         remount         Remount a currently mounted filesystem
2146                         ro/rw           Mount filesystem read-only / read-write
2147                 </screen>
2148                 </para>
2149
2150                 <para>
2151                 There are even more flags that are filesystem specific.
2152                 You'll have to see the written documentation for those.
2153                 </para>
2154
2155                 <para>
2156                 Example:
2157                 </para>
2158
2159                 <para>
2160                 <screen>
2161                         $ mount
2162                         /dev/hda3 on / type minix (rw)
2163                         proc on /proc type proc (rw)
2164                         devpts on /dev/pts type devpts (rw)
2165                         $ mount /dev/fd0 /mnt -t msdos -o ro
2166                         $ mount /tmp/diskimage /opt -t ext2 -o loop
2167                 </screen>
2168                 </para>
2169         </sect1>
2170
2171         <sect1 id="mt">
2172             <title>mt</title>
2173
2174                 <para>
2175                 Usage: mt [OPTION] OPCODE VALUE
2176                 </para>
2177
2178                 <para>
2179                 Control magnetic tape drive operation.
2180                 </para>
2181
2182                 <para>
2183                 Options:
2184                 </para>
2185
2186                 <para>
2187                 <screen>
2188                         -f DEVICE       Control DEVICE
2189                 </screen>
2190                 </para>
2191         </sect1>
2192
2193         <sect1 id="mv">
2194             <title>mv</title>
2195
2196                 <para>
2197                 Usage: mv SOURCE DEST
2198                 </para>
2199
2200                 <para>
2201                 <screen>
2202                    or: mv SOURCE... DIRECTORY
2203                 </screen>
2204                 </para>
2205
2206                 <para>
2207                 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
2208                 </para>
2209
2210                 <para>
2211                 Example:
2212                 </para>
2213
2214                 <para>
2215                 <screen>
2216                         $ mv /tmp/foo /bin/bar
2217                 </screen>
2218                 </para>
2219         </sect1>
2220
2221         <sect1 id="nc">
2222             <title>nc</title>
2223
2224                 <para>
2225                 Usage: nc HOST PORT
2226                 </para>
2227
2228                 <para>
2229                 Open a pipe to HOST:PORT.
2230                 </para>
2231
2232                 <para>
2233                 Example:
2234                 </para>
2235
2236                 <para>
2237                 <screen>
2238                         $ nc foobar.somedomain.com 25
2239                         220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
2240                         help
2241                         214-Commands supported:
2242                         214-    HELO EHLO MAIL RCPT DATA AUTH
2243                         214     NOOP QUIT RSET HELP
2244                         quit
2245                         221 foobar closing connection
2246                 </screen>
2247                 </para>
2248         </sect1>
2249
2250         <sect1 id="nslookup">
2251             <title>nslookup</title>
2252
2253                 <para>
2254                 Usage: nslookup [HOST]
2255                 </para>
2256
2257                 <para>
2258                 Query the nameserver for the IP address of the given
2259                 HOST.
2260                 </para>
2261
2262                 <para>
2263                 Example:
2264                 </para>
2265
2266                 <para>
2267                 <screen>
2268                         $ nslookup localhost
2269                         Server:     default
2270                         Address:    default
2271
2272                         Name:       debian
2273                         Address:    127.0.0.1
2274                 </screen>
2275                 </para>
2276         </sect1>
2277
2278         <sect1 id="ping">
2279             <title>ping</title>
2280
2281                 <para>
2282                 Usage: ping [OPTION]... HOST
2283                 </para>
2284
2285                 <para>
2286                 Send ICMP ECHO_REQUEST packets to HOST.
2287                 </para>
2288
2289                 <para>
2290                 Options:
2291                 </para>
2292
2293                 <para>
2294                 <screen>
2295                         -c COUNT        Send only COUNT pings
2296                         -s SIZE         Send SIZE data bytes in packets (default=56)
2297                         -q              Quiet mode, only displays output at start and when finished
2298                 </screen>
2299                 </para>
2300
2301                 <para>
2302                 Example:
2303                 </para>
2304
2305                 <para>
2306                 <screen>
2307                         $ ping localhost
2308                         PING slag (127.0.0.1): 56 data bytes
2309                         64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
2310
2311                         --- debian ping statistics ---
2312                         1 packets transmitted, 1 packets received, 0% packet loss
2313                         round-trip min/avg/max = 20.1/20.1/20.1 ms
2314                 </screen>
2315                 </para>
2316         </sect1>
2317
2318         <sect1 id="poweroff">
2319             <title>poweroff</title>
2320
2321                 <para>
2322                 Usage: poweroff
2323                 </para>
2324
2325                 <para>
2326                 Shut down the system, and request that the kernel turn
2327                 off power upon halting.
2328                 </para>
2329         </sect1>
2330
2331         <sect1 id="printf">
2332             <title>printf</title>
2333
2334                 <para>
2335                 Usage: printf FORMAT [ARGUMENT]...
2336                 </para>
2337
2338                 <para>
2339                 Format and print the given data in a manner similar to
2340                 the C printf command.
2341                 </para>
2342
2343                 <para>
2344                 Example:
2345                 </para>
2346
2347                 <para>
2348                 <screen>
2349                         $ printf "Val=%d\n" 5
2350                         Val=5
2351                 </screen>
2352                 </para>
2353         </sect1>
2354
2355         <sect1 id="ps">
2356             <title>ps</title>
2357
2358                 <para>
2359                 Usage: ps
2360                 </para>
2361
2362                 <para>
2363                 Report process status.  This version of ps accepts no
2364                 options.
2365                 </para>
2366
2367                 <para>
2368                 Options:
2369                 </para>
2370
2371                 <para>
2372                 <screen>
2373                 </screen>
2374                 </para>
2375
2376                 <para>
2377                 Example:
2378                 </para>
2379
2380                 <para>
2381                 <screen>
2382                         $ ps
2383                           PID  Uid      Gid State Command
2384                             1 root     root     S init
2385                             2 root     root     S [kflushd]
2386                             3 root     root     S [kupdate]
2387                             4 root     root     S [kpiod]
2388                             5 root     root     S [kswapd]
2389                           742 andersen andersen S [bash]
2390                           743 andersen andersen S -bash
2391                           745 root     root     S [getty]
2392                          2990 andersen andersen R ps
2393                 </screen>
2394                 </para>
2395         </sect1>
2396
2397         <sect1 id="pwd">
2398             <title>pwd</title>
2399
2400                 <para>
2401                 Usage: pwd
2402                 </para>
2403
2404                 <para>
2405                 Print the full filename of the current working
2406                 directory.
2407                 </para>
2408
2409                 <para>
2410                 Example:
2411                 </para>
2412
2413                 <para>
2414                 <screen>
2415                         $ pwd
2416                         /root
2417                 </screen>
2418                 </para>
2419         </sect1>
2420
2421         <sect1 id="reboot">
2422             <title>reboot</title>
2423
2424                 <para>
2425                 Usage: reboot
2426                 </para>
2427
2428                 <para>
2429                 Reboot the system.
2430                 </para>
2431         </sect1>
2432
2433         <sect1 id="rm">
2434             <title>rm</title>
2435
2436                 <para>
2437                 Usage: rm [OPTION]... FILE...
2438                 </para>
2439
2440                 <para>
2441                 Remove (unlink) the FILE(s).  You may use '--' to
2442                 indicate that all following arguments are non-options.
2443                 </para>
2444
2445                 <para>
2446                 Options:
2447                 </para>
2448
2449                 <para>
2450                 <screen>
2451                         -f              Remove existing destinations, never prompt
2452                         -r or -R        Remove the contents of directories recursively
2453                 </screen>
2454                 </para>
2455
2456                 <para>
2457                 Example:
2458                 </para>
2459
2460                 <para>
2461                 <screen>
2462                         $ rm -rf /tmp/foo
2463                 </screen>
2464                 </para>
2465         </sect1>
2466
2467         <sect1 id="rmdir">
2468             <title>rmdir</title>
2469
2470                 <para>
2471                 Usage: rmdir DIRECTORY...
2472                 </para>
2473
2474                 <para>
2475                 Remove DIRECTORY(s) if they are empty.
2476                 </para>
2477
2478                 <para>
2479                 Example:
2480                 </para>
2481
2482                 <para>
2483                 <screen>
2484                         $ rmdir /tmp/foo
2485                 </screen>
2486                 </para>
2487         </sect1>
2488
2489         <sect1 id="rmmod">
2490             <title>rmmod</title>
2491
2492                 <para>
2493                 Usage: rmmod [OPTION]... [MODULE]...
2494                 </para>
2495
2496                 <para>
2497                 Unload MODULE(s) from the kernel.
2498                 </para>
2499
2500                 <para>
2501                 Options:
2502                 </para>
2503
2504                 <para>
2505                 <screen>
2506                         -a      Try to remove all unused kernel modules
2507                 </screen>
2508                 </para>
2509
2510                 <para>
2511                 Example:
2512                 </para>
2513
2514                 <para>
2515                 <screen>
2516                         $ rmmod tulip
2517                 </screen>
2518                 </para>
2519         </sect1>
2520
2521         <sect1 id="sed">
2522             <title>sed</title>
2523
2524                 <para>
2525                 Usage: sed [OPTION]... SCRIPT [FILE]...
2526                 </para>
2527
2528                 <para>
2529                 Allowed sed scripts come in the following form:
2530                 </para>
2531
2532                 <para>
2533                 <screen>
2534                 ADDR [!] COMMAND
2535                 </screen>
2536                 </para>
2537
2538                 <para>
2539                 ADDR can be:
2540                 </para>
2541
2542                 <para>
2543                 <screen>
2544                         NUMBER    Match specified line number
2545                         $         Match last line
2546                         /REGEXP/  Match specified regexp
2547                 </screen>
2548                 </para>
2549
2550                 <para>
2551                 ! inverts the meaning of the match
2552                 </para>
2553
2554                 <para>
2555                 COMMAND can be:
2556                 </para>
2557
2558                 <para>
2559                 <screen>
2560                         s/regexp/replacement/[igp]
2561                                 which attempt to match regexp against the pattern space
2562                                 and if successful replaces the matched portion with replacement.
2563                         aTEXT
2564                                 which appends TEXT after the pattern space
2565                 </screen>
2566                 </para>
2567
2568                 <para>
2569                 This version of sed matches full regular expressions.
2570                 </para>
2571
2572                 <para>
2573                 Options:
2574                 </para>
2575
2576                 <para>
2577                 <screen>
2578                         -e      Add the script to the commands to be executed
2579                         -n      Suppress automatic printing of pattern space
2580                 </screen>
2581                 </para>
2582
2583                 <para>
2584                 Example:
2585                 </para>
2586
2587                 <para>
2588                 <screen>
2589                         $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
2590                         bar
2591                 </screen>
2592                 </para>
2593         </sect1>
2594
2595         <sect1 id="setkeycodes">
2596             <title>setkeycodes</title>
2597
2598                 <para>
2599                 Usage: setkeycodes SCANCODE KEYCODE ...
2600                 </para>
2601
2602                 <para>
2603                 Set entries into the kernel's scancode-to-keycode map,
2604                 allowing unusual keyboards to generate usable keycodes.
2605                 </para>
2606
2607                 <para>
2608                 SCANCODE may be either xx or e0xx (hexadecimal), and
2609                 KEYCODE is given in decimal.
2610                 </para>
2611
2612                 <para>
2613                 Example:
2614                 </para>
2615
2616                 <para>
2617                 <screen>
2618                         $ setkeycodes e030 127
2619                 </screen>
2620                 </para>
2621         </sect1>
2622
2623         <sect1 id="sfdisk">
2624             <title>sfdisk</title>
2625
2626                 <para>
2627                 Usage: sfdisk [OPTION]... DEVICE
2628                 </para>
2629
2630                 <para>
2631                 Partition DEVICE.
2632                 </para>
2633
2634                 <para>
2635                 Options:
2636                 </para>
2637
2638                 <para>
2639                 <screen>
2640                         -s      List size of a partition
2641                         -c      Print or change partition Id
2642                         -l      List partitions of each device
2643                         -d      Idem, but in a format suitable for later input
2644                         -i      Number cylinders etc. from 1 instead of from 0
2645                         -uS     Accept/report in units of sectors
2646                         -uB     Accept/report in units of blocks
2647                         -uC     Accept/report in units of cylinders
2648                         -uM     Accept/report in units of MB
2649                         -T      List the known partition types
2650                         -D      For DOS-compatibility: waste a little space
2651                         -R      Make kernel reread partition table
2652                         -N NUM  Change only the partition with number NUM
2653                         -n      Do not actually write to disk
2654                         -O FILE Save the sectors that will be overwritten to FILE
2655                         -I FILE Restore these sectors from FILE
2656                 </screen>
2657                 </para>
2658
2659                 <para>
2660                 Dangerous options:
2661                 </para>
2662
2663                 <para>
2664                 <screen>
2665                         -g      Print the kernel's idea of the geometry
2666                         -x      Also list extended partitions on output
2667                                 or expect descriptors for them on input
2668                         -L      Do not complain about things irrelevant for Linux
2669                         -q      Suppress warning messages
2670                 </screen>
2671                 </para>
2672
2673                 <para>
2674                 You can override the detected geometry using:
2675                 </para>
2676
2677                 <para>
2678                 <screen>
2679                         -C NUM  Set the number of cylinders to use
2680                         -H NUM  Set the number of heads to use
2681                         -S NUM  Set the number of sectors to use
2682                 </screen>
2683                 </para>
2684
2685                 <para>
2686                 You can disable all consistency checking with:
2687                 </para>
2688
2689                 <para>
2690                 <screen>
2691                         -f      Do what I say, even if it is stupid
2692                 </screen>
2693                 </para>
2694         </sect1>
2695
2696         <sect1 id="sh">
2697             <title>sh</title>
2698
2699                 <para>
2700                 Usage: sh
2701                 </para>
2702
2703                 <para>
2704                 lash -- the BusyBox LAme SHell (command interpreter)
2705                 </para>
2706
2707                 <para>
2708                 This command does not yet have proper documentation.  
2709                 </para>
2710
2711                 <para>
2712                 Use lash just as you would use any other shell. It
2713                 properly handles pipes, redirects, job control, can be
2714                 used as the shell for scripts (#!/bin/sh), and has a
2715                 sufficient set of builtins to do what is needed. It does
2716                 not (yet) support Bourne Shell syntax. If you need
2717                 things like ``if-then-else'', ``while'', and such, use
2718                 ash or bash. If you just need a very simple and
2719                 extremely small shell, this will do the job.
2720                 </para>
2721         </sect1>
2722
2723         <sect1 id="sleep">
2724             <title>sleep</title>
2725
2726                 <para>
2727                 Usage: sleep N
2728                 </para>
2729
2730                 <para>
2731                 Pause for N seconds.
2732                 </para>
2733
2734                 <para>
2735                 Example:
2736                 </para>
2737
2738                 <para>
2739                 <screen>
2740                         $ sleep 2
2741                         [2 second delay results]
2742                 </screen>
2743                 </para>
2744         </sect1>
2745
2746         <sect1 id="sort">
2747             <title>sort</title>
2748
2749                 <para>
2750                 Usage: sort [OPTION]... [FILE]...
2751                 </para>
2752
2753                 <para>
2754                 Sort lines of text in FILE(s).
2755                 </para>
2756
2757                 <para>
2758                 Options:
2759                 </para>
2760
2761                 <para>
2762                 <screen>
2763                         -n      Compare numerically
2764                         -r      Reverse after sorting
2765                 </screen>
2766                 </para>
2767
2768                 <para>
2769                 Example:
2770                 </para>
2771
2772                 <para>
2773                 <screen>
2774                         $ echo -e "e\nf\nb\nd\nc\na" | sort
2775                         a
2776                         b
2777                         c
2778                         d
2779                         e
2780                         f
2781                 </screen>
2782                 </para>
2783         </sect1>
2784
2785         <sect1 id="swapoff">
2786             <title>swapoff</title>
2787
2788                 <para>
2789                 Usage: swapoff [OPTION] [DEVICE]
2790                 </para>
2791
2792                 <para>
2793                 Stop swapping virtual memory pages on DEVICE.
2794                 </para>
2795
2796                 <para>
2797                 Options:
2798                 </para>
2799
2800                 <para>
2801                 <screen>
2802                         -a      Stop swapping on all swap devices
2803                 </screen>
2804                 </para>
2805         </sect1>
2806
2807         <sect1 id="swapon">
2808             <title>swapon</title>
2809
2810                 <para>
2811                 Usage: swapon [OPTION] [DEVICE]
2812                 </para>
2813
2814                 <para>
2815                 Start swapping virtual memory pages on the given device.
2816                 </para>
2817
2818                 <para>
2819                 Options:
2820                 </para>
2821
2822                 <para>
2823                 <screen>
2824                         -a      Start swapping on all swap devices
2825                 </screen>
2826                 </para>
2827         </sect1>
2828
2829         <sect1 id="sync">
2830             <title>sync</title>
2831
2832                 <para>
2833                 Usage: sync
2834                 </para>
2835
2836                 <para>
2837                 Write all buffered filesystem blocks to disk.
2838                 </para>
2839         </sect1>
2840
2841         <sect1 id="syslogd">
2842             <title>syslogd</title>
2843
2844                 <para>
2845                 Usage: syslogd [OPTION]...
2846                 </para>
2847
2848                 <para>
2849                 Linux system and kernel (provides klogd) logging
2850                 utility. Note that this version of syslogd/klogd ignores
2851                 /etc/syslog.conf.
2852                 </para>
2853
2854                 <para>
2855                 Options:
2856                 </para>
2857
2858                 <para>
2859                 <screen>
2860                         -m NUM  Interval between MARK lines (default=20min, 0=off)
2861                         -n      Run as a foreground process
2862                         -K      Do not start up the klogd process
2863                         -O FILE Use an alternate log file (default=/var/log/messages)
2864                 </screen>
2865                 </para>
2866
2867                 <para>
2868                 Example:
2869                 </para>
2870
2871                 <para>
2872                 <screen>
2873                 </screen>
2874                 </para>
2875         </sect1>
2876
2877         <sect1 id="tail">
2878             <title>tail</title>
2879
2880                 <para>
2881                 Usage: tail [OPTION] [FILE]...
2882                 </para>
2883
2884                 <para>
2885                 Print last 10 lines of each FILE to standard output.
2886                 With more than one FILE, precede each with a header
2887                 giving the file name. With no FILE, or when FILE is -,
2888                 read stdin.
2889                 </para>
2890
2891                 <para>
2892                 Options:
2893                 </para>
2894
2895                 <para>
2896                 <screen>
2897                         -n NUM  Print last NUM lines instead of last 10
2898                         -f      Output data as the file grows.  This version
2899                                 of 'tail -f' supports only one file at a time.
2900                 </screen>
2901                 </para>
2902
2903                 <para>
2904                 Example:
2905                 </para>
2906
2907                 <para>
2908                 <screen>
2909                         $ tail -n 1 /etc/resolv.conf
2910                         nameserver 10.0.0.1
2911                 </screen>
2912                 </para>
2913         </sect1>
2914
2915         <sect1 id="tar">
2916             <title>tar</title>
2917
2918                 <para>
2919                 Usage: tar [MODE] [OPTION] [FILE]...
2920                 </para>
2921
2922                 <para>
2923                 
2924                 </para>
2925
2926                 <para>
2927                 MODE may be chosen from
2928                 </para>
2929
2930                 <para>
2931                 <screen>
2932                         c       Create
2933                         x       Extract
2934                         t       List
2935                 </screen>
2936                 </para>
2937
2938                 <para>
2939                 Options:
2940                 </para>
2941
2942                 <para>
2943                 <screen>
2944                         f FILE          Use FILE for tarfile (or stdin if '-')
2945                         O               Extract to stdout
2946                         --exclude FILE  Exclude FILE
2947                         v               List files processed
2948                 </screen>
2949                 </para>
2950
2951                 <para>
2952                 Example:
2953                 </para>
2954
2955                 <para>
2956                 <screen>
2957                         $ zcat /tmp/tarball.tar.gz | tar -xf -
2958                         $ tar -cf /tmp/tarball.tar /usr/local
2959                 </screen>
2960                 </para>
2961         </sect1>
2962
2963         <sect1 id="tee">
2964             <title>tee</title>
2965
2966                 <para>
2967                 Usage: tee [OPTION]... [FILE]...
2968                 </para>
2969
2970                 <para>
2971                 Copy stdin to FILE(s), and also to stdout.
2972                 </para>
2973
2974                 <para>
2975                 Options:
2976                 </para>
2977
2978                 <para>
2979                 <screen>
2980                         -a      Append to the given FILEs, do not overwrite
2981                 </screen>
2982                 </para>
2983
2984                 <para>
2985                 Example:
2986                 </para>
2987
2988                 <para>
2989                 <screen>
2990                         $ echo "Hello" | tee /tmp/foo
2991                         Hello
2992                         $ cat /tmp/foo
2993                         Hello
2994                 </screen>
2995                 </para>
2996         </sect1>
2997
2998         <sect1 id="telnet">
2999             <title>telnet</title>
3000
3001                 <para>
3002                 Usage: telnet HOST [PORT]
3003                 </para>
3004
3005                 <para>
3006                 Establish interactive communication with another
3007                 computer over a network using the TELNET protocol.
3008                 </para>
3009         </sect1>
3010
3011         <sect1 id="test">
3012             <title>test, [</title>
3013
3014                 <para>
3015                 Usage: test EXPRESSION
3016                 </para>
3017
3018                 <para>
3019                 <screen>
3020                    or: [ EXPRESSION ]
3021
3022                 <para>
3023                 Check file types and compare values returning an exit
3024                 code determined by the value of EXPRESSION.
3025                 </para>
3026
3027                 <para>
3028                 Example:
3029                 </para>
3030
3031                 <para>
3032                 <screen>
3033                         $ test 1 -eq 2
3034                         $ echo $?
3035                         1
3036                         $ test 1 -eq 1
3037                         $ echo $?
3038                         0
3039                         $ [ -d /etc ]
3040                         $ echo $?
3041                         0
3042                         $ [ -d /junk ]
3043                         $ echo $?
3044                         1
3045                 </screen>
3046                 </para>
3047         </sect1>
3048
3049         <sect1 id="touch">
3050             <title>touch</title>
3051
3052                 <para>
3053                 Usage: touch [OPTION]... FILE...
3054                 </para>
3055
3056                 <para>
3057                 Update the last-modified date on (or create) FILE(s).
3058                 </para>
3059
3060                 <para>
3061                 Options:
3062                 </para>
3063
3064                 <para>
3065                 <screen>
3066                         -c      Do not create files
3067                 </screen>
3068                 </para>
3069
3070                 <para>
3071                 Example:
3072                 </para>
3073
3074                 <para>
3075                 <screen>
3076                         $ ls -l /tmp/foo
3077                         /bin/ls: /tmp/foo: No such file or directory
3078                         $ touch /tmp/foo
3079                         $ ls -l /tmp/foo
3080                         -rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo
3081                 </screen>
3082                 </para>
3083         </sect1>
3084
3085         <sect1 id="tr">
3086             <title>tr</title>
3087
3088                 <para>
3089                 Usage: tr [OPTION]... STRING1 [STRING2]
3090                 </para>
3091
3092                 <para>
3093                 Translate, squeeze, and/or delete characters from stdin,
3094                 writing to stdout.
3095                 </para>
3096
3097                 <para>
3098                 Options:
3099                 </para>
3100
3101                 <para>
3102                 <screen>
3103                         -c      Take complement of STRING1
3104                         -d      Delete input characters coded STRING1
3105                         -s      Squeeze multiple output characters of STRING2 into one character
3106                 </screen>
3107                 </para>
3108
3109                 <para>
3110                 Example:
3111                 </para>
3112
3113                 <para>
3114                 <screen>
3115                         $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
3116                         hello world
3117                 </screen>
3118                 </para>
3119         </sect1>
3120
3121         <sect1 id="true">
3122             <title>true</title>
3123
3124                 <para>
3125                 Usage: true
3126                 </para>
3127
3128                 <para>
3129                 Return an exit code of TRUE (1).
3130                 </para>
3131
3132                 <para>
3133                 Example:
3134                 </para>
3135
3136                 <para>
3137                 <screen>
3138                         $ true
3139                         $ echo $?
3140                         0
3141                 </screen>
3142                 </para>
3143         </sect1>
3144
3145         <sect1 id="tty">
3146             <title>tty</title>
3147
3148                 <para>
3149                 Usage: tty
3150                 </para>
3151
3152                 <para>
3153                 Print the file name of the terminal connected to stdin.
3154                 </para>
3155
3156                 <para>
3157                 Options:
3158                 </para>
3159
3160                 <para>
3161                 <screen>
3162                         -s      Print nothing, only return an exit status
3163                 </screen>
3164                 </para>
3165
3166                 <para>
3167                 Example:
3168                 </para>
3169
3170                 <para>
3171                 <screen>
3172                         $ tty
3173                         /dev/tty2
3174                 </screen>
3175                 </para>
3176         </sect1>
3177
3178         <sect1 id="umount">
3179             <title>umount</title>
3180
3181                 <para>
3182                 Usage: umount [OPTION]... DEVICE|DIRECTORY
3183                 </para>
3184
3185                 <para>
3186                 
3187                 </para>
3188
3189                 <para>
3190                 Options:
3191                 </para>
3192
3193                 <para>
3194                 <screen>
3195                         -a      Unmount all file systems
3196                         -r      Try to remount devices as read-only if mount is busy
3197                         -f      Force filesystem umount (i.e. unreachable NFS server)
3198                         -l      Do not free loop device (if a loop device has been used)
3199                 </screen>
3200                 </para>
3201
3202                 <para>
3203                 Example:
3204                 </para>
3205
3206                 <para>
3207                 <screen>
3208                         $ umount /dev/hdc1 
3209                 </screen>
3210                 </para>
3211         </sect1>
3212
3213         <sect1 id="uname">
3214             <title>uname</title>
3215
3216                 <para>
3217                 Usage: uname [OPTION]...
3218                 </para>
3219
3220                 <para>
3221                 Print certain system information. With no OPTION, same
3222                 as -s.
3223                 </para>
3224
3225                 <para>
3226                 Options:
3227                 </para>
3228
3229                 <para>
3230                 <screen>
3231                         -a      Print all information
3232                         -m      Print the machine (hardware) type
3233                         -n      Print the machine's network node hostname
3234                         -r      Print the operating system release
3235                         -s      Print the operating system name
3236                         -p      Print the host processor type
3237                         -v      Print the operating system version
3238                 </screen>
3239                 </para>
3240
3241                 <para>
3242                 Example:
3243                 </para>
3244
3245                 <para>
3246                 <screen>
3247                         $ uname -a
3248                         Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
3249                 </screen>
3250                 </para>
3251         </sect1>
3252
3253         <sect1 id="uniq">
3254             <title>uniq</title>
3255
3256                 <para>
3257                 Usage: uniq [INPUT [OUTPUT]]
3258                 </para>
3259
3260                 <para>
3261                 Discard all but one of successive identical lines from
3262                 INPUT (or stdin), writing to OUTPUT (or stdout).
3263                 </para>
3264
3265                 <para>
3266                 Example:
3267                 </para>
3268
3269                 <para>
3270                 <screen>
3271                         $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
3272                         a
3273                         b
3274                         c
3275                 </screen>
3276                 </para>
3277         </sect1>
3278
3279         <sect1 id="update">
3280             <title>update</title>
3281
3282                 <para>
3283                 Usage: update [OPTION]...
3284                 </para>
3285
3286                 <para>
3287                 Periodically flush filesystem buffers.
3288                 </para>
3289
3290                 <para>
3291                 Options:
3292                 </para>
3293
3294                 <para>
3295                 <screen>
3296                         -S      Force use of sync(2) instead of flushing
3297                         -s SECS Call sync this often (default 30)
3298                         -f SECS Flush some buffers this often (default 5)
3299                 </screen>
3300                 </para>
3301         </sect1>
3302
3303         <sect1 id="uptime">
3304             <title>uptime</title>
3305
3306                 <para>
3307                 Usage: uptime
3308                 </para>
3309
3310                 <para>
3311                 Display how long the system has been running since boot.
3312                 </para>
3313
3314                 <para>
3315                 Example:
3316                 </para>
3317
3318                 <para>
3319                 <screen>
3320                         $ uptime
3321                           1:55pm  up  2:30, load average: 0.09, 0.04, 0.00
3322                 </screen>
3323                 </para>
3324         </sect1>
3325
3326         <sect1 id="usleep">
3327             <title>usleep</title>
3328
3329                 <para>
3330                 Usage: usleep N
3331                 </para>
3332
3333                 <para>
3334                 Pause for N microseconds.
3335                 </para>
3336
3337                 <para>
3338                 Example:
3339                 </para>
3340
3341                 <para>
3342                 <screen>
3343                         $ usleep 1000000
3344                         [pauses for 1 second]
3345                 </screen>
3346                 </para>
3347         </sect1>
3348
3349         <sect1 id="uudecode">
3350             <title>uudecode</title>
3351
3352                 <para>
3353                 Usage: uudecode [OPTION] [FILE]
3354                 </para>
3355
3356                 <para>
3357                 Uudecode a uuencoded file.
3358                 </para>
3359
3360                 <para>
3361                 Options:
3362                 </para>
3363
3364                 <para>
3365                 <screen>
3366                         -o FILE Direct output to FILE
3367                 </screen>
3368                 </para>
3369
3370                 <para>
3371                 Example:
3372                 </para>
3373
3374                 <para>
3375                 <screen>
3376                         $ uudecode -o busybox busybox.uu
3377                         $ ls -l busybox
3378                         -rwxr-xr-x   1 ams      ams        245264 Jun  7 21:35 busybox
3379                 </screen>
3380                 </para>
3381         </sect1>
3382
3383         <sect1 id="uuencode">
3384             <title>uuencode</title>
3385
3386                 <para>
3387                 Usage: uuencode [OPTION] [INFILE] OUTFILE
3388                 </para>
3389
3390                 <para>
3391                 Uuencode a file.
3392                 </para>
3393
3394                 <para>
3395                 Options:
3396                 </para>
3397
3398                 <para>
3399                 <screen>
3400                         -m      Use base64 encoding as of RFC1521
3401                 </screen>
3402                 </para>
3403
3404                 <para>
3405                 Example:
3406                 </para>
3407
3408                 <para>
3409                 <screen>
3410                         $ uuencode busybox busybox
3411                         begin 755 busybox
3412                         M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&amp;
3413                         .....
3414                         $ uudecode busybox busybox &gt; busybox.uu
3415                         $
3416                 </screen>
3417                 </para>
3418         </sect1>
3419
3420         <sect1 id="wc">
3421             <title>wc</title>
3422
3423                 <para>
3424                 Usage: wc [OPTION]... [FILE]...
3425                 </para>
3426
3427                 <para>
3428                 Print line, word, and byte counts for each FILE, and a
3429                 total line if more than one FILE is specified. With no
3430                 FILE, read stdin.
3431                 </para>
3432
3433                 <para>
3434                 Options:
3435                 </para>
3436
3437                 <para>
3438                 <screen>
3439                         -c      Print the byte counts
3440                         -l      Print the newline counts
3441                         -L      Print the length of the longest line
3442                         -w      Print the word counts
3443                 </screen>
3444                 </para>
3445
3446                 <para>
3447                 Example:
3448                 </para>
3449
3450                 <para>
3451                 <screen>
3452                         $ wc /etc/passwd
3453                              31      46    1365 /etc/passwd
3454                 </screen>
3455                 </para>
3456         </sect1>
3457
3458         <sect1 id="which">
3459             <title>which</title>
3460
3461                 <para>
3462                 Usage: which [COMMAND]...
3463                 </para>
3464
3465                 <para>
3466                 Locate COMMAND(s).
3467                 </para>
3468
3469                 <para>
3470                 Example:
3471                 </para>
3472
3473                 <para>
3474                 <screen>
3475                         $ which login
3476                         /bin/login
3477                 </screen>
3478                 </para>
3479         </sect1>
3480
3481         <sect1 id="whoami">
3482             <title>whoami</title>
3483
3484                 <para>
3485                 Usage: whoami
3486                 </para>
3487
3488                 <para>
3489                 Print the user name associated with the current
3490                 effective user id.
3491                 </para>
3492
3493                 <para>
3494                 Example:
3495                 </para>
3496
3497                 <para>
3498                 <screen>
3499                         $ whoami
3500                         andersen
3501                 </screen>
3502                 </para>
3503         </sect1>
3504
3505         <sect1 id="yes">
3506             <title>yes</title>
3507
3508                 <para>
3509                 Usage: yes [STRING]...
3510                 </para>
3511
3512                 <para>
3513                 Repeatedly output a line with all specified STRING(s),
3514                 or `y'.
3515                 </para>
3516         </sect1>
3517
3518         <sect1 id="zcat">
3519             <title>zcat</title>
3520
3521                 <para>
3522                 Usage: zcat [OPTION]... FILE
3523                 </para>
3524
3525                 <para>
3526                 Uncompress FILE (or stdin if FILE is '-') to stdout.  
3527                 </para>
3528
3529                 <para>
3530                 Options:
3531                 </para>
3532
3533                 <para>
3534                 <screen>
3535                         -t      Test compressed file integrity
3536                 </screen>
3537                 </para>
3538
3539                 <para>
3540                 Example:
3541                 </para>
3542
3543                 <para>
3544                 <screen>
3545                 </screen>
3546                 </para>
3547         </sect1>
3548   </chapter>
3549
3550   <chapter id="LIBC-NSS">
3551     <title>LIBC NSS</title>
3552
3553         <para>
3554         GNU Libc uses the Name Service Switch (NSS) to configure the
3555         behavior of the C library for the local environment, and to
3556         configure how it reads system data, such as passwords and group
3557         information. BusyBox has made it Policy that it will never use
3558         NSS, and will never use libc calls that make use of NSS. This
3559         allows you to run an embedded system without the need for
3560         installing an /etc/nsswitch.conf file and without /lib/libnss_*
3561         libraries installed.
3562         </para>
3563
3564         <para>
3565         If you are using a system that is using a remote LDAP server for
3566         authentication via GNU libc NSS, and you want to use BusyBox,
3567         then you will need to adjust the BusyBox source. Chances are
3568         though, that if you have enough space to install of that stuff
3569         on your system, then you probably want the full GNU utilities.
3570         </para>
3571   </chapter>
3572
3573   <chapter id="SEE-ALSO">
3574     <title>SEE ALSO</title>
3575
3576         <para>
3577         <literal>textutils(1),</literal>
3578         <literal>shellutils(1),</literal>
3579         etc...
3580         </para>
3581   </chapter>
3582
3583   <chapter id="MAINTAINER">
3584     <title>MAINTAINER</title>
3585
3586         <para>
3587         Erik Andersen &lt;andersee@debian.org&gt; &lt;andersen@lineo.com&gt;
3588         </para>
3589   </chapter>
3590
3591   <chapter id="AUTHORS">
3592     <title>AUTHORS</title>
3593
3594         <para>
3595         The following people have contributed code to BusyBox whether
3596         they know it or not.
3597         </para>
3598
3599         <para>
3600         Erik Andersen &lt;andersee@debian.org&gt;
3601         </para>
3602
3603         <para>
3604         John Beppu &lt;beppu@lineo.com&gt;
3605         </para>
3606
3607         <para>
3608         Brian Candler &lt;B.Candler@pobox.com&gt;
3609         </para>
3610
3611         <para>
3612         Randolph Chung &lt;tausq@debian.org&gt;
3613         </para>
3614
3615         <para>
3616         Dave Cinege &lt;dcinege@psychosis.com&gt;       
3617         </para>
3618
3619         <para>
3620         Karl M. Hegbloom &lt;karlheg@debian.org&gt;
3621         </para>
3622
3623         <para>
3624         John Lombardo &lt;john@deltanet.com&gt; 
3625         </para>
3626
3627         <para>
3628         Glenn McGrath &lt;bug1@netconnect.com.au&gt;
3629         </para>
3630
3631         <para>
3632         Bruce Perens &lt;bruce@perens.com&gt;
3633         </para>
3634
3635         <para>
3636         Pavel Roskin &lt;proski@gnu.org&gt;
3637         </para>
3638
3639         <para>
3640         Linus Torvalds &lt;torvalds@transmeta.com&gt;
3641         </para>
3642
3643         <para>
3644         Charles P. Wright &lt;cpwright@villagenet.com&gt;
3645         </para>
3646
3647         <para>
3648         Enrique Zanardi &lt;ezanardi@ull.es&gt;
3649         </para>
3650   </chapter>
3651 </book>    <!-- End of the book -->