blob: 8ba31c0de75b6e2ecce20fd483feecfc444b1a2f [file] [log] [blame]
Eric Andersen53310252000-07-04 19:42:23 +00001<!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>
Mark Whitley83a949c2000-06-26 13:31:53 +000035
Eric Andersen53310252000-07-04 19:42:23 +000036<toc></toc>
37 <chapter id="Introduction">
38 <title>Introduction</title>
Mark Whitley83a949c2000-06-26 13:31:53 +000039
Eric Andersen53310252000-07-04 19:42:23 +000040 <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>
Mark Whitley83a949c2000-06-26 13:31:53 +000050
Eric Andersen53310252000-07-04 19:42:23 +000051 <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>
Mark Whitley83a949c2000-06-26 13:31:53 +000059
Eric Andersen53310252000-07-04 19:42:23 +000060 <chapter id="Syntax">
61 <title>How to use BusyBox</title>
62 <sect1 id="How to use BusyBox">
63 <title>Syntax</title
Mark Whitley83a949c2000-06-26 13:31:53 +000064
Eric Andersen53310252000-07-04 19:42:23 +000065 <para>
66 <screen>
67 BusyBox &lt;function&gt; [arguments...] # or
68 </screen>
69 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000070
Eric Andersen53310252000-07-04 19:42:23 +000071 <para>
72 <screen>
73 &lt;function&gt; [arguments...] # if symlinked
74 </screen>
75 </para>
76 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +000077
Eric Andersen53310252000-07-04 19:42:23 +000078 <sect1 id="Invoking BusyBox">
79 <para>
80 When you create a link to BusyBox for the function you wish to use, when
81 BusyBox is called using that link it will behave as if the command itself
82 has been invoked.
83 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000084
Eric Andersen53310252000-07-04 19:42:23 +000085 <para>
86 For example, entering
87 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000088
Eric Andersen53310252000-07-04 19:42:23 +000089 <para>
90 <screen>
91 ln -s ./BusyBox ls
92 ./ls
93 </screen>
94 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000095
Eric Andersen53310252000-07-04 19:42:23 +000096 <para>
97 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
98 into BusyBox).
99 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000100
Eric Andersen53310252000-07-04 19:42:23 +0000101 <para>
102 You can also invoke BusyBox by issuing the command as an argument on the
103 command line. For example, entering
104 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000105
Eric Andersen53310252000-07-04 19:42:23 +0000106 <para>
107 <screen>
108 ./BusyBox ls
109 </screen>
110 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000111
Eric Andersen53310252000-07-04 19:42:23 +0000112 <para>
113 will also cause BusyBox to behave as 'ls'.
114 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000115
Eric Andersen53310252000-07-04 19:42:23 +0000116 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000117
Eric Andersen53310252000-07-04 19:42:23 +0000118 <sect1 id="Common options">
119 <para>
120 Most BusyBox commands support the <emphasis>--help</emphasis> option to provide
121 a terse runtime description of their behavior.
122 </para>
123 </sect1>
124 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +0000125
Eric Andersen53310252000-07-04 19:42:23 +0000126 <chapter id="Commands">
127 <title>BusyBox Commands</title>
128 <sect1 id="Available BusyBox Commands">
129 <title>Available BusyBox Commands</title>
130 <para>
131 Currently defined functions include:
132 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000133
Eric Andersen53310252000-07-04 19:42:23 +0000134 <para>
135 ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
136 dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
137 fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
138 head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
139 loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
140 mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
141 nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
142 setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
143 tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
144 uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
145 </para>
146 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000147
Eric Andersen53310252000-07-04 19:42:23 +0000148 <sect1 id="ar">
149 <title>ar</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000150
Eric Andersen53310252000-07-04 19:42:23 +0000151 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000152 Usage: ar [OPTION] archive [FILENAME]...
Eric Andersen53310252000-07-04 19:42:23 +0000153 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000154
Eric Andersen53310252000-07-04 19:42:23 +0000155 <para>
156 Extract or list files from an ar archive.
157 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000158
Eric Andersen53310252000-07-04 19:42:23 +0000159 <para>
160 Options:
161 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000162
Eric Andersen53310252000-07-04 19:42:23 +0000163 <para>
164 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000165 o Preserve original dates
166 p Extract to stdout
167 t List
168 x Extract
169 v Verbosely list files processed
Eric Andersen53310252000-07-04 19:42:23 +0000170 </screen>
171 </para>
172 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000173
Eric Andersen53310252000-07-04 19:42:23 +0000174 <sect1 id="basename">
175 <title>basename</title>
176 <para>
177 Usage: basename FILE [SUFFIX]
178 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000179
Eric Andersen53310252000-07-04 19:42:23 +0000180 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000181 Strip directory path and suffixes from FILE. If specified, also removes
Eric Andersen53310252000-07-04 19:42:23 +0000182 any trailing SUFFIX.
183 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000184
Eric Andersen53310252000-07-04 19:42:23 +0000185 <para>
186 Example:
187 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000188
Eric Andersen53310252000-07-04 19:42:23 +0000189 <para>
190 <screen>
191 $ basename /usr/local/bin/foo
192 foo
193 $ basename /usr/local/bin/
194 bin
195 $ basename /foo/bar.txt .txt
196 bar
197 </screen>
198 </para>
199 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000200
Eric Andersen53310252000-07-04 19:42:23 +0000201 <sect1 id="cat">
202 <title>cat</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000203
Eric Andersen53310252000-07-04 19:42:23 +0000204 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000205 Usage: cat [FILE]...
Eric Andersen53310252000-07-04 19:42:23 +0000206 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000207
Eric Andersen53310252000-07-04 19:42:23 +0000208 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000209 Concatenate <literal>FILE(s)</literal> and prints them to the standard
Eric Andersen53310252000-07-04 19:42:23 +0000210 output.
211 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000212
Eric Andersen53310252000-07-04 19:42:23 +0000213 <para>
214 Example:
215 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000216
Eric Andersen53310252000-07-04 19:42:23 +0000217 <para>
218 <screen>
219 $ cat /proc/uptime
220 110716.72 17.67
221 </screen>
222 </para>
Eric Andersen53310252000-07-04 19:42:23 +0000223 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000224
Eric Andersen028fb622000-07-04 20:07:13 +0000225 <sect1 id="chgrp">
226 <title>chgrp</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000227
Eric Andersen028fb622000-07-04 20:07:13 +0000228 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000229 Usage: chgrp [OPTION]... GROUP FILE...
Eric Andersen028fb622000-07-04 20:07:13 +0000230 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000231
Eric Andersen028fb622000-07-04 20:07:13 +0000232 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000233 Change the group membership of each FILE to GROUP.
Eric Andersen028fb622000-07-04 20:07:13 +0000234 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000235
Eric Andersen028fb622000-07-04 20:07:13 +0000236 <para>
237 Options:
238 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000239
Eric Andersen028fb622000-07-04 20:07:13 +0000240 <para>
241 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000242 -R Change files and directories recursively
243 </screen>
244 </para>
245
246 <para>
247 Example:
248 </para>
249
250 <para>
251 <screen>
252 $ ls -l /tmp/foo
253 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
254 $ chgrp root /tmp/foo
255 $ ls -l /tmp/foo
256 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
257 </screen>
258 </para>
259 </sect1>
260
261 <sect1 id="chmod">
262 <title>chmod</title>
263
264 <para>
265 Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
266 </para>
267
268 <para>
269 Change file access permissions for the specified
270 <literal>FILE(s)</literal> (or directories). Each MODE is defined by
271 combining the letters for WHO has access to the file, an OPERATOR for
272 selecting how the permissions should be changed, and a PERMISSION for
273 <literal>FILE(s)</literal> (or directories).
274 </para>
275
276 <para>
277 WHO may be chosen from
278 </para>
279
280 <para>
281 <screen>
282 u User who owns the file
283 g Users in the file's Group
284 o Other users not in the file's group
285 a All users
286 </screen>
287 </para>
288
289 <para>
290 OPERATOR may be chosen from
291 </para>
292
293 <para>
294 <screen>
295 + Add a permission
296 - Remove a permission
297 = Assign a permission
298 </screen>
299 </para>
300
301 <para>
302 PERMISSION may be chosen from
303 </para>
304
305 <para>
306 <screen>
307 r Read
308 w Write
309 x Execute (or access for directories)
310 s Set user (or group) ID bit
311 t Sticky bit (for directories prevents removing files by non-owners)
312 </screen>
313 </para>
314
315 <para>
316 Alternately, permissions can be set numerically where the first three
317 numbers are calculated by adding the octal values, such as
318 </para>
319
320 <para>
321 <screen>
322 4 Read
323 2 Write
324 1 Execute
325 </screen>
326 </para>
327
328 <para>
329 An optional fourth digit can also be used to specify
330 </para>
331
332 <para>
333 <screen>
334 4 Set user ID
335 2 Set group ID
336 1 Sticky bit
337 </screen>
338 </para>
339
340 <para>
341 Options:
342 </para>
343
344 <para>
345 <screen>
346 -R Change files and directories recursively.
347 </screen>
348 </para>
349
350 <para>
351 Example:
352 </para>
353
354 <para>
355 <screen>
356 $ ls -l /tmp/foo
357 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
358 $ chmod u+x /tmp/foo
359 $ ls -l /tmp/foo
360 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
361 $ chmod 444 /tmp/foo
362 $ ls -l /tmp/foo
363 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
364 </screen>
365 </para>
366 </sect1>
367
368 <sect1 id="chown">
369 <title>chown</title>
370 <para>
371 Usage: chown [OPTION]... OWNER[&lt;.|:&gt;[GROUP] FILE...
372 </para>
373
374 <para>
375 Change the owner and/or group of each FILE to OWNER and/or GROUP.
376 </para>
377
378 <para>
379 Options:
380 </para>
381
382 <para>
383 <screen>
384 -R Change files and directories recursively
Eric Andersen028fb622000-07-04 20:07:13 +0000385 </screen>
386 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000387
Eric Andersen028fb622000-07-04 20:07:13 +0000388 <para>
389 Example:
390 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000391
Eric Andersen028fb622000-07-04 20:07:13 +0000392 <para>
393 <screen>
394 $ ls -l /tmp/foo
395 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
396 $ chown root /tmp/foo
397 $ ls -l /tmp/foo
398 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
399 $ chown root.root /tmp/foo
400 ls -l /tmp/foo
401 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
402 </screen>
403 </para>
404 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000405
Eric Andersen028fb622000-07-04 20:07:13 +0000406 <sect1 id="chroot">
407 <title>chroot</title>
408 <para>
409 Usage: chroot NEWROOT [COMMAND...]
410 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000411
Eric Andersen028fb622000-07-04 20:07:13 +0000412 <para>
413 Run COMMAND with root directory set to NEWROOT.
414 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000415
Eric Andersen028fb622000-07-04 20:07:13 +0000416 <para>
417 Example:
418 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000419
Eric Andersen028fb622000-07-04 20:07:13 +0000420 <para>
421 <screen>
422 $ ls -l /bin/ls
423 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -&gt; /BusyBox
424 $ mount /dev/hdc1 /mnt -t minix
425 $ chroot /mnt
426 $ ls -l /bin/ls
427 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
428 </screen>
429 </para>
430 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000431
Eric Andersen028fb622000-07-04 20:07:13 +0000432 <sect1 id="chvt">
433 <title>chvt</title>
434 <para>
435 Usage: chvt N
436 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000437
Eric Andersen028fb622000-07-04 20:07:13 +0000438 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000439 Change the foreground virtual terminal to /dev/ttyN
Eric Andersen028fb622000-07-04 20:07:13 +0000440 </para>
441 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000442
Eric Andersen028fb622000-07-04 20:07:13 +0000443 <sect1 id="clear">
444 <title>clear</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000445
Eric Andersen028fb622000-07-04 20:07:13 +0000446 <para>
447 Usage: clear
448 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000449
Eric Andersen028fb622000-07-04 20:07:13 +0000450 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000451 Clear the screen.
Eric Andersen028fb622000-07-04 20:07:13 +0000452 </para>
453 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000454
Eric Andersen028fb622000-07-04 20:07:13 +0000455 <sect1 id="cp">
456 <title>cp</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000457
Eric Andersen028fb622000-07-04 20:07:13 +0000458 <para>
459 Usage: cp [OPTION]... SOURCE DEST
460 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000461
Eric Andersen028fb622000-07-04 20:07:13 +0000462 <para>
463 <screen>
464 or: cp [OPTION]... SOURCE... DIRECTORY
465 </screen>
466 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000467
Eric Andersen028fb622000-07-04 20:07:13 +0000468 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000469 Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
Eric Andersen028fb622000-07-04 20:07:13 +0000470 DIRECTORY.
471 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000472
Eric Andersen028fb622000-07-04 20:07:13 +0000473 <para>
474 Options:
475 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000476
Eric Andersen028fb622000-07-04 20:07:13 +0000477 <para>
478 <screen>
479 -a Same as -dpR
Eric Andersen6f5e2812000-07-06 16:58:45 +0000480 -d Preserve links
481 -p Preserve file attributes if possible
482 -R Copy directories recursively
Eric Andersen028fb622000-07-04 20:07:13 +0000483 </screen>
484 </para>
485 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000486
Eric Andersen028fb622000-07-04 20:07:13 +0000487 <sect1 id="cut">
488 <title>cut</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000489
Eric Andersen028fb622000-07-04 20:07:13 +0000490 <para>
491 Usage: cut [OPTION]... [FILE]...
492 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000493
Eric Andersen028fb622000-07-04 20:07:13 +0000494 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000495 Print selected fields from each input FILE to standard output.
Eric Andersen028fb622000-07-04 20:07:13 +0000496 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000497
Eric Andersen028fb622000-07-04 20:07:13 +0000498 <para>
499 Options:
500 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000501
Eric Andersen028fb622000-07-04 20:07:13 +0000502 <para>
503 <screen>
504 -b LIST Output only bytes from LIST
505 -c LIST Output only characters from LIST
506 -d CHAR Use CHAR instead of tab as the field delimiter
507 -s Only output Lines if the include DELIM
508 -f N Print only these fields
509 -n Ignored
510 </screen>
511 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000512
Eric Andersen028fb622000-07-04 20:07:13 +0000513 <para>
514 Example:
515 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000516
Eric Andersen028fb622000-07-04 20:07:13 +0000517 <para>
518 <screen>
519 $ echo "Hello world" | cut -f 1 -d ' '
520 Hello
521 $ echo "Hello world" | cut -f 2 -d ' '
522 world
523 </screen>
524 </para>
525 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000526
Eric Andersen028fb622000-07-04 20:07:13 +0000527 <sect1 id="date">
528 <title>date</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000529
Eric Andersen028fb622000-07-04 20:07:13 +0000530 <para>
531 Usage: date [OPTION]... [+FORMAT]
532 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000533
Eric Andersen028fb622000-07-04 20:07:13 +0000534 <para>
535 <screen>
536 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
537 </screen>
538 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000539
Eric Andersen028fb622000-07-04 20:07:13 +0000540 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000541 Display the current time in the given FORMAT, or set the system date.
Eric Andersen028fb622000-07-04 20:07:13 +0000542 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000543
Eric Andersen028fb622000-07-04 20:07:13 +0000544 <para>
545 Options:
546 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000547
Eric Andersen028fb622000-07-04 20:07:13 +0000548 <para>
549 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000550 -R Output RFC-822 compliant date string
551 -s Set time described by STRING
552 -u Print or set Coordinated Universal Time
Eric Andersen028fb622000-07-04 20:07:13 +0000553 </screen>
554 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000555
Eric Andersen028fb622000-07-04 20:07:13 +0000556 <para>
557 Example:
558 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000559
Eric Andersen028fb622000-07-04 20:07:13 +0000560 <para>
561 <screen>
562 $ date
563 Wed Apr 12 18:52:41 MDT 2000
564 </screen>
565 </para>
566 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000567
Eric Andersen6f5e2812000-07-06 16:58:45 +0000568 <sect1 id="dc">
569 <title>dc</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000570
Eric Andersen6f5e2812000-07-06 16:58:45 +0000571 <para>
572 Usage: dc [EXPRESSION]
573 </para>
574
575 <para>
576 This is a Tiny RPN calculator that understands the
577 following operations: +, -, /, *, and, or, not, eor. If
578 no arguments are given, dc will process input from
579 stdin.
580 </para>
581
582 <para>
583 The behaviour of BusyBox/dc deviates (just a little ;-)
584 from GNU/dc, but this will be remedied in the future.
585 </para>
586
587 <para>
588 Example:
589 </para>
590
591 <para>
592 <screen>
593 $ dc 2 2 +
594 4
595 $ dc 8 8 \* 2 2 + /
596 16
597 $ dc 0 1 and
598 0
599 $ dc 0 1 or
600 1
601 $ echo 72 9 div 8 mul | dc
602 64
603 </screen>
604 </para>
605 </sect1>
606
607 <sect1 id="dd">
608 <title>dd</title>
609
610 <para>
611 Usage: dd [OPTION]...
612 </para>
613
614 <para>
615 Copy a file, converting and formatting according to
616 options.
617 </para>
618
619 <para>
620 Options:
621 </para>
622
623 <para>
624 <screen>
625 if=FILE Read from FILE instead of stdin
626 of=FILE Write to FILE instead of stdout
627 bs=N Read and write N bytes at a time
628 count=N Copy only N input blocks
629 skip=N Skip N input blocks
630 seek=N Skip N output blocks
631 </screen>
632 </para>
633
634 <para>
635 Numbers may be suffixed by w (x2), k (x1024), b (x512),
636 or M (x1024^2).
637 </para>
638
639 <para>
640 Example:
641 </para>
642
643 <para>
644 <screen>
645 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
646 4+0 records in
647 4+0 records out
648 </screen>
649 </para>
650 </sect1>
651
652 <sect1 id="deallocvt">
653 <title>deallocvt</title>
654
655 <para>
656 Usage: deallocvt N
657 </para>
658
659 <para>
660 Deallocate unused virtual terminal /dev/ttyN.
661 </para>
662 </sect1>
663
664 <sect1 id="df">
665 <title>df</title>
666
667 <para>
668 Usage: df [FILE]...
669 </para>
670
671 <para>
672 Print the filesystem space used and space available.
673 </para>
674
675 <para>
676 Example:
677 </para>
678
679 <para>
680 <screen>
681 $ df
682 Filesystem 1k-blocks Used Available Use% Mounted on
683 /dev/sda3 8690864 8553540 137324 98% /
684 /dev/sda1 64216 36364 27852 57% /boot
685 $ df /dev/sda3
686 Filesystem 1k-blocks Used Available Use% Mounted on
687 /dev/sda3 8690864 8553540 137324 98% /
688 </screen>
689 </para>
690 </sect1>
691
692 <sect1 id="dirname">
693 <title>dirname</title>
694
695 <para>
696 Usage: dirname NAME
697 </para>
698
699 <para>
700 Strip non-directory suffix from NAME.
701 </para>
702
703 <para>
704 Example:
705 </para>
706
707 <para>
708 <screen>
709 $ dirname /tmp/foo
710 /tmp
711 $ dirname /tmp/foo/
712 /tmp
713 </screen>
714 </para>
715 </sect1>
716
717 <sect1 id="dmesg">
718 <title>dmesg</title>
719
720 <para>
721 Usage: dmesg [OPTION]...
722 </para>
723
724 <para>
725 Print or control the kernel ring buffer.
726 </para>
727
728 <para>
729 Options:
730 </para>
731
732 <para>
733 <screen>
734 -c Clear the ring buffer after printing
735 -n LEVEL Set the console logging level to LEVEL
736 -s BUFSIZE Query ring buffer using a buffer of BUFSIZE
737 </screen>
738 </para>
739 </sect1>
740
741 <sect1 id="du">
742 <title>du</title>
743
744 <para>
745 Usage: du [OPTION]... [FILE]...
746 </para>
747
748 <para>
749 Summarize the disk space used for each FILE or current
750 directory. Disk space printed in units of 1k (i.e.
751 1024 bytes).
752 </para>
753
754 <para>
755 Options:
756 </para>
757
758 <para>
759 <screen>
760 -l Count sizes many times if hard linked
761 -s Display only a total for each argument
762 </screen>
763 </para>
764
765 <para>
766 Example:
767 </para>
768
769 <para>
770 <screen>
771 $ du
772 16 ./CVS
773 12 ./kernel-patches/CVS
774 80 ./kernel-patches
775 12 ./tests/CVS
776 36 ./tests
777 12 ./scripts/CVS
778 16 ./scripts
779 12 ./docs/CVS
780 104 ./docs
781 2417 .
782 </screen>
783 </para>
784 </sect1>
785
786 <sect1 id="dutmp">
787 <title>dutmp</title>
788
789 <para>
790 Usage: dutmp [FILE]
791 </para>
792
793 <para>
794 Dump utmp file format (pipe delimited) from FILE or
795 stdin to stdout.
796 </para>
797
798 <para>
799 Example:
800 </para>
801
802 <para>
803 <screen>
804 $ dutmp /var/run/utmp
805 8|7||si|||0|0|0|955637625|760097|0
806 2|0|~|~~|reboot||0|0|0|955637625|782235|0
807 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
808 8|125||l4|||0|0|0|955637629|998367|0
809 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
810 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
811 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
812 </screen>
813 </para>
814 </sect1>
815
816 <sect1 id="echo">
817 <title>echo</title>
818
819 <para>
820 Usage: echo [OPTION]... [ARG]...
821 </para>
822
823 <para>
824 Print ARGs to stdout.
825 </para>
826
827 <para>
828 Options:
829 </para>
830
831 <para>
832 <screen>
833 -n Suppress trailing newline
834 -e Enable interpretation of escaped characters
835 -E Disable interpretation of escaped characters
836 </screen>
837 </para>
838
839 <para>
840 Example:
841 </para>
842
843 <para>
844 <screen>
845 $ echo "Erik is cool"
846 Erik is cool
847 $ echo -e "Erik\nis\ncool"
848 Erik
849 is
850 cool
851 $ echo "Erik\nis\ncool"
852 Erik\nis\ncool
853 </screen>
854 </para>
855 </sect1>
856
857 <sect1 id="false">
858 <title>false</title>
859
860 <para>
861 Usage: false
862 </para>
863
864 <para>
865 Returns an exit code of FALSE (1).
866 </para>
867
868 <para>
869 Example:
870 </para>
871
872 <para>
873 <screen>
874 $ false
875 $ echo $?
876 1
877 </screen>
878 </para>
879 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000880
Eric Andersene5cec4e2000-07-06 19:59:22 +0000881 <sect1 id="fbset">
882 <title>fbset</title>
883
884 <para>
885 Usage: fbset [OPTION]... [MODE]
886 </para>
887
888 <para>
889 Show and modify frame buffer device settings.
890 </para>
891
892 <para>
893 Options:
894 </para>
895
896 <para>
897 <screen>
898 -h Display option summary
899 -fb DEVICE Operate on DEVICE
900 -db FILE Use FILE for mode database
901 -g XRES YRES VXRES VYRES DEPTH Set all geometry parameters
902 -t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN Set all timing parameters
903 -xres RES Set visible horizontal resolution
904 -yres RES Set visible vertical resolution
905 </screen>
906 </para>
907
908 <para>
909 Example:
910 </para>
911
912 <para>
913 <screen>
914 $ fbset
915 mode "1024x768-76"
916 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
917 geometry 1024 768 1024 768 16
918 timings 12714 128 32 16 4 128 4
919 accel false
920 rgba 5/11,6/5,5/0,0/0
921 endmode
922 </screen>
923 </para>
924 </sect1>
925
926 <sect1 id="fdflush">
927 <title>fdflush</title>
928
929 <para>
930 Usage: fdflush DEVICE
931 </para>
932
933 <para>
934 Force floppy disk drive to detect disk change on DEVICE.
935 </para>
936 </sect1>
937
938 <sect1 id="find">
939 <title>find</title>
940
941 <para>
942 Usage: find [PATH]... [EXPRESSION]
943 </para>
944
945 <para>
946 Search for files in a directory hierarchy. The default
947 PATH is the current directory; default EXPRESSION is
948 '-print'.
949 </para>
950
951 <para>
952 EXPRESSION may consist of:
953 </para>
954
955 <para>
956 <screen>
957 -follow Dereference symbolic links
958 -name PATTERN File name (leading directories removed) matches PATTERN
959 -print Print the full file name followed by a newline to stdout
960 </screen>
961 </para>
962
963 <para>
964 Example:
965 </para>
966
967 <para>
968 <screen>
969 $ find / -name /etc/passwd
970 /etc/passwd
971 </screen>
972 </para>
973 </sect1>
974
975 <sect1 id="free">
976 <title>free</title>
977
978 <para>
979 Usage: free
980 </para>
981
982 <para>
983 Displays the amount of free and used system memory.
984 </para>
985
986 <para>
987 Example:
988 </para>
989
990 <para>
991 <screen>
992 $ free
993 total used free shared buffers
994 Mem: 257628 248724 8904 59644 93124
995 Swap: 128516 8404 120112
996 Total: 386144 257128 129016
997 </screen>
998 </para>
999 </sect1>
1000
1001 <sect1 id="freeramdisk">
1002 <title>freeramdisk</title>
1003
1004 <para>
1005 Usage: freeramdisk DEVICE
1006 </para>
1007
1008 <para>
1009 Free all memory used by the ramdisk DEVICE.
1010 </para>
1011
1012 <para>
1013 Example:
1014 </para>
1015
1016 <para>
1017 <screen>
1018 $ freeramdisk /dev/ram2
1019 </screen>
1020 </para>
1021 </sect1>
1022
1023 <sect1 id="fsck.minix">
1024 <title>fsck.minix</title>
1025
1026 <para>
1027 Usage: fsck.minix [OPTION]... DEVICE
1028 </para>
1029
1030 <para>
1031 Perform a consistency check on the MINIX filesystem on
1032 DEVICE.
1033 </para>
1034
1035 <para>
1036 Options:
1037 </para>
1038
1039 <para>
1040 <screen>
1041 -l List all filenames
1042 -r Perform interactive repairs
1043 -a Perform automatic repairs
1044 -v Verbose
1045 -s Output super-block information
1046 -m Activate MINIX-like "mode not cleared" warnings
1047 -f Force file system check.
1048 </screen>
1049 </para>
1050 </sect1>
1051
1052 <sect1 id="grep">
1053 <title>grep</title>
1054
1055 <para>
1056 Usage: grep [OPTIONS]... PATTERN [FILE]...
1057 </para>
1058
1059 <para>
1060 Search for PATTERN in each FILE or stdin.
1061 </para>
1062
1063 <para>
1064 Options:
1065 </para>
1066
1067 <para>
1068 <screen>
1069 -h Suppress the prefixing filename on output
1070 -i Ignore case distinctions
1071 -n Print line number with output lines
1072 -q Be quiet. Returns 0 if result was found, 1 otherwise
1073 -v Select non-matching lines
1074 </screen>
1075 </para>
1076
1077 <para>
1078 This version of grep matches full regular expressions.
1079 </para>
1080
1081 <para>
1082 Example:
1083 </para>
1084
1085 <para>
1086 <screen>
1087 $ grep root /etc/passwd
1088 root:x:0:0:root:/root:/bin/bash
1089 $ grep ^[rR]oo. /etc/passwd
1090 root:x:0:0:root:/root:/bin/bash
1091 </screen>
1092 </para>
1093 </sect1>
1094
1095 <sect1 id="gunzip">
1096 <title>gunzip</title>
1097
1098 <para>
1099 Usage: gunzip [OPTION]... FILE
1100 </para>
1101
1102 <para>
1103 Uncompress FILE (or stdin if FILE is '-').
1104 </para>
1105
1106 <para>
1107 Options:
1108 </para>
1109
1110 <para>
1111 <screen>
1112 -c Write output to standard output
1113 -t Test compressed file integrity
1114 </screen>
1115 </para>
1116
1117 <para>
1118 Example:
1119 </para>
1120
1121 <para>
1122 <screen>
1123 $ ls -la /tmp/BusyBox*
1124 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
1125 $ gunzip /tmp/BusyBox-0.43.tar.gz
1126 $ ls -la /tmp/BusyBox*
1127 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1128 </screen>
1129 </para>
1130 </sect1>
1131
1132< <sect1 id="gzip">
1133 <title>gzip</title>
1134
1135 <para>
1136 Usage: gzip [OPTION]... FILE
1137 </para>
1138
1139 <para>
1140 Compress FILE (or stdin if FILE is '-') with maximum
1141 compression to FILE.gz (or stdout if FILE is '-').
1142 </para>
1143
1144 <para>
1145 Options:
1146 </para>
1147
1148 <para>
1149 <screen>
1150 -c Write output to standard output
1151 </screen>
1152 </para>
1153
1154 <para>
1155 Example:
1156 </para>
1157
1158 <para>
1159 <screen>
1160 $ ls -la /tmp/BusyBox*
1161 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1162 $ gzip /tmp/BusyBox-0.43.tar
1163 $ ls -la /tmp/BusyBox*
1164 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
1165 </screen>
1166 </para>
1167 </sect1>
1168
1169 <sect1 id="halt">
1170 <title>halt</title>
1171
1172 <para>
1173 Usage: halt
1174 </para>
1175
1176 <para>
1177 Halt the system.
1178 </para>
1179 </sect1>
1180
1181 <sect1 id="head">
1182 <title>head</title>
1183
1184 <para>
1185 Usage: head [OPTION] FILE...
1186 </para>
1187
1188 <para>
1189 Print first 10 lines of each FILE to standard output.
1190 With more than one FILE, precede each with a header
1191 giving the file name. With no FILE, or when FILE is -,
1192 read standard input.
1193 </para>
1194
1195 <para>
1196 Options:
1197 </para>
1198
1199 <para>
1200 <screen>
1201 -n NUM Print first NUM lines instead of first 10
1202 </screen>
1203 </para>
1204
1205 <para>
1206 Example:
1207 </para>
1208
1209 <para>
1210 <screen>
1211 $ head -n 2 /etc/passwd
1212 root:x:0:0:root:/root:/bin/bash
1213 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
1214 </screen>
1215 </para>
1216 </sect1>
1217
1218 <sect1 id="hostid">
1219 <title>hostid</title>
1220
1221 <para>
1222 Usage: hostid
1223 </para>
1224
1225 <para>
1226 Prints out a unique 32-bit identifier for the current
1227 machine. The 32-bit identifier is intended to be unique
1228 among all UNIX systems in existence.
1229 </para>
1230 </sect1>
1231
1232 <sect1 id="hostname">
1233 <title>hostname</title>
1234
1235 <para>
1236 Usage: hostname [OPTION]... [HOSTNAME|-F FILE]
1237 </para>
1238
1239 <para>
1240 Get or set the hostname or DNS domain name. If a
1241 hostname is given (or a file with the -F parameter), the
1242 host name will be set.
1243 </para>
1244
1245 <para>
1246 Options:
1247 </para>
1248
1249 <para>
1250 <screen>
1251 -s Short
1252 -i Addresses for the hostname
1253 -d DNS domain name
1254 -F FILE Use the contents of FILE to specify the hostname
1255 </screen>
1256 </para>
1257
1258 <para>
1259 Example:
1260 </para>
1261
1262 <para>
1263 <screen>
1264 $ hostname
1265 slag
1266 </screen>
1267 </para>
1268 </sect1>
1269
1270 <sect1 id="id">
1271 <title>id</title>
1272
1273 <para>
1274 Usage: id [OPTION]... [USERNAME]
1275 </para>
1276
1277 <para>
1278 Print information for USERNAME or the current user.
1279 </para>
1280
1281 <para>
1282 Options:
1283 </para>
1284
1285 <para>
1286 <screen>
1287 -g Print only the group ID
1288 -u Print only the user ID
1289 -r Print the real user ID instead of the effective ID (with -ug)
1290 </screen>
1291 </para>
1292
1293 <para>
1294 Example:
1295 </para>
1296
1297 <para>
1298 <screen>
1299 $ id
1300 uid=1000(andersen) gid=1000(andersen)
1301 </screen>
1302 </para>
1303 </sect1>
1304
1305 <sect1 id="init">
1306 <title>init</title>
1307
1308 <para>
1309 Usage: init
1310 </para>
1311
1312 <para>
1313 Init is the parent of all processes.
1314 </para>
1315
1316 <para>
1317 This version of init is designed to be run only by the
1318 kernel.
1319 </para>
1320
1321 <para>
1322 BusyBox init doesn't support multiple runlevels. The
1323 runlevels field of the /etc/inittab file is completely
1324 ignored by BusyBox init. If you want runlevels, use
1325 sysvinit.
1326 </para>
1327
1328 <para>
1329 BusyBox init works just fine without an inittab. If no
1330 inittab is found, it has the following default behavior:
1331 </para>
1332
1333 <para>
1334 <screen>
1335 ::sysinit:/etc/init.d/rcS
1336 ::askfirst:/bin/sh
1337 </screen>
1338 </para>
1339
1340 <para>
1341 If it detects that /dev/console is _not_ a serial
1342 console, it will also run:
1343 </para>
1344
1345 <para>
1346 <screen>
1347 tty2::askfirst:/bin/sh
1348 </screen>
1349 </para>
1350
1351 <para>
1352 If you choose to use an /etc/inittab file, the inittab
1353 entry format is as follows:
1354 </para>
1355
1356 <para>
1357 <screen>
1358 &lt;id&gt;:&lt;runlevels&gt;:&lt;action&gt;:&lt;process&gt;
1359 </screen>
1360 <para>
1361
1362 <sect2>
1363 <title>id</title>
1364 <para>
1365 WARNING: This field has a non-traditional
1366 meaning for BusyBox init! The id field is used
1367 by BusyBox init to specify the controlling tty
1368 for the specified process to run on. The
1369 contents of this field are appended to "/dev/"
1370 and used as-is. There is no need for this field
1371 to be unique, although if it isn't you may have
1372 strange results. If this field is left blank,
1373 it is completely ignored. Also note that if
1374 BusyBox detects that a serial console is in use,
1375 then all entries containing non-empty id fields
1376 will _not_ be run. BusyBox init does nothing
1377 with utmp. We don't need no stinkin' utmp.
1378 </para>
1379 </sect2>
1380
1381 <sect2>
1382 <title>runlevels</title>
1383
1384 <para>
1385 The runlevels field is completely ignored.
1386 </para>
1387 </sect2>
1388
1389 <sect2>
1390 <title>action</title>
1391
1392 <para>
1393 Valid actions include: sysinit, respawn,
1394 askfirst, wait, once, and ctrlaltdel.
1395 </para>
1396
1397 <para>
1398 askfirst acts just like respawn, but before
1399 running the specified process it displays the
1400 line "Please press Enter to activate this
1401 console." and then waits for the user to press
1402 enter before starting the specified process.
1403 </para>
1404
1405 <para>
1406 Unrecognized actions (like initdefault) will
1407 cause init to emit an error message, and then go
1408 along with its business.
1409 </para>
1410 </sect2>
1411
1412 <sect2>
1413 <title>process</title>
1414
1415 <para>
1416 Specifies the process to be executed and its
1417 command line.
1418 </para>
1419 </sect2>
1420
1421 <para>
1422 Example /etc/inittab file:
1423 </para>
1424
1425 <para>
1426 <screen>
1427 # This is run first except when booting in single-user mode.
1428 #
1429 ::sysinit:/etc/init.d/rcS
1430
1431 # /bin/sh invocations on selected ttys
1432 #
1433 # Start an "askfirst" shell on the console (whatever that may be)
1434 ::askfirst:/bin/sh
1435 # Start an "askfirst" shell on /dev/tty2
1436 tty2::askfirst:/bin/sh
1437
1438 # /sbin/getty invocations for selected ttys
1439 #
1440 tty4::respawn:/sbin/getty 38400 tty4
1441 tty5::respawn:/sbin/getty 38400 tty5
1442
1443 # Example of how to put a getty on a serial line (for a terminal)
1444 #
1445 #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
1446 #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
1447 #
1448 # Example how to put a getty on a modem line.
1449 #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
1450
1451 # Stuff to do before rebooting
1452 ::ctrlaltdel:/bin/umount -a -r &gt; /dev/null 2&gt;&amp;1
1453 ::ctrlaltdel:/sbin/swapoff -a &gt; /dev/null 2&gt;&amp;1
1454 </screen>
1455 </para>
1456 </sect1>
1457
1458 <sect1 id="insmod">
1459 <title>insmod</title>
1460
1461 <para>
1462 Usage: insmod [OPTION]... MODULE [symbol=value]...
1463 </para>
1464
1465 <para>
1466 Loads MODULE into the kernel.
1467 </para>
1468
1469 <para>
1470 Options:
1471 </para>
1472
1473 <para>
1474 <screen>
1475 -f Force module to load into the wrong kernel version.
1476 -k Make module autoclean-able.
1477 -v Verbose output
1478 -x Do not export externs
1479 </screen>
1480 </para>
1481 </sect1>
1482
1483 <sect1 id="kill">
1484 <title>kill</title>
1485
1486 <para>
1487 Usage: kill [OPTION] PID...
1488 </para>
1489
1490 <para>
1491 Send a signal (default is SIGTERM) to the specified
1492 PID(s).
1493 </para>
1494
1495 <para>
1496 Options:
1497 </para>
1498
1499 <para>
1500 <screen>
1501 -l List all signal names and numbers
1502 -SIG Send signal SIG
1503 </screen>
1504 </para>
1505
1506 <para>
1507 Example:
1508 </para>
1509
1510 <para>
1511 <screen>
1512 $ ps | grep apache
1513 252 root root S [apache]
1514 263 www-data www-data S [apache]
1515 264 www-data www-data S [apache]
1516 265 www-data www-data S [apache]
1517 266 www-data www-data S [apache]
1518 267 www-data www-data S [apache]
1519 $ kill 252
1520 </screen>
1521 </para>
1522 </sect1>
1523
1524 <sect1 id="killall">
1525 <title>killall</title>
1526
1527 <para>
1528 Usage: killall [OPTION] NAME...
1529 </para>
1530
1531 <para>
1532 Send a signal (default is SIGTERM) to the specified
1533 NAME(s).
1534 </para>
1535
1536 <para>
1537 Options:
1538 </para>
1539
1540 <para>
1541 <screen>
1542 -l List all signal names and numbers
1543 -SIG Send signal SIG
1544 </screen>
1545 </para>
1546
1547 <para>
1548 Example:
1549 </para>
1550
1551 <para>
1552 <screen>
1553 $ killall apache
1554 </screen>
1555 </para>
1556 </sect1>
1557
1558 <sect1 id="length">
1559 <title>length</title>
1560
1561 <para>
1562 Usage: length STRING
1563 </para>
1564
1565 <para>
1566 Print the length of STRING.
1567 </para>
1568
1569 <para>
1570 Example:
1571 </para>
1572
1573 <para>
1574 <screen>
1575 $ length "Hello"
1576 5
1577 </screen>
1578 </para>
1579 </sect1>
1580
1581 <sect1 id="ln">
1582 <title>ln</title>
1583
1584 <para>
1585 Usage: ln [OPTION]... TARGET FILE|DIRECTORY
1586 </para>
1587
1588 <para>
1589 Create a link named FILE or DIRECTORY to the specified
1590 TARGET. You may use '--' to indicate that all following
1591 arguments are non-options.
1592 </para>
1593
1594 <para>
1595 Options:
1596 </para>
1597
1598 <para>
1599 <screen>
1600 -s Make symbolic link instead of hard link
1601 -f Remove existing destination file
1602 </screen>
1603 </para>
1604
1605 <para>
1606 Example:
1607 </para>
1608
1609 <para>
1610 <screen>
1611 $ ln -s BusyBox /tmp/ls
1612 $ ls -l /tmp/ls
1613 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -&gt; BusyBox*
1614 </screen>
1615 </para>
1616 </sect1>
1617
1618 <sect1 id="loadacm">
1619 <title>loadacm</title>
1620
1621 <para>
1622 Usage: loadacm
1623 </para>
1624
1625 <para>
1626 Load an acm from stdin.
1627 </para>
1628
1629 <para>
1630 Example:
1631 </para>
1632
1633 <para>
1634 <screen>
1635 $ loadacm &lt; /etc/i18n/acmname
1636 </screen>
1637 </para>
1638 </sect1>
1639
1640 <sect1 id="loadfont">
1641 <title>loadfont</title>
1642
1643 <para>
1644 Usage: loadfont
1645 </para>
1646
1647 <para>
1648 Load a console font from stdin.
1649 </para>
1650
1651 <para>
1652 Example:
1653 </para>
1654
1655 <para>
1656 <screen>
1657 $ loadfont &lt; /etc/i18n/fontname
1658 </screen>
1659 </para>
1660 </sect1>
1661
1662 <sect1 id="loadkmap">
1663 <title>loadkmap</title>
1664
1665 <para>
1666 Usage: loadkmap
1667 </para>
1668
1669 <para>
1670 Load a binary keyboard translation table from stdin.
1671 </para>
1672
1673 <para>
1674 Example:
1675 </para>
1676
1677 <para>
1678 <screen>
1679 $ loadkmap &lt; /etc/i18n/lang-keymap
1680 </screen>
1681 </para>
1682 </sect1>
1683
1684 <sect1 id="logger">
1685 <title>logger</title>
1686
1687 <para>
1688 Usage: logger [OPTION]... [MESSAGE]
1689 </para>
1690
1691 <para>
1692 Write MESSAGE to the system log. If MESSAGE is '-', log
1693 stdin.
1694 </para>
1695
1696 <para>
1697 Options:
1698 </para>
1699
1700 <para>
1701 <screen>
1702 -s Log to stderr as well as the system log
1703 -t Log using the specified tag (defaults to user name)
1704 -p Enter the message with the specified priority
1705 This may be numerical or a ``facility.level'' pair
1706 </screen>
1707 </para>
1708
1709 <para>
1710 Example:
1711 </para>
1712
1713 <para>
1714 <screen>
1715 $ logger "hello"
1716 </screen>
1717 </para>
1718 </sect1>
1719
1720 <sect1 id="logname">
1721 <title>logname</title>
1722
1723 <para>
1724 Usage: logname
1725 </para>
1726
1727 <para>
1728 Print the name of the current user.
1729 </para>
1730
1731 <para>
1732 Example:
1733 </para>
1734
1735 <para>
1736 <screen>
1737 $ logname
1738 root
1739 </screen>
1740 </para>
1741 </sect1>
1742
1743 <sect1 id="ls">
1744 <title>ls</title>
1745
1746 <para>
1747 Usage: ls [OPTION]... [FILE]...
1748 </para>
1749
1750 <para>
1751
1752 </para>
1753
1754 <para>
1755 Options:
1756 </para>
1757
1758 <para>
1759 <screen>
1760 -a Do not hide entries starting with .
1761 -c With -l: show ctime (the time of last
1762 modification of file status information)
1763 -d List directory entries instead of contents
1764 -e List both full date and full time
1765 -l Use a long listing format
1766 -n List numeric UIDs and GIDs instead of names
1767 -p Append indicator (one of /=@|) to entries
1768 -u With -l: show access time (the time of last
1769 access of the file)
1770 -x List entries by lines instead of by columns
1771 -A Do not list implied . and ..
1772 -C List entries by columns
1773 -F Append indicator (one of */=@|) to entries
1774 -R List subdirectories recursively
1775 </screen>
1776 </para>
1777
1778 <para>
1779 Example:
1780 </para>
1781
1782 <para>
1783 <screen>
1784 </screen>
1785 </para>
1786 </sect1>
1787
1788 <sect1 id="lsmod">
1789 <title>lsmod</title>
1790
1791 <para>
1792 Usage: lsmod
1793 </para>
1794
1795 <para>
1796 List currently loaded kernel modules.
1797 </para>
1798 </sect1>
1799
1800 <sect1 id="makedevs">
1801 <title>makedevs</title>
1802
1803 <para>
1804 Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s]
1805 </para>
1806
1807 <para>
1808 Create a range of block or character special files.
1809 </para>
1810
1811 <para>
1812 TYPE may be:
1813 </para>
1814
1815 <para>
1816 <screen>
1817 b Make a block (buffered) device
1818 c or u Make a character (un-buffered) device
1819 p Make a named pipe. MAJOR and MINOR are ignored for named pipes
1820 </screen>
1821 </para>
1822
1823 <para>
1824 FIRST specifies the number appended to NAME to create
1825 the first device. LAST specifies the number of the last
1826 item that should be created. If 's' is the last
1827 argument, the base device is created as well.
1828 </para>
1829
1830 <para>
1831 Example:
1832 </para>
1833
1834 <para>
1835 <screen>
1836 $ makedevs /dev/ttyS c 4 66 2 63
1837 [creates ttyS2-ttyS63]
1838 $ makedevs /dev/hda b 3 0 0 8 s
1839 [creates hda,hda1-hda8]
1840 </screen>
1841 </para>
1842 </sect1>
1843
Eric Andersen028fb622000-07-04 20:07:13 +00001844<!-- This is where I have stopped formatting stuff -->
Mark Whitley83a949c2000-06-26 13:31:53 +00001845<varlistentry><term><emphasis>md5sum
1846
1847</emphasis></term>
1848<listitem><para></para>
1849
1850<para>
1851Usage: md5sum [OPTION] [file ...]
1852
1853
1854</para>
1855
1856<para>
1857Print or check MD5 checksums.
1858
1859
1860</para>
1861
1862<para>
1863Options:
1864
1865
1866</para>
1867
1868<para>
1869<screen>
1870 -b read files in binary mode
1871 -c check MD5 sums against given list
1872 -t read files in text mode (default)
1873 -g read a string
1874</screen>
1875
1876
1877</para>
1878
1879<para>
1880The following two options are useful only when verifying checksums:
1881
1882
1883</para>
1884
1885<para>
1886<screen>
1887 -s don't output anything, status code shows success
1888 -w warn about improperly formated MD5 checksum lines
1889</screen>
1890
1891
1892</para>
1893
1894<para>
1895Example:
1896
1897
1898</para>
1899
1900<para>
1901<screen>
1902 $ md5sum busybox
1903 6fd11e98b98a58f64ff3398d7b324003 busybox
1904 $ md5sum -c -
1905 6fd11e98b98a58f64ff3398d7b324003 busybox
1906 busybox: OK
1907 ^D
1908</screen>
1909
1910
1911</para>
1912
1913<para>
1914-------------------------------
1915
1916
1917</para>
1918
1919</listitem></varlistentry>
1920<varlistentry><term><emphasis>mkdir
1921
1922</emphasis></term>
1923<listitem><para></para>
1924
1925<para>
1926Usage: mkdir [OPTION] DIRECTORY...
1927
1928
1929</para>
1930
1931<para>
1932Create the <literal>DIRECTORY(ies),</literal> if they do not already exist
1933
1934
1935</para>
1936
1937<para>
1938Options:
1939
1940
1941</para>
1942
1943<para>
1944<screen>
1945 -m set permission mode (as in chmod), not rwxrwxrwx - umask
1946 -p no error if directory exists, make parent directories as needed
1947</screen>
1948
1949
1950</para>
1951
1952<para>
1953Example:
1954
1955
1956</para>
1957
1958<para>
1959<screen>
1960 $ mkdir /tmp/foo
1961 $ mkdir /tmp/foo
1962 /tmp/foo: File exists
1963 $ mkdir /tmp/foo/bar/baz
1964 /tmp/foo/bar/baz: No such file or directory
1965 $ mkdir -p /tmp/foo/bar/baz
1966</screen>
1967
1968
1969</para>
1970
1971<para>
1972-------------------------------
1973
1974
1975</para>
1976
1977</listitem></varlistentry>
1978<varlistentry><term><emphasis>mkfifo
1979
1980</emphasis></term>
1981<listitem><para></para>
1982
1983<para>
1984Usage: mkfifo [OPTIONS] name
1985
1986
1987</para>
1988
1989<para>
1990Creates a named pipe (identical to 'mknod name p')
1991
1992
1993</para>
1994
1995<para>
1996Options:
1997
1998
1999</para>
2000
2001<para>
2002<screen>
2003 -m create the pipe using the specified mode (default a=rw)
2004</screen>
2005
2006
2007</para>
2008
2009<para>
2010-------------------------------
2011
2012
2013</para>
2014
2015</listitem></varlistentry>
2016<varlistentry><term><emphasis>mkfs.minix
2017
2018</emphasis></term>
2019<listitem><para></para>
2020
2021<para>
2022Usage: mkfs.minix [<emphasis>-c</emphasis> | <emphasis>-l</emphasis> filename] [<emphasis>-nXX</emphasis>] [<emphasis>-iXX</emphasis>] /dev/name [blocks]
2023
2024
2025</para>
2026
2027<para>
2028Make a MINIX filesystem.
2029
2030
2031</para>
2032
2033<para>
2034OPTIONS:
2035
2036
2037</para>
2038
2039<para>
2040<screen>
2041 -c Check the device for bad blocks
2042 -n [14|30] Specify the maximum length of filenames
2043 -i Specify the number of inodes for the filesystem
2044 -l FILENAME Read the bad blocks list from FILENAME
2045 -v Make a Minix version 2 filesystem
2046</screen>
2047
2048
2049</para>
2050
2051<para>
2052-------------------------------
2053
2054
2055</para>
2056
2057</listitem></varlistentry>
2058<varlistentry><term><emphasis>mknod
2059
2060</emphasis></term>
2061<listitem><para></para>
2062
2063<para>
2064Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
2065
2066
2067</para>
2068
2069<para>
2070Create a special file (block, character, or pipe).
2071
2072
2073</para>
2074
2075<para>
2076Options:
2077
2078
2079</para>
2080
2081<para>
2082<screen>
2083 -m create the special file using the specified mode (default a=rw)
2084</screen>
2085
2086
2087</para>
2088
2089<para>
2090TYPEs include: b: Make a block (buffered) device. c or u: Make a character
2091(un-buffered) device. p: Make a named pipe. MAJOR and MINOR are ignored for
2092named pipes.
2093
2094
2095</para>
2096
2097<para>
2098Example:
2099
2100
2101</para>
2102
2103<para>
2104<screen>
2105 $ mknod /dev/fd0 b 2 0
2106 $ mknod -m 644 /tmp/pipe p
2107</screen>
2108
2109
2110</para>
2111
2112<para>
2113-------------------------------
2114
2115
2116</para>
2117
2118</listitem></varlistentry>
2119<varlistentry><term><emphasis>mkswap
2120
2121</emphasis></term>
2122<listitem><para></para>
2123
2124<para>
2125Usage: mkswap [<emphasis>-c</emphasis>] [<emphasis>-v0</emphasis>|<emphasis>-v1</emphasis>] device [block-count]
2126
2127
2128</para>
2129
2130<para>
2131Prepare a disk partition to be used as a swap partition.
2132
2133
2134</para>
2135
2136<para>
2137Options:
2138
2139
2140</para>
2141
2142<para>
2143<screen>
2144 -c Check for read-ability.
2145 -v0 Make version 0 swap [max 128 Megs].
2146 -v1 Make version 1 swap [big!] (default for kernels &gt; 2.1.117).
2147 block-count Number of block to use (default is entire partition).
2148</screen>
2149
2150
2151</para>
2152
2153<para>
2154-------------------------------
2155
2156
2157</para>
2158
2159</listitem></varlistentry>
2160<varlistentry><term><emphasis>mktemp
2161
2162</emphasis></term>
2163<listitem><para></para>
2164
2165<para>
2166Usage: mktemp [<emphasis>-q</emphasis>] TEMPLATE
2167
2168
2169</para>
2170
2171<para>
2172Creates a temporary file with its name based on TEMPLATE. TEMPLATE is any
2173name with six `Xs' (i.e. /tmp/temp.XXXXXX).
2174
2175
2176</para>
2177
2178<para>
2179Example:
2180
2181
2182</para>
2183
2184<para>
2185<screen>
2186 $ mktemp /tmp/temp.XXXXXX
2187 /tmp/temp.mWiLjM
2188 $ ls -la /tmp/temp.mWiLjM
2189 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
2190</screen>
2191
2192
2193</para>
2194
2195<para>
2196-------------------------------
2197
2198
2199</para>
2200
2201</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00002202<varlistentry><term><emphasis>more
2203
2204</emphasis></term>
2205<listitem><para></para>
2206
2207<para>
2208Usage: more [file ...]
2209
2210
2211</para>
2212
2213<para>
2214More is a filter for paging through text one screenful at a time.
2215
2216
2217</para>
2218
2219<para>
2220Example:
2221
2222
2223</para>
2224
2225<para>
2226<screen>
2227 $ dmesg | more
2228</screen>
2229
2230
2231</para>
2232
2233<para>
2234-------------------------------
2235
2236
2237</para>
2238
2239</listitem></varlistentry>
2240<varlistentry><term><emphasis>mount
2241
2242</emphasis></term>
2243<listitem><para></para>
2244
2245<para>
2246Usage: mount [flags] mount [flags] device directory [<emphasis>-o</emphasis> options,more-options]
2247
2248
2249</para>
2250
2251<para>
2252Flags:
2253
2254
2255</para>
2256
2257<para>
2258<screen>
2259 -a: Mount all file systems in fstab.
2260 -o option: One of many filesystem options, listed below.
2261 -r: Mount the filesystem read-only.
2262 -t fs-type: Specify the filesystem type.
2263 -w: Mount for reading and writing (default).
2264</screen>
2265
2266
2267</para>
2268
2269<para>
2270Options for use with the ``<emphasis>-o</emphasis>'' flag:
2271
2272
2273</para>
2274
2275<para>
2276<screen>
2277 async/sync: Writes are asynchronous / synchronous.
2278 atime/noatime: Enable / disable updates to inode access times.
2279 dev/nodev: Allow use of special device files / disallow them.
2280 exec/noexec: Allow use of executable files / disallow them.
2281 loop: Mounts a file via loop device.
2282 suid/nosuid: Allow set-user-id-root programs / disallow them.
2283 remount: Re-mount a currently-mounted filesystem, changing its flags.
2284 ro/rw: Mount for read-only / read-write.
2285 There are EVEN MORE flags that are specific to each filesystem.
2286 You'll have to see the written documentation for those.
2287</screen>
2288
2289
2290</para>
2291
2292<para>
2293Example:
2294
2295
2296</para>
2297
2298<para>
2299<screen>
2300 $ mount
2301 /dev/hda3 on / type minix (rw)
2302 proc on /proc type proc (rw)
2303 devpts on /dev/pts type devpts (rw)
2304 $ mount /dev/fd0 /mnt -t msdos -o ro
2305 $ mount /tmp/diskimage /opt -t ext2 -o loop
2306</screen>
2307
2308
2309</para>
2310
2311<para>
2312-------------------------------
2313
2314
2315</para>
2316
2317</listitem></varlistentry>
2318<varlistentry><term><emphasis>mt
2319
2320</emphasis></term>
2321<listitem><para></para>
2322
2323<para>
2324Usage: mt [<emphasis>-f</emphasis> device] opcode value
2325
2326
2327</para>
2328
2329<para>
2330Control magnetic tape drive operation
2331
2332
2333</para>
2334
2335<para>
2336-------------------------------
2337
2338
2339</para>
2340
2341</listitem></varlistentry>
2342<varlistentry><term><emphasis>mv
2343
2344</emphasis></term>
2345<listitem><para></para>
2346
2347<para>
2348Usage: mv SOURCE DEST
2349
2350
2351</para>
2352
2353<para>
2354<screen>
2355 or: mv SOURCE... DIRECTORY
2356</screen>
2357
2358
2359</para>
2360
2361<para>
2362Rename SOURCE to DEST, or move <literal>SOURCE(s)</literal> to DIRECTORY.
2363
2364
2365</para>
2366
2367<para>
2368Example:
2369
2370
2371</para>
2372
2373<para>
2374<screen>
2375 $ mv /tmp/foo /bin/bar
2376</screen>
2377
2378
2379</para>
2380
2381<para>
2382-------------------------------
2383
2384
2385</para>
2386
2387</listitem></varlistentry>
Eric Andersen028fb622000-07-04 20:07:13 +00002388<varlistentry><term><emphasis>nc
2389
2390</emphasis></term>
2391<listitem><para></para>
2392
2393<para>
2394Usage: nc [IP] [port]
2395
2396
2397</para>
2398
2399<para>
2400Netcat opens a pipe to IP:port
2401
2402
2403</para>
2404
2405<para>
2406Example:
2407
2408
2409</para>
2410
2411<para>
2412<screen>
2413 $ nc foobar.somedomain.com 25
2414 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
2415 help
2416 214-Commands supported:
2417 214- HELO EHLO MAIL RCPT DATA AUTH
2418 214 NOOP QUIT RSET HELP
2419 quit
2420 221 foobar closing connection
2421</screen>
2422
2423
2424</para>
2425
2426<para>
2427-------------------------------
2428
2429
2430</para>
2431
2432</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00002433<varlistentry><term><emphasis>nslookup
2434
2435</emphasis></term>
2436<listitem><para></para>
2437
2438<para>
2439Usage: nslookup [HOST]
2440
2441
2442</para>
2443
2444<para>
2445Queries the nameserver for the IP address of the given HOST
2446
2447
2448</para>
2449
2450<para>
2451Example:
2452
2453
2454</para>
2455
2456<para>
2457<screen>
2458 $ nslookup localhost
2459 Server: default
2460 Address: default
2461</screen>
2462
2463
2464</para>
2465
2466<para>
2467<screen>
2468 Name: debian
2469 Address: 127.0.0.1
2470</screen>
2471
2472
2473</para>
2474
2475<para>
2476-------------------------------
2477
2478
2479</para>
2480
2481</listitem></varlistentry>
2482<varlistentry><term><emphasis>ping
2483
2484</emphasis></term>
2485<listitem><para></para>
2486
2487<para>
2488Usage: ping [OPTION]... host
2489
2490
2491</para>
2492
2493<para>
2494Send ICMP ECHO_REQUEST packets to network hosts.
2495
2496
2497</para>
2498
2499<para>
2500Options:
2501
2502
2503</para>
2504
2505<para>
2506<screen>
2507 -c COUNT Send only COUNT pings.
2508 -s SIZE Send SIZE data bytes in packets (default=56).
2509 -q Quiet mode, only displays output at start
2510 and when finished.
2511Example:
2512</screen>
2513
2514
2515</para>
2516
2517<para>
2518<screen>
2519 $ ping localhost
2520 PING slag (127.0.0.1): 56 data bytes
2521 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
2522</screen>
2523
2524
2525</para>
2526
2527<para>
2528<screen>
2529 --- debian ping statistics ---
2530 1 packets transmitted, 1 packets received, 0% packet loss
2531 round-trip min/avg/max = 20.1/20.1/20.1 ms
2532</screen>
2533
2534
2535</para>
2536
2537<para>
2538-------------------------------
2539
2540
2541</para>
2542
2543</listitem></varlistentry>
2544<varlistentry><term><emphasis>poweroff
2545
2546</emphasis></term>
2547<listitem><para></para>
2548
2549<para>
2550Shuts down the system, and requests that the kernel turn off power upon
2551halting.
2552
2553
2554</para>
2555
2556<para>
2557-------------------------------
2558
2559
2560</para>
2561
2562</listitem></varlistentry>
2563<varlistentry><term><emphasis>printf
2564
2565</emphasis></term>
2566<listitem><para></para>
2567
2568<para>
2569Usage: printf format [argument...]
2570
2571
2572</para>
2573
2574<para>
2575Formats and prints the given data in a manner similar to the C printf
2576command.
2577
2578
2579</para>
2580
2581<para>
2582Example:
2583
2584
2585</para>
2586
2587<para>
2588<screen>
2589 $ printf "Val=%d\n" 5
2590 Val=5
2591</screen>
2592
2593
2594</para>
2595
2596<para>
2597-------------------------------
2598
2599
2600</para>
2601
2602</listitem></varlistentry>
2603<varlistentry><term><emphasis>ps
2604
2605</emphasis></term>
2606<listitem><para></para>
2607
2608<para>
2609Usage: ps
2610
2611
2612</para>
2613
2614<para>
2615Report process status
2616
2617
2618</para>
2619
2620<para>
2621This version of ps accepts no options.
2622
2623
2624</para>
2625
2626<para>
2627Example:
2628
2629
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
2647
2648</para>
2649
2650<para>
2651-------------------------------
2652
2653
2654</para>
2655
2656</listitem></varlistentry>
2657<varlistentry><term><emphasis>pwd
2658
2659</emphasis></term>
2660<listitem><para></para>
2661
2662<para>
2663Prints the full filename of the current working directory.
2664
2665
2666</para>
2667
2668<para>
2669Example:
2670
2671
2672</para>
2673
2674<para>
2675<screen>
2676 $ pwd
2677 /root
2678</screen>
2679
2680
2681</para>
2682
2683<para>
2684-------------------------------
2685
2686
2687</para>
2688
2689</listitem></varlistentry>
2690<varlistentry><term><emphasis>reboot
2691
2692</emphasis></term>
2693<listitem><para></para>
2694
2695<para>
2696Instructs the kernel to reboot the system.
2697
2698
2699</para>
2700
2701<para>
2702-------------------------------
2703
2704
2705</para>
2706
2707</listitem></varlistentry>
2708<varlistentry><term><emphasis>rm
2709
2710</emphasis></term>
2711<listitem><para></para>
2712
2713<para>
2714Usage: rm [OPTION]... FILE...
2715
2716
2717</para>
2718
2719<para>
2720Remove (unlink) the <literal>FILE(s).</literal> You may use '--' to
2721indicate that all following arguments are non-options.
2722
2723
2724</para>
2725
2726<para>
2727Options:
2728
2729
2730</para>
2731
2732<para>
2733<screen>
2734 -f remove existing destinations, never prompt
2735 -r or -R remove the contents of directories recursively
2736</screen>
2737
2738
2739</para>
2740
2741<para>
2742Example:
2743
2744
2745</para>
2746
2747<para>
2748<screen>
2749 $ rm -rf /tmp/foo
2750</screen>
2751
2752
2753</para>
2754
2755<para>
2756-------------------------------
2757
2758
2759</para>
2760
2761</listitem></varlistentry>
2762<varlistentry><term><emphasis>rmdir
2763
2764</emphasis></term>
2765<listitem><para></para>
2766
2767<para>
2768Usage: rmdir [OPTION]... DIRECTORY...
2769
2770
2771</para>
2772
2773<para>
2774Remove the <literal>DIRECTORY(ies),</literal> if they are empty.
2775
2776
2777</para>
2778
2779<para>
2780Example:
2781
2782
2783</para>
2784
2785<para>
2786<screen>
2787 # rmdir /tmp/foo
2788</screen>
2789
2790
2791</para>
2792
2793<para>
2794-------------------------------
2795
2796
2797</para>
2798
2799</listitem></varlistentry>
2800<varlistentry><term><emphasis>rmmod
2801
2802</emphasis></term>
2803<listitem><para></para>
2804
2805<para>
2806Usage: rmmod [OPTION]... [MODULE]...
2807
2808
2809</para>
2810
2811<para>
2812Unloads the specified kernel modules from the kernel.
2813
2814
2815</para>
2816
2817<para>
2818Options:
2819
2820
2821</para>
2822
2823<para>
2824<screen>
2825 -a Try to remove all unused kernel modules.
2826</screen>
2827
2828
2829</para>
2830
2831<para>
2832Example:
2833
2834
2835</para>
2836
2837<para>
2838<screen>
2839 $ rmmod tulip
2840</screen>
2841
2842
2843</para>
2844
2845<para>
2846-------------------------------
2847
2848
2849</para>
2850
2851</listitem></varlistentry>
2852<varlistentry><term><emphasis>sed
2853
2854</emphasis></term>
2855<listitem><para></para>
2856
2857<para>
2858Usage: sed [<emphasis>-n</emphasis>] <emphasis>-e</emphasis> script [file...]
2859
2860
2861</para>
2862
2863<para>
2864Allowed sed scripts come in the following form:
2865
2866
2867</para>
2868
2869<para>
2870<screen>
2871 'ADDR [!] COMMAND'
2872</screen>
2873
2874
2875</para>
2876
2877<para>
2878<screen>
2879 where address ADDR can be:
2880 NUMBER Match specified line number
2881 $ Match last line
2882 /REGEXP/ Match specified regexp
2883 (! inverts the meaning of the match)
2884</screen>
2885
2886
2887</para>
2888
2889<para>
2890<screen>
2891 and COMMAND can be:
2892 s/regexp/replacement/[igp]
2893 which attempt to match regexp against the pattern space
2894 and if successful replaces the matched portion with replacement.
2895</screen>
2896
2897
2898</para>
2899
2900<para>
2901<screen>
2902 aTEXT
2903 which appends TEXT after the pattern space
2904</screen>
2905
2906
2907</para>
2908
2909<para>
2910Options:
2911
2912
2913</para>
2914
2915<para>
2916<screen>
2917 -e add the script to the commands to be executed
2918 -n suppress automatic printing of pattern space
2919</screen>
2920
2921
2922</para>
2923
2924<para>
2925This version of sed matches full regular expressions.
2926
2927
2928</para>
2929
2930<para>
2931Example:
2932
2933
2934</para>
2935
2936<para>
2937<screen>
2938 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
2939 bar
2940</screen>
2941
2942
2943</para>
2944
2945<para>
2946-------------------------------
2947
2948
2949</para>
2950
2951</listitem></varlistentry>
2952<varlistentry><term><emphasis>setkeycodes
2953
2954</emphasis></term>
2955<listitem><para></para>
2956
2957<para>
2958Usage: setkeycodes SCANCODE KEYCODE ...
2959
2960
2961</para>
2962
2963<para>
2964Set entries into the kernel's scancode-to-keycode map, allowing unusual
2965keyboards to generate usable keycodes.
2966
2967
2968</para>
2969
2970<para>
2971SCANCODE may be either xx or e0xx (hexadecimal), and KEYCODE is given in
2972decimal
2973
2974
2975</para>
2976
2977<para>
2978Example:
2979
2980
2981</para>
2982
2983<para>
2984<screen>
2985 # setkeycodes e030 127
2986</screen>
2987
2988
2989</para>
2990
2991<para>
2992-------------------------------
2993
2994
2995</para>
2996
2997</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00002998<varlistentry><term><emphasis>sfdisk
2999
3000</emphasis></term>
3001<listitem><para></para>
3002
3003<para>
3004Usage: sfdisk [options] device ...
3005
3006
3007</para>
3008
3009<para>
3010device: something like /dev/hda or /dev/sda
3011
3012
3013</para>
3014
3015<para>
3016useful options:
3017
3018
3019</para>
3020
3021<para>
3022<screen>
3023 -s [or --show-size]: list size of a partition
3024 -c [or --id]: print or change partition Id
3025 -l [or --list]: list partitions of each device
3026 -d [or --dump]: idem, but in a format suitable for later input
3027 -i [or --increment]: number cylinders etc. from 1 instead of from 0
3028 -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB
3029 -T [or --list-types]:list the known partition types
3030 -D [or --DOS]: for DOS-compatibility: waste a little space
3031 -R [or --re-read]: make kernel reread partition table
3032 -N# : change only the partition with number #
3033 -n : do not actually write to disk
3034 -O file : save the sectors that will be overwritten to file
3035 -I file : restore these sectors again
3036 -v [or --version]: print version
3037 -? [or --help]: print this message
3038</screen>
3039
3040
3041</para>
3042
3043<para>
3044dangerous options:
3045
3046
3047</para>
3048
3049<para>
3050<screen>
3051 -g [or --show-geometry]: print the kernel's idea of the geometry
3052 -x [or --show-extended]: also list extended partitions on output
3053</screen>
3054
3055
3056</para>
3057
3058<para>
3059<screen>
3060 or expect descriptors for them on input
3061 -L [or --Linux]: do not complain about things irrelevant for Linux
3062 -q [or --quiet]: suppress warning messages
3063 You can override the detected geometry using:
3064 -C# [or --cylinders #]:set the number of cylinders to use
3065 -H# [or --heads #]: set the number of heads to use
3066 -S# [or --sectors #]: set the number of sectors to use
3067</screen>
3068
3069
3070</para>
3071
3072<para>
3073You can disable all consistency checking with:
3074
3075
3076</para>
3077
3078<para>
3079<screen>
3080 -f [or --force]: do what I say, even if it is stupid
3081</screen>
3082
3083
3084</para>
3085
3086<para>
3087-------------------------------
3088
3089
3090</para>
3091
3092</listitem></varlistentry>
Eric Andersen028fb622000-07-04 20:07:13 +00003093<varlistentry><term><emphasis>sh
3094
3095</emphasis></term>
3096<listitem><para></para>
3097
3098<para>
3099Usage: sh
3100
3101
3102</para>
3103
3104<para>
3105lash -- the BusyBox LAme SHell (command interpreter)
3106
3107
3108</para>
3109
3110<para>
3111This command does not yet have proper documentation.
3112
3113
3114</para>
3115
3116<para>
3117Use lash just as you would use any other shell. It properly handles pipes,
3118redirects, job control, can be used as the shell for scripts (#!/bin/sh),
3119and has a sufficient set of builtins to do what is needed. It does not
3120(yet) support Bourne Shell syntax. If you need things like
3121``if-then-else'', ``while'', and such, use ash or bash. If you just need a
3122very simple and extremely small shell, this will do the job.
3123
3124
3125</para>
3126
3127<para>
3128-------------------------------
3129
3130
3131</para>
3132
3133</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003134<varlistentry><term><emphasis>sleep
3135
3136</emphasis></term>
3137<listitem><para></para>
3138
3139<para>
3140Usage: sleep N
3141
3142
3143</para>
3144
3145<para>
3146Pause for N seconds.
3147
3148
3149</para>
3150
3151<para>
3152Example:
3153
3154
3155</para>
3156
3157<para>
3158<screen>
3159 $ sleep 2
3160 [2 second delay results]
3161</screen>
3162
3163
3164</para>
3165
3166<para>
3167-------------------------------
3168
3169
3170</para>
3171
3172</listitem></varlistentry>
3173<varlistentry><term><emphasis>sort
3174
3175</emphasis></term>
3176<listitem><para></para>
3177
3178<para>
3179Usage: sort [<emphasis>-n</emphasis>] [<emphasis>-r</emphasis>] [FILE]...
3180
3181
3182</para>
3183
3184<para>
3185Sorts lines of text in the specified files
3186
3187
3188</para>
3189
3190<para>
3191Example:
3192
3193
3194</para>
3195
3196<para>
3197<screen>
3198 $ echo -e "e\nf\nb\nd\nc\na" | sort
3199 a
3200 b
3201 c
3202 d
3203 e
3204 f
3205</screen>
3206
3207
3208</para>
3209
3210<para>
3211-------------------------------
3212
3213
3214</para>
3215
3216</listitem></varlistentry>
Eric Andersen028fb622000-07-04 20:07:13 +00003217<varlistentry><term><emphasis>swapoff
3218
3219</emphasis></term>
3220<listitem><para></para>
3221
3222<para>
3223Usage: swapoff [OPTION] [device]
3224
3225
3226</para>
3227
3228<para>
3229Stop swapping virtual memory pages on the given device.
3230
3231
3232</para>
3233
3234<para>
3235Options:
3236
3237
3238</para>
3239
3240<para>
3241<screen>
3242 -a Stop swapping on all swap devices
3243</screen>
3244
3245
3246</para>
3247
3248<para>
3249-------------------------------
3250
3251
3252</para>
3253
3254</listitem></varlistentry>
3255<varlistentry><term><emphasis>swapon
3256
3257</emphasis></term>
3258<listitem><para></para>
3259
3260<para>
3261Usage: swapon [OPTION] [device]
3262
3263
3264</para>
3265
3266<para>
3267Start swapping virtual memory pages on the given device.
3268
3269
3270</para>
3271
3272<para>
3273Options:
3274
3275
3276</para>
3277
3278<para>
3279<screen>
3280 -a Start swapping on all swap devices
3281</screen>
3282
3283
3284</para>
3285
3286<para>
3287-------------------------------
3288
3289
3290</para>
3291
3292</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003293<varlistentry><term><emphasis>sync
3294
3295</emphasis></term>
3296<listitem><para></para>
3297
3298<para>
3299Usage: sync
3300
3301
3302</para>
3303
3304<para>
3305Write all buffered filesystem blocks to disk.
3306
3307
3308</para>
3309
3310<para>
3311-------------------------------
3312
3313
3314</para>
3315
3316</listitem></varlistentry>
3317<varlistentry><term><emphasis>syslogd
3318
3319</emphasis></term>
3320<listitem><para></para>
3321
3322<para>
3323Usage: syslogd [OPTION]...
3324
3325
3326</para>
3327
3328<para>
3329Linux system and kernel (provides klogd) logging utility. Note that this
3330version of syslogd/klogd ignores /etc/syslog.conf.
3331
3332
3333</para>
3334
3335<para>
3336Options:
3337
3338
3339</para>
3340
3341<para>
3342<screen>
3343 -m NUM Interval between MARK lines (default=20min, 0=off)
3344 -n Run as a foreground process
3345 -K Do not start up the klogd process
3346 -O FILE Use an alternate log file (default=/var/log/messages)
3347</screen>
3348
3349
3350</para>
3351
3352<para>
3353-------------------------------
3354
3355
3356</para>
3357
3358</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003359<varlistentry><term><emphasis>tail
3360
3361</emphasis></term>
3362<listitem><para></para>
3363
3364<para>
3365Usage: tail [OPTION] [FILE]...
3366
3367
3368</para>
3369
3370<para>
3371Print last 10 lines of each FILE to standard output. With more than one
3372FILE, precede each with a header giving the file name. With no FILE, or
3373when FILE is -, read standard input.
3374
3375
3376</para>
3377
3378<para>
3379Options:
3380
3381
3382</para>
3383
3384<para>
3385<screen>
3386 -n NUM Print last NUM lines instead of first 10
3387 -f Output data as the file grows. This version
3388 of 'tail -f' supports only one file at a time.
3389</screen>
3390
3391
3392</para>
3393
3394<para>
3395Example:
3396
3397
3398</para>
3399
3400<para>
3401<screen>
3402 $ tail -n 1 /etc/resolv.conf
3403 nameserver 10.0.0.1
3404</screen>
3405
3406
3407</para>
3408
3409<para>
3410-------------------------------
3411
3412
3413</para>
3414
3415</listitem></varlistentry>
3416<varlistentry><term><emphasis>tar
3417
3418</emphasis></term>
3419<listitem><para></para>
3420
3421<para>
3422Usage: tar -[cxtvO] [<emphasis>--exclude</emphasis> File] [<emphasis>-f</emphasis> tarFile] [FILE] ...
3423
3424
3425</para>
3426
3427<para>
3428Create, extract, or list files from a tar file. Note that this version of
3429tar treats hard links as separate files.
3430
3431
3432</para>
3433
3434<para>
3435Main operation mode:
3436
3437
3438</para>
3439
3440<para>
3441<screen>
3442 c create
3443 x extract
3444 t list
3445</screen>
3446
3447
3448</para>
3449
3450<para>
3451File selection:
3452
3453
3454</para>
3455
3456<para>
3457<screen>
3458 f name of tarfile or "-" for stdin
3459 O extract to stdout
3460 --exclude file to exclude
3461</screen>
3462
3463
3464</para>
3465
3466<para>
3467Informative output:
3468
3469
3470</para>
3471
3472<para>
3473<screen>
3474 v verbosely list files processed
3475</screen>
3476
3477
3478</para>
3479
3480<para>
3481Example:
3482
3483
3484</para>
3485
3486<para>
3487<screen>
3488 $ zcat /tmp/tarball.tar.gz | tar -xf -
3489 $ tar -cf /tmp/tarball.tar /usr/local
3490</screen>
3491
3492
3493</para>
3494
3495<para>
3496-------------------------------
3497
3498
3499</para>
3500
3501</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003502<varlistentry><term><emphasis>tee
3503
3504</emphasis></term>
3505<listitem><para></para>
3506
3507<para>
3508Usage: tee [OPTION]... [FILE]...
3509
3510
3511</para>
3512
3513<para>
3514Copy standard input to each FILE, and also to standard output.
3515
3516
3517</para>
3518
3519<para>
3520Options:
3521
3522
3523</para>
3524
3525<para>
3526<screen>
3527 -a append to the given FILEs, do not overwrite
3528</screen>
3529
3530
3531</para>
3532
3533<para>
3534Example:
3535
3536
3537</para>
3538
3539<para>
3540<screen>
3541 $ echo "Hello" | tee /tmp/foo
3542 $ cat /tmp/foo
3543 Hello
3544</screen>
3545
3546
3547</para>
3548
3549<para>
3550-------------------------------
3551
3552
3553</para>
3554
3555</listitem></varlistentry>
Eric Andersen028fb622000-07-04 20:07:13 +00003556<varlistentry><term><emphasis>telnet
3557
3558</emphasis></term>
3559<listitem><para></para>
3560
3561<para>
3562Usage: telnet host [port]
3563
3564
3565</para>
3566
3567<para>
3568Telnet is used to establish interactive communication with another computer
3569over a network using the TELNET protocol.
3570
3571
3572</para>
3573
3574<para>
3575-------------------------------
3576
3577
3578</para>
3579
3580</listitem></varlistentry>
3581<varlistentry><term><emphasis>test, [
3582
3583</emphasis></term>
3584<listitem><para></para>
3585
3586<para>
3587Usage: test EXPRESSION or [ EXPRESSION ]
3588
3589
3590</para>
3591
3592<para>
3593Checks file types and compares values returning an exit code determined by
3594the value of EXPRESSION.
3595
3596
3597</para>
3598
3599<para>
3600Example:
3601
3602
3603</para>
3604
3605<para>
3606<screen>
3607 $ test 1 -eq 2
3608 $ echo $?
3609 1
3610 $ test 1 -eq 1
3611 $ echo $?
3612 0
3613 $ [ -d /etc ]
3614 $ echo $?
3615 0
3616 $ [ -d /junk ]
3617 $ echo $?
3618 1
3619</screen>
3620
3621
3622</para>
3623
3624<para>
3625-------------------------------
3626
3627
3628</para>
3629
3630</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003631<varlistentry><term><emphasis>touch
3632
3633</emphasis></term>
3634<listitem><para></para>
3635
3636<para>
3637Usage: touch [<emphasis>-c</emphasis>] file [file ...]
3638
3639
3640</para>
3641
3642<para>
3643Update the last-modified date on (or create) the selected file[s].
3644
3645
3646</para>
3647
3648<para>
3649Example:
3650
3651
3652</para>
3653
3654<para>
3655<screen>
3656 $ ls -l /tmp/foo
3657 /bin/ls: /tmp/foo: No such file or directory
3658 $ touch /tmp/foo
3659 $ ls -l /tmp/foo
3660 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
3661</screen>
3662
3663
3664</para>
3665
3666<para>
3667-------------------------------
3668
3669
3670</para>
3671
3672</listitem></varlistentry>
3673<varlistentry><term><emphasis>tr
3674
3675</emphasis></term>
3676<listitem><para></para>
3677
3678<para>
3679Usage: tr [-cds] STRING1 [STRING2]
3680
3681
3682</para>
3683
3684<para>
3685Translate, squeeze, and/or delete characters from standard input, writing
3686to standard output.
3687
3688
3689</para>
3690
3691<para>
3692Options:
3693
3694
3695</para>
3696
3697<para>
3698<screen>
3699 -c take complement of STRING1
3700 -d delete input characters coded STRING1
3701 -s squeeze multiple output characters of STRING2 into one character
3702</screen>
3703
3704
3705</para>
3706
3707<para>
3708Example:
3709
3710
3711</para>
3712
3713<para>
3714<screen>
3715 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
3716 hello world
3717</screen>
3718
3719
3720</para>
3721
3722<para>
3723-------------------------------
3724
3725
3726</para>
3727
3728</listitem></varlistentry>
3729<varlistentry><term><emphasis>true
3730
3731</emphasis></term>
3732<listitem><para></para>
3733
3734<para>
3735Returns an exit code of TRUE (0)
3736
3737
3738</para>
3739
3740<para>
3741Example:
3742
3743
3744</para>
3745
3746<para>
3747<screen>
3748 $ true
3749 $ echo $?
3750 0
3751</screen>
3752
3753
3754</para>
3755
3756<para>
3757-------------------------------
3758
3759
3760</para>
3761
3762</listitem></varlistentry>
3763<varlistentry><term><emphasis>tty
3764
3765</emphasis></term>
3766<listitem><para></para>
3767
3768<para>
3769Usage: tty
3770
3771
3772</para>
3773
3774<para>
3775Print the file name of the terminal connected to standard input.
3776
3777
3778</para>
3779
3780<para>
3781Options:
3782
3783
3784</para>
3785
3786<para>
3787<screen>
3788 -s print nothing, only return an exit status
3789</screen>
3790
3791
3792</para>
3793
3794<para>
3795Example:
3796
3797
3798</para>
3799
3800<para>
3801<screen>
3802 $ tty
3803 /dev/tty2
3804</screen>
3805
3806
3807</para>
3808
3809<para>
3810-------------------------------
3811
3812
3813</para>
3814
3815</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00003816<varlistentry><term><emphasis>umount
3817
3818</emphasis></term>
3819<listitem><para></para>
3820
3821<para>
3822Usage: umount [flags] filesystem|directory
3823
3824
3825</para>
3826
3827<para>
3828Flags:
3829
3830
3831</para>
3832
3833<para>
3834<screen>
3835 -a: Unmount all file systems
3836 -r: Try to remount devices as read-only if mount is busy
3837 -f: Force filesystem umount (i.e. unreachable NFS server)
3838 -l: Do not free loop device (if a loop device has been used)
3839</screen>
3840
3841
3842</para>
3843
3844<para>
3845Example:
3846
3847
3848</para>
3849
3850<para>
3851<screen>
3852 $ umount /dev/hdc1
3853</screen>
3854
3855
3856</para>
3857
3858<para>
3859-------------------------------
3860
3861
3862</para>
3863
3864</listitem></varlistentry>
3865<varlistentry><term><emphasis>uname
3866
3867</emphasis></term>
3868<listitem><para></para>
3869
3870<para>
3871Usage: uname [OPTION]...
3872
3873
3874</para>
3875
3876<para>
3877Print certain system information. With no OPTION, same as <emphasis>-s</emphasis>.
3878
3879
3880</para>
3881
3882<para>
3883Options:
3884
3885
3886</para>
3887
3888<para>
3889<screen>
3890 -a print all information
3891 -m the machine (hardware) type
3892 -n print the machine's network node hostname
3893 -r print the operating system release
3894 -s print the operating system name
3895 -p print the host processor type
3896 -v print the operating system version
3897</screen>
3898
3899
3900</para>
3901
3902<para>
3903Example:
3904
3905
3906</para>
3907
3908<para>
3909<screen>
3910 $ uname -a
3911 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
3912</screen>
3913
3914
3915</para>
3916
3917<para>
3918-------------------------------
3919
3920
3921</para>
3922
3923</listitem></varlistentry>
3924<varlistentry><term><emphasis>uniq
3925
3926</emphasis></term>
3927<listitem><para></para>
3928
3929<para>
3930Usage: uniq [OPTION]... [INPUT [OUTPUT]]
3931
3932
3933</para>
3934
3935<para>
3936Discard all but one of successive identical lines from INPUT (or standard
3937input), writing to OUTPUT (or standard output).
3938
3939
3940</para>
3941
3942<para>
3943Example:
3944
3945
3946</para>
3947
3948<para>
3949<screen>
3950 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
3951 a
3952 b
3953 c
3954</screen>
3955
3956
3957</para>
3958
3959<para>
3960-------------------------------
3961
3962
3963</para>
3964
3965</listitem></varlistentry>
3966<varlistentry><term><emphasis>update
3967
3968</emphasis></term>
3969<listitem><para></para>
3970
3971<para>
3972Usage: update [options]
3973
3974
3975</para>
3976
3977<para>
3978Periodically flushes filesystem buffers.
3979
3980
3981</para>
3982
3983<para>
3984Options:
3985
3986
3987</para>
3988
3989<para>
3990<screen>
3991 -S force use of sync(2) instead of flushing
3992 -s SECS call sync this often (default 30)
3993 -f SECS flush some buffers this often (default 5)
3994</screen>
3995
3996
3997</para>
3998
3999<para>
4000-------------------------------
4001
4002
4003</para>
4004
4005</listitem></varlistentry>
4006<varlistentry><term><emphasis>uptime
4007
4008</emphasis></term>
4009<listitem><para></para>
4010
4011<para>
4012Usage: uptime
4013
4014
4015</para>
4016
4017<para>
4018Tells how long the system has been running since boot.
4019
4020
4021</para>
4022
4023<para>
4024Example:
4025
4026
4027</para>
4028
4029<para>
4030<screen>
4031 $ uptime
4032 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
4033</screen>
4034
4035
4036</para>
4037
4038<para>
4039-------------------------------
4040
4041
4042</para>
4043
4044</listitem></varlistentry>
4045<varlistentry><term><emphasis>usleep
4046
4047</emphasis></term>
4048<listitem><para></para>
4049
4050<para>
4051Usage: usleep N
4052
4053
4054</para>
4055
4056<para>
4057Pauses for N microseconds.
4058
4059
4060</para>
4061
4062<para>
4063Example:
4064
4065
4066</para>
4067
4068<para>
4069<screen>
4070 $ usleep 1000000
4071 [pauses for 1 second]
4072</screen>
4073
4074
4075</para>
4076
4077<para>
4078-------------------------------
4079
4080
4081</para>
4082
4083</listitem></varlistentry>
Eric Andersen028fb622000-07-04 20:07:13 +00004084<varlistentry><term><emphasis>uudecode
4085
4086</emphasis></term>
4087<listitem><para></para>
4088
4089<para>
4090Usage: uudecode [OPTION] [FILE]
4091
4092
4093</para>
4094
4095<para>
4096Uudecode a uuencoded file
4097
4098
4099</para>
4100
4101<para>
4102Options:
4103
4104
4105</para>
4106
4107<para>
4108<screen>
4109 -o FILE direct output to FILE
4110</screen>
4111
4112
4113</para>
4114
4115<para>
4116Example:
4117
4118
4119</para>
4120
4121<para>
4122<screen>
4123 $ uudecode -o busybox busybox.uu
4124 $ ls -l busybox
4125 -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
4126</screen>
4127
4128
4129</para>
4130
4131<para>
4132-------------------------------
4133
4134
4135</para>
4136
4137</listitem></varlistentry>
4138<varlistentry><term><emphasis>uuencode
4139
4140</emphasis></term>
4141<listitem><para></para>
4142
4143<para>
4144Usage: uuencode [OPTION] [INFILE] REMOTEFILE
4145
4146
4147</para>
4148
4149<para>
4150Uuencode a file.
4151
4152
4153</para>
4154
4155<para>
4156Options:
4157
4158
4159</para>
4160
4161<para>
4162<screen>
4163 -m use base64 encoding as of RFC1521
4164</screen>
4165
4166
4167</para>
4168
4169<para>
4170Example:
4171
4172
4173</para>
4174
4175<para>
4176<screen>
4177 $ uuencode busybox busybox
4178 begin 755 busybox
4179 M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&amp;
4180 .....
4181 $ uudecode busybox busybox &gt; busybox.uu
4182 $
4183</screen>
4184
4185
4186</para>
4187
4188<para>
4189-------------------------------
4190
4191
4192</para>
4193
4194</listitem></varlistentry>
Mark Whitley83a949c2000-06-26 13:31:53 +00004195<varlistentry><term><emphasis>wc
4196
4197</emphasis></term>
4198<listitem><para></para>
4199
4200<para>
4201Usage: wc [OPTION]... [FILE]...
4202
4203
4204</para>
4205
4206<para>
4207Print line, word, and byte counts for each FILE, and a total line if more
4208than one FILE is specified. With no FILE, read standard input.
4209
4210
4211</para>
4212
4213<para>
4214Options:
4215
4216
4217</para>
4218
4219<para>
4220<screen>
4221 -c print the byte counts
4222 -l print the newline counts
4223 -L print the length of the longest line
4224 -w print the word counts
4225</screen>
4226
4227
4228</para>
4229
4230<para>
4231Example:
4232
4233
4234</para>
4235
4236<para>
4237<screen>
4238 $ wc /etc/passwd
4239 31 46 1365 /etc/passwd
4240</screen>
4241
4242
4243</para>
4244
4245<para>
4246-------------------------------
4247
4248
4249</para>
4250
4251</listitem></varlistentry>
4252<varlistentry><term><emphasis>which
4253
4254</emphasis></term>
4255<listitem><para></para>
4256
4257<para>
4258Usage: which [COMMAND ...]
4259
4260
4261</para>
4262
4263<para>
4264Locates a COMMAND.
4265
4266
4267</para>
4268
4269<para>
4270Example:
4271
4272
4273</para>
4274
4275<para>
4276<screen>
4277 $ which login
4278 /bin/login
4279</screen>
4280
4281
4282</para>
4283
4284<para>
4285-------------------------------
4286
4287
4288</para>
4289
4290</listitem></varlistentry>
4291<varlistentry><term><emphasis>whoami
4292
4293</emphasis></term>
4294<listitem><para></para>
4295
4296<para>
4297Usage: whoami
4298
4299
4300</para>
4301
4302<para>
4303Prints the user name associated with the current effective user id.
4304
4305
4306</para>
4307
4308<para>
4309Example:
4310
4311
4312</para>
4313
4314<para>
4315<screen>
4316 $ whoami
4317 andersen
4318</screen>
4319
4320
4321</para>
4322
4323<para>
4324-------------------------------
4325
4326
4327</para>
4328
4329</listitem></varlistentry>
4330<varlistentry><term><emphasis>yes
4331
4332</emphasis></term>
4333<listitem><para></para>
4334
4335<para>
4336Usage: yes [OPTION]... [STRING]...
4337
4338
4339</para>
4340
4341<para>
4342Repeatedly outputs a line with all specified <literal>STRING(s),</literal>
4343or `y'.
4344
4345
4346</para>
4347
4348<para>
4349-------------------------------
4350
4351
4352</para>
4353
4354</listitem></varlistentry>
4355<varlistentry><term><emphasis>zcat
4356
4357</emphasis></term>
4358<listitem><para></para>
4359
4360<para>
4361This is essentially an alias for invoking ``gunzip <emphasis>-c</emphasis>'', where it decompresses the file in question and send the output to
4362stdout.
4363
4364
4365</para>
4366
4367<para>
4368-------------------------------
4369
4370
4371</para>
4372
4373</listitem></varlistentry></variablelist>
4374
4375</sect1>
4376
4377<sect1 id="pod2docbook-ch-1-sect-6"><title>LIBC NSS
4378
4379</title>
4380<!-- Bogus hack to ensure that each sect has a paragraph in it -->
4381<para>
4382</para>
4383
4384
4385<para>
4386GNU Libc uses the Name Service Switch (NSS) to configure the behavior of
4387the C library for the local environment, and to configure how it reads
4388system data, such as passwords and group information. BusyBox has made it
4389Policy that it will never use NSS, and will never use and libc calls that
4390make use of NSS. This allows you to run an embedded system without the need
4391for installing an /etc/nsswitch.conf file and without and /lib/libnss_*
4392libraries installed.
4393
4394
4395</para>
4396
4397<para>
4398If you are using a system that is using a remote LDAP server for
4399authentication via GNU libc NSS, and you want to use BusyBox, then you will
4400need to adjust the BusyBox source. Chances are though, that if you have
4401enough space to install of that stuff on your system, then you probably
4402want the full GNU utilities.
4403
4404
4405</para>
4406
4407</sect1>
4408
4409<sect1 id="pod2docbook-ch-1-sect-7"><title>SEE ALSO
4410
4411</title>
4412<!-- Bogus hack to ensure that each sect has a paragraph in it -->
4413<para>
4414</para>
4415
4416
4417<para>
4418<literal>textutils(1),</literal> <literal>shellutils(1),</literal> etc...
4419
4420
4421</para>
4422
4423</sect1>
4424
4425<sect1 id="pod2docbook-ch-1-sect-8"><title>MAINTAINER
4426
4427</title>
4428<!-- Bogus hack to ensure that each sect has a paragraph in it -->
4429<para>
4430</para>
4431
4432
4433<para>
4434Erik Andersen &lt;andersee@debian.org&gt; &lt;andersen@lineo.com&gt;
4435
4436
4437</para>
4438
4439</sect1>
4440
4441<sect1 id="pod2docbook-ch-1-sect-9"><title>AUTHORS
4442
4443</title>
4444<!-- Bogus hack to ensure that each sect has a paragraph in it -->
4445<para>
4446</para>
4447
4448
4449<para>
4450The following people have contributed code to BusyBox whether they know it
4451or not.
4452
4453
4454</para>
4455
4456<para>
4457Erik Andersen &lt;andersee@debian.org&gt;
4458
4459
4460</para>
4461
4462<para>
4463John Beppu &lt;beppu@lineo.com&gt;
4464
4465
4466</para>
4467
4468<para>
4469Brian Candler &lt;B.Candler@pobox.com&gt;
4470
4471
4472</para>
4473
4474<para>
4475Randolph Chung &lt;tausq@debian.org&gt;
4476
4477
4478</para>
4479
4480<para>
4481Dave Cinege &lt;dcinege@psychosis.com&gt;
4482
4483
4484</para>
4485
4486<para>
4487Karl M. Hegbloom &lt;karlheg@debian.org&gt;
4488
4489
4490</para>
4491
4492<para>
4493John Lombardo &lt;john@deltanet.com&gt;
4494
4495
4496</para>
4497
4498<para>
4499Glenn McGrath &lt;bug1@netconnect.com.au&gt;
4500
4501
4502</para>
4503
4504<para>
4505Bruce Perens &lt;bruce@perens.com&gt;
4506
4507
4508</para>
4509
4510<para>
4511Pavel Roskin &lt;proski@gnu.org&gt;
4512
4513
4514</para>
4515
4516<para>
4517Linus Torvalds &lt;torvalds@transmeta.com&gt;
4518
4519
4520</para>
4521
4522<para>
4523Charles P. Wright &lt;cpwright@villagenet.com&gt;
4524
4525
4526</para>
4527
4528<para>
4529Enrique Zanardi &lt;ezanardi@ull.es&gt;
4530
4531
4532</para>
4533
4534</sect1>
4535
4536</chapter>
4537
4538
4539</book> <!-- End of the book -->