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