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