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