blob: dacc13249f2305bd084839c293ce30e58b8646e8 [file] [log] [blame]
Eric Andersencff3fe32000-09-20 19:22:26 +00001<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ ]>
Eric Andersen53310252000-07-04 19:42:23 +00002<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>
Pavel Roskind2d3aa32000-09-15 17:16:40 +000062 <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
Pavel Roskind2d3aa32000-09-15 17:16:40 +000078 <sect1 id="Invoking-BusyBox">
79 <title>Invoking BusyBox</title>
80
Eric Andersen53310252000-07-04 19:42:23 +000081 <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>
Mark Whitley83a949c2000-06-26 13:31:53 +000086
Eric Andersen53310252000-07-04 19:42:23 +000087 <para>
88 For example, entering
89 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000090
Eric Andersen53310252000-07-04 19:42:23 +000091 <para>
92 <screen>
93 ln -s ./BusyBox ls
94 ./ls
95 </screen>
96 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +000097
Eric Andersen53310252000-07-04 19:42:23 +000098 <para>
99 will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
100 into BusyBox).
101 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000102
Eric Andersen53310252000-07-04 19:42:23 +0000103 <para>
104 You can also invoke BusyBox by issuing the command as an argument on the
105 command line. For example, entering
106 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000107
Eric Andersen53310252000-07-04 19:42:23 +0000108 <para>
109 <screen>
110 ./BusyBox ls
111 </screen>
112 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000113
Eric Andersen53310252000-07-04 19:42:23 +0000114 <para>
115 will also cause BusyBox to behave as 'ls'.
116 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000117
Eric Andersen53310252000-07-04 19:42:23 +0000118 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000119
Pavel Roskind2d3aa32000-09-15 17:16:40 +0000120 <sect1 id="Common-options">
121 <title>Common options</title>
122
Eric Andersen53310252000-07-04 19:42:23 +0000123 <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>
Mark Whitley83a949c2000-06-26 13:31:53 +0000129
Eric Andersen53310252000-07-04 19:42:23 +0000130 <chapter id="Commands">
131 <title>BusyBox Commands</title>
Pavel Roskind2d3aa32000-09-15 17:16:40 +0000132 <sect1 id="Available-BusyBox-Commands">
Eric Andersen53310252000-07-04 19:42:23 +0000133 <title>Available BusyBox Commands</title>
134 <para>
135 Currently defined functions include:
136 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000137
Eric Andersen53310252000-07-04 19:42:23 +0000138 <para>
Eric Andersenfb74a452001-12-18 14:06:03 +0000139 addgroup, adduser, adjtimex, ar, basename, busybox, cat,
140 chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut,
141 date, dc, dd, deallocvt, deluser, df, dirname, dmesg,
142 dos2unix, dpkg, dpkg-deb, du, dumpkmap, dutmp, echo, expr,
143 false, fbset, fdflush, find, free, freeramdisk, fsck.minix,
144 getopt, getty, grep, gunzip, gzip, halt, head, hostid,
145 hostname, id, ifconfig, init, insmod, kill, killall, klogd,
146 length, ln, loadacm, loadfont, loadkmap, logger, logname, ls,
147 lsmod, makedevs, md5sum, mkdir, mkfifo, mkfs.minix, mknod,
148 mkswap, mktemp, more, mount, mt, mv, nc, nslookup, ping,
149 pivot_root, poweroff, printf, ps, pwd, rdate, readlink,
150 reboot, renice, reset, rm, rmdir, rmmod, route, rpm2cpio,
151 sed, setkeycodes, sh, sleep, sort, stty, swapoff, swapon,
152 sync, syslogd, tail, tar, tee, telnet, test, tftp, touch, tr,
153 true, tty, umount, uname, uniq, unix2dos, update, uptime,
154 usleep, uudecode, uuencode, watchdog, wc, wget, which,
155 whoami, xargs, yes, zcat, [
Eric Andersen53310252000-07-04 19:42:23 +0000156 </para>
157 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000158
Eric Andersen53310252000-07-04 19:42:23 +0000159 <sect1 id="ar">
160 <title>ar</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000161
Eric Andersen53310252000-07-04 19:42:23 +0000162 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000163 Usage: ar [OPTION] archive [FILENAME]...
Eric Andersen53310252000-07-04 19:42:23 +0000164 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000165
Eric Andersen53310252000-07-04 19:42:23 +0000166 <para>
167 Extract or list files from an ar archive.
168 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000169
Eric Andersen53310252000-07-04 19:42:23 +0000170 <para>
171 Options:
172 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000173
Eric Andersen53310252000-07-04 19:42:23 +0000174 <para>
175 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000176 o Preserve original dates
177 p Extract to stdout
178 t List
179 x Extract
180 v Verbosely list files processed
Eric Andersen53310252000-07-04 19:42:23 +0000181 </screen>
182 </para>
183 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000184
Eric Andersen53310252000-07-04 19:42:23 +0000185 <sect1 id="basename">
186 <title>basename</title>
187 <para>
188 Usage: basename FILE [SUFFIX]
189 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000190
Eric Andersen53310252000-07-04 19:42:23 +0000191 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000192 Strip directory path and suffixes from FILE. If specified, also removes
Eric Andersen53310252000-07-04 19:42:23 +0000193 any trailing SUFFIX.
194 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000195
Eric Andersen53310252000-07-04 19:42:23 +0000196 <para>
197 Example:
198 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000199
Eric Andersen53310252000-07-04 19:42:23 +0000200 <para>
201 <screen>
202 $ basename /usr/local/bin/foo
203 foo
204 $ basename /usr/local/bin/
205 bin
206 $ basename /foo/bar.txt .txt
207 bar
208 </screen>
209 </para>
210 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000211
Eric Andersen53310252000-07-04 19:42:23 +0000212 <sect1 id="cat">
213 <title>cat</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000214
Eric Andersen53310252000-07-04 19:42:23 +0000215 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000216 Usage: cat [FILE]...
Eric Andersen53310252000-07-04 19:42:23 +0000217 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000218
Eric Andersen53310252000-07-04 19:42:23 +0000219 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000220 Concatenate <literal>FILE(s)</literal> and prints them to the standard
Eric Andersen53310252000-07-04 19:42:23 +0000221 output.
222 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000223
Eric Andersen53310252000-07-04 19:42:23 +0000224 <para>
225 Example:
226 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000227
Eric Andersen53310252000-07-04 19:42:23 +0000228 <para>
229 <screen>
230 $ cat /proc/uptime
231 110716.72 17.67
232 </screen>
233 </para>
Eric Andersen53310252000-07-04 19:42:23 +0000234 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000235
Eric Andersen028fb622000-07-04 20:07:13 +0000236 <sect1 id="chgrp">
237 <title>chgrp</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000238
Eric Andersen028fb622000-07-04 20:07:13 +0000239 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000240 Usage: chgrp [OPTION]... GROUP FILE...
Eric Andersen028fb622000-07-04 20:07:13 +0000241 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000242
Eric Andersen028fb622000-07-04 20:07:13 +0000243 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000244 Change the group membership of each FILE to GROUP.
Eric Andersen028fb622000-07-04 20:07:13 +0000245 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000246
Eric Andersen028fb622000-07-04 20:07:13 +0000247 <para>
248 Options:
249 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000250
Eric Andersen028fb622000-07-04 20:07:13 +0000251 <para>
252 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000253 -R Change files and directories recursively
254 </screen>
255 </para>
256
257 <para>
258 Example:
259 </para>
260
261 <para>
262 <screen>
263 $ ls -l /tmp/foo
264 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
265 $ chgrp root /tmp/foo
266 $ ls -l /tmp/foo
267 -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
268 </screen>
269 </para>
270 </sect1>
271
272 <sect1 id="chmod">
273 <title>chmod</title>
274
275 <para>
276 Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE...
277 </para>
278
279 <para>
280 Change file access permissions for the specified
281 <literal>FILE(s)</literal> (or directories). Each MODE is defined by
282 combining the letters for WHO has access to the file, an OPERATOR for
283 selecting how the permissions should be changed, and a PERMISSION for
284 <literal>FILE(s)</literal> (or directories).
285 </para>
286
287 <para>
288 WHO may be chosen from
289 </para>
290
291 <para>
292 <screen>
293 u User who owns the file
294 g Users in the file's Group
295 o Other users not in the file's group
296 a All users
297 </screen>
298 </para>
299
300 <para>
301 OPERATOR may be chosen from
302 </para>
303
304 <para>
305 <screen>
306 + Add a permission
307 - Remove a permission
308 = Assign a permission
309 </screen>
310 </para>
311
312 <para>
313 PERMISSION may be chosen from
314 </para>
315
316 <para>
317 <screen>
318 r Read
319 w Write
320 x Execute (or access for directories)
321 s Set user (or group) ID bit
322 t Sticky bit (for directories prevents removing files by non-owners)
323 </screen>
324 </para>
325
326 <para>
327 Alternately, permissions can be set numerically where the first three
328 numbers are calculated by adding the octal values, such as
329 </para>
330
331 <para>
332 <screen>
333 4 Read
334 2 Write
335 1 Execute
336 </screen>
337 </para>
338
339 <para>
340 An optional fourth digit can also be used to specify
341 </para>
342
343 <para>
344 <screen>
345 4 Set user ID
346 2 Set group ID
347 1 Sticky bit
348 </screen>
349 </para>
350
351 <para>
352 Options:
353 </para>
354
355 <para>
356 <screen>
357 -R Change files and directories recursively.
358 </screen>
359 </para>
360
361 <para>
362 Example:
363 </para>
364
365 <para>
366 <screen>
367 $ ls -l /tmp/foo
368 -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo
369 $ chmod u+x /tmp/foo
370 $ ls -l /tmp/foo
371 -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo*
372 $ chmod 444 /tmp/foo
373 $ ls -l /tmp/foo
374 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
375 </screen>
376 </para>
377 </sect1>
378
379 <sect1 id="chown">
380 <title>chown</title>
381 <para>
382 Usage: chown [OPTION]... OWNER[&lt;.|:&gt;[GROUP] FILE...
383 </para>
384
385 <para>
386 Change the owner and/or group of each FILE to OWNER and/or GROUP.
387 </para>
388
389 <para>
390 Options:
391 </para>
392
393 <para>
394 <screen>
395 -R Change files and directories recursively
Eric Andersen028fb622000-07-04 20:07:13 +0000396 </screen>
397 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000398
Eric Andersen028fb622000-07-04 20:07:13 +0000399 <para>
400 Example:
401 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000402
Eric Andersen028fb622000-07-04 20:07:13 +0000403 <para>
404 <screen>
405 $ ls -l /tmp/foo
406 -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo
407 $ chown root /tmp/foo
408 $ ls -l /tmp/foo
409 -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo
410 $ chown root.root /tmp/foo
411 ls -l /tmp/foo
412 -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
413 </screen>
414 </para>
415 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000416
Eric Andersen028fb622000-07-04 20:07:13 +0000417 <sect1 id="chroot">
418 <title>chroot</title>
419 <para>
420 Usage: chroot NEWROOT [COMMAND...]
421 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000422
Eric Andersen028fb622000-07-04 20:07:13 +0000423 <para>
424 Run COMMAND with root directory set to NEWROOT.
425 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000426
Eric Andersen028fb622000-07-04 20:07:13 +0000427 <para>
428 Example:
429 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000430
Eric Andersen028fb622000-07-04 20:07:13 +0000431 <para>
432 <screen>
433 $ ls -l /bin/ls
434 lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -&gt; /BusyBox
435 $ mount /dev/hdc1 /mnt -t minix
436 $ chroot /mnt
437 $ ls -l /bin/ls
438 -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
439 </screen>
440 </para>
441 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000442
Eric Andersen028fb622000-07-04 20:07:13 +0000443 <sect1 id="chvt">
444 <title>chvt</title>
445 <para>
446 Usage: chvt N
447 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000448
Eric Andersen028fb622000-07-04 20:07:13 +0000449 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000450 Change the foreground virtual terminal to /dev/ttyN
Eric Andersen028fb622000-07-04 20:07:13 +0000451 </para>
452 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000453
Eric Andersen028fb622000-07-04 20:07:13 +0000454 <sect1 id="clear">
455 <title>clear</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000456
Eric Andersen028fb622000-07-04 20:07:13 +0000457 <para>
458 Usage: clear
459 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000460
Eric Andersen028fb622000-07-04 20:07:13 +0000461 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000462 Clear the screen.
Eric Andersen028fb622000-07-04 20:07:13 +0000463 </para>
464 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000465
Eric Andersen028fb622000-07-04 20:07:13 +0000466 <sect1 id="cp">
467 <title>cp</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000468
Eric Andersen028fb622000-07-04 20:07:13 +0000469 <para>
470 Usage: cp [OPTION]... SOURCE DEST
471 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000472
Eric Andersen028fb622000-07-04 20:07:13 +0000473 <para>
474 <screen>
475 or: cp [OPTION]... SOURCE... DIRECTORY
476 </screen>
477 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000478
Eric Andersen028fb622000-07-04 20:07:13 +0000479 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000480 Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to
Eric Andersen028fb622000-07-04 20:07:13 +0000481 DIRECTORY.
482 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000483
Eric Andersen028fb622000-07-04 20:07:13 +0000484 <para>
485 Options:
486 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000487
Eric Andersen028fb622000-07-04 20:07:13 +0000488 <para>
489 <screen>
490 -a Same as -dpR
Eric Andersen6f5e2812000-07-06 16:58:45 +0000491 -d Preserve links
492 -p Preserve file attributes if possible
493 -R Copy directories recursively
Eric Andersen028fb622000-07-04 20:07:13 +0000494 </screen>
495 </para>
496 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000497
Eric Andersen028fb622000-07-04 20:07:13 +0000498 <sect1 id="cut">
499 <title>cut</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000500
Eric Andersen028fb622000-07-04 20:07:13 +0000501 <para>
502 Usage: cut [OPTION]... [FILE]...
503 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000504
Eric Andersen028fb622000-07-04 20:07:13 +0000505 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000506 Print selected fields from each input FILE to standard output.
Eric Andersen028fb622000-07-04 20:07:13 +0000507 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000508
Eric Andersen028fb622000-07-04 20:07:13 +0000509 <para>
510 Options:
511 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000512
Eric Andersen028fb622000-07-04 20:07:13 +0000513 <para>
514 <screen>
515 -b LIST Output only bytes from LIST
516 -c LIST Output only characters from LIST
517 -d CHAR Use CHAR instead of tab as the field delimiter
Pavel Roskin0010ee42000-07-21 15:10:57 +0000518 -s Output only the lines containing delimiter
Eric Andersen028fb622000-07-04 20:07:13 +0000519 -f N Print only these fields
520 -n Ignored
521 </screen>
522 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000523
Eric Andersen028fb622000-07-04 20:07:13 +0000524 <para>
525 Example:
526 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000527
Eric Andersen028fb622000-07-04 20:07:13 +0000528 <para>
529 <screen>
530 $ echo "Hello world" | cut -f 1 -d ' '
531 Hello
532 $ echo "Hello world" | cut -f 2 -d ' '
533 world
534 </screen>
535 </para>
536 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000537
Eric Andersen028fb622000-07-04 20:07:13 +0000538 <sect1 id="date">
539 <title>date</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000540
Eric Andersen028fb622000-07-04 20:07:13 +0000541 <para>
542 Usage: date [OPTION]... [+FORMAT]
543 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000544
Eric Andersen028fb622000-07-04 20:07:13 +0000545 <para>
546 <screen>
547 or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
548 </screen>
549 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000550
Eric Andersen028fb622000-07-04 20:07:13 +0000551 <para>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000552 Display the current time in the given FORMAT, or set the system date.
Eric Andersen028fb622000-07-04 20:07:13 +0000553 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000554
Eric Andersen028fb622000-07-04 20:07:13 +0000555 <para>
556 Options:
557 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000558
Eric Andersen028fb622000-07-04 20:07:13 +0000559 <para>
560 <screen>
Eric Andersen6f5e2812000-07-06 16:58:45 +0000561 -R Output RFC-822 compliant date string
562 -s Set time described by STRING
563 -u Print or set Coordinated Universal Time
Eric Andersen028fb622000-07-04 20:07:13 +0000564 </screen>
565 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000566
Eric Andersen028fb622000-07-04 20:07:13 +0000567 <para>
568 Example:
569 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +0000570
Eric Andersen028fb622000-07-04 20:07:13 +0000571 <para>
572 <screen>
573 $ date
574 Wed Apr 12 18:52:41 MDT 2000
575 </screen>
576 </para>
577 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +0000578
Eric Andersen6f5e2812000-07-06 16:58:45 +0000579 <sect1 id="dc">
580 <title>dc</title>
Mark Whitley83a949c2000-06-26 13:31:53 +0000581
Eric Andersen6f5e2812000-07-06 16:58:45 +0000582 <para>
583 Usage: dc [EXPRESSION]
584 </para>
585
586 <para>
587 This is a Tiny RPN calculator that understands the
588 following operations: +, -, /, *, and, or, not, eor. If
589 no arguments are given, dc will process input from
590 stdin.
591 </para>
592
593 <para>
594 The behaviour of BusyBox/dc deviates (just a little ;-)
595 from GNU/dc, but this will be remedied in the future.
596 </para>
597
598 <para>
599 Example:
600 </para>
601
602 <para>
603 <screen>
604 $ dc 2 2 +
605 4
606 $ dc 8 8 \* 2 2 + /
607 16
608 $ dc 0 1 and
609 0
610 $ dc 0 1 or
611 1
612 $ echo 72 9 div 8 mul | dc
613 64
614 </screen>
615 </para>
616 </sect1>
617
618 <sect1 id="dd">
619 <title>dd</title>
620
621 <para>
622 Usage: dd [OPTION]...
623 </para>
624
625 <para>
626 Copy a file, converting and formatting according to
627 options.
628 </para>
629
630 <para>
631 Options:
632 </para>
633
634 <para>
635 <screen>
636 if=FILE Read from FILE instead of stdin
637 of=FILE Write to FILE instead of stdout
638 bs=N Read and write N bytes at a time
639 count=N Copy only N input blocks
640 skip=N Skip N input blocks
641 seek=N Skip N output blocks
642 </screen>
643 </para>
644
645 <para>
646 Numbers may be suffixed by w (x2), k (x1024), b (x512),
647 or M (x1024^2).
648 </para>
649
650 <para>
651 Example:
652 </para>
653
654 <para>
655 <screen>
656 $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
657 4+0 records in
658 4+0 records out
659 </screen>
660 </para>
661 </sect1>
662
663 <sect1 id="deallocvt">
664 <title>deallocvt</title>
665
666 <para>
667 Usage: deallocvt N
668 </para>
669
670 <para>
671 Deallocate unused virtual terminal /dev/ttyN.
672 </para>
673 </sect1>
674
675 <sect1 id="df">
676 <title>df</title>
677
678 <para>
679 Usage: df [FILE]...
680 </para>
681
682 <para>
683 Print the filesystem space used and space available.
684 </para>
685
686 <para>
687 Example:
688 </para>
689
690 <para>
691 <screen>
692 $ df
693 Filesystem 1k-blocks Used Available Use% Mounted on
694 /dev/sda3 8690864 8553540 137324 98% /
695 /dev/sda1 64216 36364 27852 57% /boot
696 $ df /dev/sda3
697 Filesystem 1k-blocks Used Available Use% Mounted on
698 /dev/sda3 8690864 8553540 137324 98% /
699 </screen>
700 </para>
701 </sect1>
702
703 <sect1 id="dirname">
704 <title>dirname</title>
705
706 <para>
707 Usage: dirname NAME
708 </para>
709
710 <para>
711 Strip non-directory suffix from NAME.
712 </para>
713
714 <para>
715 Example:
716 </para>
717
718 <para>
719 <screen>
720 $ dirname /tmp/foo
721 /tmp
722 $ dirname /tmp/foo/
723 /tmp
724 </screen>
725 </para>
726 </sect1>
727
728 <sect1 id="dmesg">
729 <title>dmesg</title>
730
731 <para>
732 Usage: dmesg [OPTION]...
733 </para>
734
735 <para>
736 Print or control the kernel ring buffer.
737 </para>
738
739 <para>
740 Options:
741 </para>
742
743 <para>
744 <screen>
745 -c Clear the ring buffer after printing
746 -n LEVEL Set the console logging level to LEVEL
747 -s BUFSIZE Query ring buffer using a buffer of BUFSIZE
748 </screen>
749 </para>
750 </sect1>
751
Eric Andersencff3fe32000-09-20 19:22:26 +0000752 <sect1 id="dos2unix">
753 <title>dos2unix</title>
754
755 <para>
756 Usage: dos2unix < dosfile > unixfile
757 </para>
758
759 <para>
760 Converts a text file from dos format to unix format.
761 </para>
762
763 </sect1>
764
Glenn L McGrathfa044322001-01-03 01:06:30 +0000765 <sect1 id="dpkg-deb">
766 <title>dpkg-deb</title>
767
768 <para>
769 Usage: dpkg-deb [OPTION] archive [directory]
770 </para>
771
772 <para>
773 Debian package archive (.deb) manipulation tool
774 </para>
775
776 <para>
777 Options:
778 </para>
779
780 <para>
781 <screen>
782 -c List the contents of the filesystem tree archive portion of the package
783 -e Extracts the control information files from a package archive into the specified directory.
784 If no directory is specified then a subdirectory DEBIAN in the current directory is used.
785 -x Silently extracts the filesystem tree from a package archive into the specified directory.
786 -X Extracts the filesystem tree from a package archive into the specified directory, listing the files as it goes.
787 If required the specified directory (but not its parents) will be created.
788 </screen>
789 <para>
790
791 <para>
792 Example:
793 </para>
794
795 <para>
796 <screen>
797 dpkg-deb -e ./busybox_0.48-1_i386.deb
798 dpkg-deb -x ./busybox_0.48-1_i386.deb ./unpack_dir
799 </screen>
800 </para>
801 </sect1>
802
Eric Andersen6f5e2812000-07-06 16:58:45 +0000803 <sect1 id="du">
804 <title>du</title>
805
806 <para>
807 Usage: du [OPTION]... [FILE]...
808 </para>
809
810 <para>
811 Summarize the disk space used for each FILE or current
Eric Andersen77d92682001-05-23 20:32:09 +0000812 directory. Disk space printed in units of 1k (i.e.,
Eric Andersen6f5e2812000-07-06 16:58:45 +0000813 1024 bytes).
814 </para>
815
816 <para>
817 Options:
818 </para>
819
820 <para>
821 <screen>
822 -l Count sizes many times if hard linked
823 -s Display only a total for each argument
824 </screen>
825 </para>
826
827 <para>
828 Example:
829 </para>
830
831 <para>
832 <screen>
833 $ du
834 16 ./CVS
835 12 ./kernel-patches/CVS
836 80 ./kernel-patches
837 12 ./tests/CVS
838 36 ./tests
839 12 ./scripts/CVS
840 16 ./scripts
841 12 ./docs/CVS
842 104 ./docs
843 2417 .
844 </screen>
845 </para>
846 </sect1>
847
Eric Andersen61dc0572000-07-11 17:29:36 +0000848 <sect1 id="dumpkmap">
849 <title>dumpkmap</title>
850
851 <para>
852 Usage: dumpkmap
853 </para>
854
855 <para>
Eric Andersen337ec1b2000-11-17 17:23:16 +0000856 Prints out a binary keyboard translation table to standard output.
Eric Andersen61dc0572000-07-11 17:29:36 +0000857 </para>
Eric Andersen18a10142000-09-01 16:12:57 +0000858
859 <para>
860 Example:
861 </para>
862
863 <para>
864 <screen>
865 $ dumpkmap &lt; keymap
866 </screen>
867 </para>
Eric Andersen61dc0572000-07-11 17:29:36 +0000868 </sect1>
869
Eric Andersen6f5e2812000-07-06 16:58:45 +0000870 <sect1 id="dutmp">
871 <title>dutmp</title>
872
873 <para>
874 Usage: dutmp [FILE]
875 </para>
876
877 <para>
878 Dump utmp file format (pipe delimited) from FILE or
879 stdin to stdout.
880 </para>
881
882 <para>
883 Example:
884 </para>
885
886 <para>
887 <screen>
888 $ dutmp /var/run/utmp
889 8|7||si|||0|0|0|955637625|760097|0
890 2|0|~|~~|reboot||0|0|0|955637625|782235|0
891 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
892 8|125||l4|||0|0|0|955637629|998367|0
893 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
894 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
895 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
896 </screen>
897 </para>
898 </sect1>
899
900 <sect1 id="echo">
901 <title>echo</title>
902
903 <para>
904 Usage: echo [OPTION]... [ARG]...
905 </para>
906
907 <para>
908 Print ARGs to stdout.
909 </para>
910
911 <para>
912 Options:
913 </para>
914
915 <para>
916 <screen>
917 -n Suppress trailing newline
918 -e Enable interpretation of escaped characters
919 -E Disable interpretation of escaped characters
920 </screen>
921 </para>
922
923 <para>
924 Example:
925 </para>
926
927 <para>
928 <screen>
929 $ echo "Erik is cool"
930 Erik is cool
931 $ echo -e "Erik\nis\ncool"
932 Erik
933 is
934 cool
935 $ echo "Erik\nis\ncool"
936 Erik\nis\ncool
937 </screen>
938 </para>
939 </sect1>
940
Eric Andersen1b355eb2000-09-05 17:37:48 +0000941 <sect1 id="expr">
942 <title>expr</title>
943
944 <para>
945 Usage: expr EXPRESSION
946 </para>
947
948 <para>
949 Prints the value of EXPRESSION to standard output.
950 </para>
951
952 <para>
953 EXPRESSION may be:
954 </para>
955
956 <para>
957 <screen>
958 ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2
959 ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0
960 ARG1 &lt ARG2 ARG1 is less than ARG2
961 ARG1 &lt= ARG2 ARG1 is less than or equal to ARG2
962 ARG1 = ARG2 ARG1 is equal to ARG2
963 ARG1 != ARG2 ARG1 is unequal to ARG2
964 ARG1 &gt= ARG2 ARG1 is greater than or equal to ARG2
965 ARG1 &gt ARG2 ARG1 is greater than ARG2
966 ARG1 + ARG2 arithmetic sum of ARG1 and ARG2
967 ARG1 - ARG2 arithmetic difference of ARG1 and ARG2
968 ARG1 * ARG2 arithmetic product of ARG1 and ARG2
969 ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2
970 ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2
971 STRING : REGEXP anchored pattern match of REGEXP in STRING
972 match STRING REGEXP same as STRING : REGEXP
973 substr STRING POS LENGTH substring of STRING, POS counted from 1
974 index STRING CHARS index in STRING where any CHARS is found, or 0
975 length STRING length of STRING
976 quote TOKEN interpret TOKEN as a string, even if it is a
977 keyword like `match' or an operator like `/'
978 ( EXPRESSION ) value of EXPRESSION
979 </screen>
980 </para>
981
982 <para>
983 Beware that many operators need to be escaped or quoted for shells.
984 Comparisons are arithmetic if both ARGs are numbers, else
985 lexicographical. Pattern matches return the string matched between
986 \( and \) or null; if \( and \) are not used, they return the number
987 of characters matched or 0.
988 </para>
989
990 </sect1>
991
992
Eric Andersen6f5e2812000-07-06 16:58:45 +0000993 <sect1 id="false">
994 <title>false</title>
995
996 <para>
997 Usage: false
998 </para>
999
1000 <para>
Eric Andersen21580922000-07-07 19:07:47 +00001001 Return an exit code of FALSE (1).
Eric Andersen6f5e2812000-07-06 16:58:45 +00001002 </para>
1003
1004 <para>
1005 Example:
1006 </para>
1007
1008 <para>
1009 <screen>
1010 $ false
1011 $ echo $?
1012 1
1013 </screen>
1014 </para>
1015 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00001016
Eric Andersene5cec4e2000-07-06 19:59:22 +00001017 <sect1 id="fbset">
1018 <title>fbset</title>
1019
1020 <para>
1021 Usage: fbset [OPTION]... [MODE]
1022 </para>
1023
1024 <para>
1025 Show and modify frame buffer device settings.
1026 </para>
1027
1028 <para>
1029 Options:
1030 </para>
1031
1032 <para>
1033 <screen>
1034 -h Display option summary
1035 -fb DEVICE Operate on DEVICE
1036 -db FILE Use FILE for mode database
1037 -g XRES YRES VXRES VYRES DEPTH Set all geometry parameters
1038 -t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN Set all timing parameters
1039 -xres RES Set visible horizontal resolution
1040 -yres RES Set visible vertical resolution
1041 </screen>
1042 </para>
1043
1044 <para>
1045 Example:
1046 </para>
1047
1048 <para>
1049 <screen>
1050 $ fbset
1051 mode "1024x768-76"
1052 # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
1053 geometry 1024 768 1024 768 16
1054 timings 12714 128 32 16 4 128 4
1055 accel false
1056 rgba 5/11,6/5,5/0,0/0
1057 endmode
1058 </screen>
1059 </para>
1060 </sect1>
1061
1062 <sect1 id="fdflush">
1063 <title>fdflush</title>
1064
1065 <para>
1066 Usage: fdflush DEVICE
1067 </para>
1068
1069 <para>
1070 Force floppy disk drive to detect disk change on DEVICE.
1071 </para>
1072 </sect1>
1073
1074 <sect1 id="find">
1075 <title>find</title>
1076
1077 <para>
1078 Usage: find [PATH]... [EXPRESSION]
1079 </para>
1080
1081 <para>
1082 Search for files in a directory hierarchy. The default
1083 PATH is the current directory; default EXPRESSION is
1084 '-print'.
1085 </para>
1086
1087 <para>
1088 EXPRESSION may consist of:
1089 </para>
1090
1091 <para>
1092 <screen>
1093 -follow Dereference symbolic links
1094 -name PATTERN File name (leading directories removed) matches PATTERN
Matt Kraaidf8ccb62001-02-07 04:05:35 +00001095 -type X Filetype matches X (where X is one of: f,d,l,b,c,...)
1096 -perm PERMS Permissions match any of (+NNN); all of (-NNN); or exactly (NNN)
1097 -mtime TIME Modified time is greater than (+N); less than (-N); or exactly (N) days
Eric Andersene5cec4e2000-07-06 19:59:22 +00001098 </screen>
1099 </para>
1100
1101 <para>
1102 Example:
1103 </para>
1104
1105 <para>
1106 <screen>
1107 $ find / -name /etc/passwd
1108 /etc/passwd
1109 </screen>
1110 </para>
1111 </sect1>
1112
1113 <sect1 id="free">
1114 <title>free</title>
1115
1116 <para>
1117 Usage: free
1118 </para>
1119
1120 <para>
1121 Displays the amount of free and used system memory.
1122 </para>
1123
1124 <para>
1125 Example:
1126 </para>
1127
1128 <para>
1129 <screen>
1130 $ free
1131 total used free shared buffers
1132 Mem: 257628 248724 8904 59644 93124
1133 Swap: 128516 8404 120112
1134 Total: 386144 257128 129016
1135 </screen>
1136 </para>
1137 </sect1>
1138
1139 <sect1 id="freeramdisk">
1140 <title>freeramdisk</title>
1141
1142 <para>
1143 Usage: freeramdisk DEVICE
1144 </para>
1145
1146 <para>
1147 Free all memory used by the ramdisk DEVICE.
1148 </para>
1149
1150 <para>
1151 Example:
1152 </para>
1153
1154 <para>
1155 <screen>
1156 $ freeramdisk /dev/ram2
1157 </screen>
1158 </para>
1159 </sect1>
1160
1161 <sect1 id="fsck.minix">
1162 <title>fsck.minix</title>
1163
1164 <para>
1165 Usage: fsck.minix [OPTION]... DEVICE
1166 </para>
1167
1168 <para>
1169 Perform a consistency check on the MINIX filesystem on
1170 DEVICE.
1171 </para>
1172
1173 <para>
1174 Options:
1175 </para>
1176
1177 <para>
1178 <screen>
1179 -l List all filenames
1180 -r Perform interactive repairs
1181 -a Perform automatic repairs
1182 -v Verbose
1183 -s Output super-block information
1184 -m Activate MINIX-like "mode not cleared" warnings
1185 -f Force file system check.
1186 </screen>
1187 </para>
1188 </sect1>
Eric Andersena1f16bb2000-08-21 22:02:34 +00001189
1190 <sect1 id="getopt">
1191 <title>getopt</title>
1192
1193 <para>
1194 Usage: getopt [OPTIONS]...
1195 </para>
1196
1197 <para>
1198 Parse command options
1199 </para>
1200
1201 <para>
1202 <screen>
1203 -a, --alternative Allow long options starting with single -\n"
1204 -l, --longoptions=longopts Long options to be recognized\n"
1205 -n, --name=progname The name under which errors are reported\n"
1206 -o, --options=optstring Short options to be recognized\n"
1207 -q, --quiet Disable error reporting by getopt(3)\n"
1208 -Q, --quiet-output No normal output\n"
1209 -s, --shell=shell Set shell quoting conventions\n"
1210 -T, --test Test for getopt(1) version\n"
1211 -u, --unqote Do not quote the output\n"
1212 </screen>
1213 </para>
1214
1215
1216 <para>
1217 Example:
1218 </para>
1219
1220 <para>
1221 <screen>
1222 $ cat getopt.test
1223 #!/bin/sh
1224 GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \
1225 -n 'example.busybox' -- "$@"`
1226 if [ $? != 0 ] ; then exit 1 ; fi
1227 eval set -- "$GETOPT"
1228 while true ; do
1229 case $1 in
1230 -a|--a-long) echo "Option a" ; shift ;;
1231 -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;
1232 -c|--c-long)
1233 case "$2" in
1234 "") echo "Option c, no argument"; shift 2 ;;
1235 *) echo "Option c, argument \`$2'" ; shift 2 ;;
1236 esac ;;
1237 --) shift ; break ;;
1238 *) echo "Internal error!" ; exit 1 ;;
1239 esac
1240 done
1241 </screen>
1242 </para>
1243 </sect1>
Eric Andersene5cec4e2000-07-06 19:59:22 +00001244
1245 <sect1 id="grep">
1246 <title>grep</title>
1247
1248 <para>
1249 Usage: grep [OPTIONS]... PATTERN [FILE]...
1250 </para>
1251
1252 <para>
1253 Search for PATTERN in each FILE or stdin.
1254 </para>
1255
1256 <para>
1257 Options:
1258 </para>
1259
1260 <para>
1261 <screen>
1262 -h Suppress the prefixing filename on output
1263 -i Ignore case distinctions
1264 -n Print line number with output lines
1265 -q Be quiet. Returns 0 if result was found, 1 otherwise
1266 -v Select non-matching lines
1267 </screen>
1268 </para>
1269
1270 <para>
1271 This version of grep matches full regular expressions.
1272 </para>
1273
1274 <para>
1275 Example:
1276 </para>
1277
1278 <para>
1279 <screen>
1280 $ grep root /etc/passwd
1281 root:x:0:0:root:/root:/bin/bash
1282 $ grep ^[rR]oo. /etc/passwd
1283 root:x:0:0:root:/root:/bin/bash
1284 </screen>
1285 </para>
1286 </sect1>
1287
1288 <sect1 id="gunzip">
1289 <title>gunzip</title>
1290
1291 <para>
1292 Usage: gunzip [OPTION]... FILE
1293 </para>
1294
1295 <para>
1296 Uncompress FILE (or stdin if FILE is '-').
1297 </para>
1298
1299 <para>
1300 Options:
1301 </para>
1302
1303 <para>
1304 <screen>
1305 -c Write output to standard output
1306 -t Test compressed file integrity
1307 </screen>
1308 </para>
1309
1310 <para>
1311 Example:
1312 </para>
1313
1314 <para>
1315 <screen>
1316 $ ls -la /tmp/BusyBox*
1317 -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz
1318 $ gunzip /tmp/BusyBox-0.43.tar.gz
1319 $ ls -la /tmp/BusyBox*
1320 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1321 </screen>
1322 </para>
1323 </sect1>
1324
Pavel Roskind2d3aa32000-09-15 17:16:40 +00001325 <sect1 id="gzip">
Eric Andersene5cec4e2000-07-06 19:59:22 +00001326 <title>gzip</title>
1327
1328 <para>
1329 Usage: gzip [OPTION]... FILE
1330 </para>
1331
1332 <para>
1333 Compress FILE (or stdin if FILE is '-') with maximum
1334 compression to FILE.gz (or stdout if FILE is '-').
1335 </para>
1336
1337 <para>
1338 Options:
1339 </para>
1340
1341 <para>
1342 <screen>
1343 -c Write output to standard output
Eric Andersend0fa0a12000-12-13 17:59:37 +00001344 -d decompress
Eric Andersene5cec4e2000-07-06 19:59:22 +00001345 </screen>
1346 </para>
1347
1348 <para>
1349 Example:
1350 </para>
1351
1352 <para>
1353 <screen>
1354 $ ls -la /tmp/BusyBox*
1355 -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar
1356 $ gzip /tmp/BusyBox-0.43.tar
1357 $ ls -la /tmp/BusyBox*
1358 -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz
1359 </screen>
1360 </para>
1361 </sect1>
1362
1363 <sect1 id="halt">
1364 <title>halt</title>
1365
1366 <para>
1367 Usage: halt
1368 </para>
1369
1370 <para>
1371 Halt the system.
1372 </para>
1373 </sect1>
1374
1375 <sect1 id="head">
1376 <title>head</title>
1377
1378 <para>
1379 Usage: head [OPTION] FILE...
1380 </para>
1381
1382 <para>
1383 Print first 10 lines of each FILE to standard output.
1384 With more than one FILE, precede each with a header
1385 giving the file name. With no FILE, or when FILE is -,
1386 read standard input.
1387 </para>
1388
1389 <para>
1390 Options:
1391 </para>
1392
1393 <para>
1394 <screen>
1395 -n NUM Print first NUM lines instead of first 10
1396 </screen>
1397 </para>
1398
1399 <para>
1400 Example:
1401 </para>
1402
1403 <para>
1404 <screen>
1405 $ head -n 2 /etc/passwd
1406 root:x:0:0:root:/root:/bin/bash
1407 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
1408 </screen>
1409 </para>
1410 </sect1>
1411
1412 <sect1 id="hostid">
1413 <title>hostid</title>
1414
1415 <para>
1416 Usage: hostid
1417 </para>
1418
1419 <para>
1420 Prints out a unique 32-bit identifier for the current
1421 machine. The 32-bit identifier is intended to be unique
1422 among all UNIX systems in existence.
1423 </para>
1424 </sect1>
1425
1426 <sect1 id="hostname">
1427 <title>hostname</title>
1428
1429 <para>
1430 Usage: hostname [OPTION]... [HOSTNAME|-F FILE]
1431 </para>
1432
1433 <para>
1434 Get or set the hostname or DNS domain name. If a
1435 hostname is given (or a file with the -F parameter), the
1436 host name will be set.
1437 </para>
1438
1439 <para>
1440 Options:
1441 </para>
1442
1443 <para>
1444 <screen>
Eric Andersen0d5835a2000-10-12 22:30:31 +00001445 -s Short
1446 -i Addresses for the hostname
1447 -d DNS domain name
1448 -F, --file FILE Use the contents of FILE to specify the hostname
Eric Andersene5cec4e2000-07-06 19:59:22 +00001449 </screen>
1450 </para>
1451
1452 <para>
1453 Example:
1454 </para>
1455
1456 <para>
1457 <screen>
1458 $ hostname
1459 slag
1460 </screen>
1461 </para>
1462 </sect1>
1463
1464 <sect1 id="id">
1465 <title>id</title>
1466
1467 <para>
1468 Usage: id [OPTION]... [USERNAME]
1469 </para>
1470
1471 <para>
1472 Print information for USERNAME or the current user.
1473 </para>
1474
1475 <para>
1476 Options:
1477 </para>
1478
1479 <para>
1480 <screen>
1481 -g Print only the group ID
1482 -u Print only the user ID
Eric Andersenc1b8f122001-01-25 05:12:02 +00001483 -n print a name instead of a number (with for -ug)
Eric Andersene5cec4e2000-07-06 19:59:22 +00001484 -r Print the real user ID instead of the effective ID (with -ug)
1485 </screen>
1486 </para>
1487
1488 <para>
1489 Example:
1490 </para>
1491
1492 <para>
1493 <screen>
1494 $ id
1495 uid=1000(andersen) gid=1000(andersen)
1496 </screen>
1497 </para>
1498 </sect1>
1499
1500 <sect1 id="init">
1501 <title>init</title>
1502
1503 <para>
1504 Usage: init
1505 </para>
1506
1507 <para>
1508 Init is the parent of all processes.
1509 </para>
1510
1511 <para>
1512 This version of init is designed to be run only by the
1513 kernel.
1514 </para>
1515
1516 <para>
1517 BusyBox init doesn't support multiple runlevels. The
1518 runlevels field of the /etc/inittab file is completely
1519 ignored by BusyBox init. If you want runlevels, use
1520 sysvinit.
1521 </para>
1522
1523 <para>
1524 BusyBox init works just fine without an inittab. If no
1525 inittab is found, it has the following default behavior:
1526 </para>
1527
1528 <para>
1529 <screen>
1530 ::sysinit:/etc/init.d/rcS
1531 ::askfirst:/bin/sh
1532 </screen>
1533 </para>
1534
1535 <para>
1536 If it detects that /dev/console is _not_ a serial
1537 console, it will also run:
1538 </para>
1539
1540 <para>
1541 <screen>
1542 tty2::askfirst:/bin/sh
1543 </screen>
1544 </para>
1545
1546 <para>
1547 If you choose to use an /etc/inittab file, the inittab
1548 entry format is as follows:
1549 </para>
1550
1551 <para>
1552 <screen>
1553 &lt;id&gt;:&lt;runlevels&gt;:&lt;action&gt;:&lt;process&gt;
1554 </screen>
Pavel Roskind2d3aa32000-09-15 17:16:40 +00001555 </para>
Eric Andersene5cec4e2000-07-06 19:59:22 +00001556
1557 <sect2>
1558 <title>id</title>
1559 <para>
Eric Andersen0d2acb02000-12-18 20:36:02 +00001560
1561 WARNING: This field has a non-traditional meaning for BusyBox init!
1562 The id field is used by BusyBox init to specify the controlling tty
1563 for the specified process to run on. The contents of this field
1564 are appended to "/dev/" and used as-is. There is no need for this
1565 field to be unique, although if it isn't you may have strange
1566 results. If this field is left blank, the controlling tty is set
1567 to the console. Also note that if BusyBox detects that a serial
1568 console is in use, then only entries whose controlling tty is
1569 either the serial console or /dev/null will be run. BusyBox init
1570 does nothing with utmp. We don't need no stinkin' utmp.
1571
Eric Andersene5cec4e2000-07-06 19:59:22 +00001572 </para>
1573 </sect2>
1574
1575 <sect2>
1576 <title>runlevels</title>
1577
1578 <para>
1579 The runlevels field is completely ignored.
1580 </para>
1581 </sect2>
1582
1583 <sect2>
1584 <title>action</title>
1585
Eric Anderseneb4218d2000-12-08 20:38:00 +00001586
Eric Andersene5cec4e2000-07-06 19:59:22 +00001587 <para>
Eric Anderseneb4218d2000-12-08 20:38:00 +00001588 Valid actions include: sysinit, respawn, askfirst, wait,
1589 once, and ctrlaltdel.
1590 </para>
1591
1592
1593 <para>
1594 The available actions can be classified into two groups: actions
1595 that are run only once, and actions that are re-run when the specified
1596 process exits.
Eric Andersene5cec4e2000-07-06 19:59:22 +00001597 </para>
1598
1599 <para>
Eric Anderseneb4218d2000-12-08 20:38:00 +00001600 Run only-once actions:
Eric Andersene5cec4e2000-07-06 19:59:22 +00001601 </para>
1602
1603 <para>
Eric Anderseneb4218d2000-12-08 20:38:00 +00001604 'sysinit' is the first item run on boot. init waits until all
1605 sysinit actions are completed before continuing. Following the
1606 completion of all sysinit actions, all 'wait' actions are run.
1607 'wait' actions, like 'sysinit' actions, cause init to wait until
1608 the specified task completes. 'once' actions are asyncronous,
1609 therefore, init does not wait for them to complete. 'ctrlaltdel'
1610 actions are run immediately before init causes the system to reboot
1611 (unmounting filesystems with a 'ctrlaltdel' action is a very good
1612 idea).
Eric Andersene5cec4e2000-07-06 19:59:22 +00001613 </para>
Eric Anderseneb4218d2000-12-08 20:38:00 +00001614
1615 <para>
1616 Run repeatedly actions:
1617 </para>
1618
1619 <para>
1620 'respawn' actions are run after the 'once' actions. When a process
1621 started with a 'respawn' action exits, init automatically restarts
1622 it. Unlike sysvinit, BusyBox init does not stop processes from
1623 respawning out of control. The 'askfirst' actions acts just like
1624 respawn, except that before running the specified process it
1625 displays the line "Please press Enter to activate this console."
1626 and then waits for the user to press enter before starting the
1627 specified process.
1628 </para>
1629
1630 <para>
1631 Unrecognized actions (like initdefault) will cause init to emit an
1632 error message, and then go along with its business. All actions are
1633 run in the reverse order from how they appear in /etc/inittab.
1634 </para>
1635
Eric Andersene5cec4e2000-07-06 19:59:22 +00001636 </sect2>
1637
1638 <sect2>
1639 <title>process</title>
1640
1641 <para>
1642 Specifies the process to be executed and its
1643 command line.
1644 </para>
1645 </sect2>
1646
Pavel Roskind2d3aa32000-09-15 17:16:40 +00001647 <sect2>
1648 <title>Example /etc/inittab file</title>
Eric Andersene5cec4e2000-07-06 19:59:22 +00001649
Eric Andersen57f83ff2000-09-24 02:41:44 +00001650 <para>
1651 <screen>
1652 # This is run first except when booting in single-user mode.
1653 #
1654 ::sysinit:/etc/init.d/rcS
Eric Andersene5cec4e2000-07-06 19:59:22 +00001655
Eric Andersen57f83ff2000-09-24 02:41:44 +00001656 # /bin/sh invocations on selected ttys
1657 #
1658 # Start an "askfirst" shell on the console (whatever that may be)
1659 ::askfirst:-/bin/sh
1660 # Start an "askfirst" shell on /dev/tty2-4
1661 tty2::askfirst:-/bin/sh
1662 tty2::askfirst:-/bin/sh
1663 tty2::askfirst:-/bin/sh
Eric Andersene5cec4e2000-07-06 19:59:22 +00001664
Eric Andersen57f83ff2000-09-24 02:41:44 +00001665 # /sbin/getty invocations for selected ttys
1666 #
1667 tty4::respawn:/sbin/getty 38400 tty5
1668 tty5::respawn:/sbin/getty 38400 tty6
Eric Andersene5cec4e2000-07-06 19:59:22 +00001669
Eric Andersen57f83ff2000-09-24 02:41:44 +00001670 # Example of how to put a getty on a serial line (for a terminal)
1671 #
Eric Andersen8ce85ce2000-09-26 22:20:06 +00001672 #::respawn:/sbin/getty -L ttyS0 9600 vt100
1673 #::respawn:/sbin/getty -L ttyS1 9600 vt100
Eric Andersen57f83ff2000-09-24 02:41:44 +00001674 #
1675 # Example how to put a getty on a modem line.
Eric Andersen8ce85ce2000-09-26 22:20:06 +00001676 #::respawn:/sbin/getty 57600 ttyS2
Eric Andersene5cec4e2000-07-06 19:59:22 +00001677
Eric Andersen57f83ff2000-09-24 02:41:44 +00001678 # Stuff to do before rebooting
1679 ::ctrlaltdel:/bin/umount -a -r
1680 ::ctrlaltdel:/sbin/swapoff
1681 </screen>
1682 </para>
Pavel Roskind2d3aa32000-09-15 17:16:40 +00001683 </sect2>
Eric Andersene5cec4e2000-07-06 19:59:22 +00001684 </sect1>
1685
1686 <sect1 id="insmod">
1687 <title>insmod</title>
1688
1689 <para>
1690 Usage: insmod [OPTION]... MODULE [symbol=value]...
1691 </para>
1692
1693 <para>
Eric Andersen21580922000-07-07 19:07:47 +00001694 Load MODULE into the kernel.
Eric Andersene5cec4e2000-07-06 19:59:22 +00001695 </para>
1696
1697 <para>
1698 Options:
1699 </para>
1700
1701 <para>
1702 <screen>
1703 -f Force module to load into the wrong kernel version.
1704 -k Make module autoclean-able.
1705 -v Verbose output
1706 -x Do not export externs
Eric Andersen8c5cb312001-01-24 19:15:07 +00001707 -L Prevent simultaneous loads of the same module
Eric Andersene5cec4e2000-07-06 19:59:22 +00001708 </screen>
1709 </para>
1710 </sect1>
1711
1712 <sect1 id="kill">
1713 <title>kill</title>
1714
1715 <para>
1716 Usage: kill [OPTION] PID...
1717 </para>
1718
1719 <para>
1720 Send a signal (default is SIGTERM) to the specified
1721 PID(s).
1722 </para>
1723
1724 <para>
1725 Options:
1726 </para>
1727
1728 <para>
1729 <screen>
1730 -l List all signal names and numbers
1731 -SIG Send signal SIG
1732 </screen>
1733 </para>
1734
1735 <para>
1736 Example:
1737 </para>
1738
1739 <para>
1740 <screen>
1741 $ ps | grep apache
1742 252 root root S [apache]
1743 263 www-data www-data S [apache]
1744 264 www-data www-data S [apache]
1745 265 www-data www-data S [apache]
1746 266 www-data www-data S [apache]
1747 267 www-data www-data S [apache]
1748 $ kill 252
1749 </screen>
1750 </para>
1751 </sect1>
1752
1753 <sect1 id="killall">
1754 <title>killall</title>
1755
1756 <para>
1757 Usage: killall [OPTION] NAME...
1758 </para>
1759
1760 <para>
1761 Send a signal (default is SIGTERM) to the specified
1762 NAME(s).
1763 </para>
1764
1765 <para>
1766 Options:
1767 </para>
1768
1769 <para>
1770 <screen>
1771 -l List all signal names and numbers
1772 -SIG Send signal SIG
1773 </screen>
1774 </para>
1775
1776 <para>
1777 Example:
1778 </para>
1779
1780 <para>
1781 <screen>
1782 $ killall apache
1783 </screen>
1784 </para>
1785 </sect1>
1786
1787 <sect1 id="length">
1788 <title>length</title>
1789
1790 <para>
1791 Usage: length STRING
1792 </para>
1793
1794 <para>
1795 Print the length of STRING.
1796 </para>
1797
1798 <para>
1799 Example:
1800 </para>
1801
1802 <para>
1803 <screen>
1804 $ length "Hello"
1805 5
1806 </screen>
1807 </para>
1808 </sect1>
1809
1810 <sect1 id="ln">
1811 <title>ln</title>
1812
1813 <para>
1814 Usage: ln [OPTION]... TARGET FILE|DIRECTORY
1815 </para>
1816
1817 <para>
1818 Create a link named FILE or DIRECTORY to the specified
1819 TARGET. You may use '--' to indicate that all following
1820 arguments are non-options.
1821 </para>
1822
1823 <para>
1824 Options:
1825 </para>
1826
1827 <para>
1828 <screen>
1829 -s Make symbolic link instead of hard link
1830 -f Remove existing destination file
1831 </screen>
1832 </para>
1833
1834 <para>
1835 Example:
1836 </para>
1837
1838 <para>
1839 <screen>
1840 $ ln -s BusyBox /tmp/ls
1841 $ ls -l /tmp/ls
1842 lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -&gt; BusyBox*
1843 </screen>
1844 </para>
1845 </sect1>
1846
1847 <sect1 id="loadacm">
1848 <title>loadacm</title>
1849
1850 <para>
1851 Usage: loadacm
1852 </para>
1853
1854 <para>
1855 Load an acm from stdin.
1856 </para>
1857
1858 <para>
1859 Example:
1860 </para>
1861
1862 <para>
1863 <screen>
1864 $ loadacm &lt; /etc/i18n/acmname
1865 </screen>
1866 </para>
1867 </sect1>
1868
1869 <sect1 id="loadfont">
1870 <title>loadfont</title>
1871
1872 <para>
1873 Usage: loadfont
1874 </para>
1875
1876 <para>
1877 Load a console font from stdin.
1878 </para>
1879
1880 <para>
1881 Example:
1882 </para>
1883
1884 <para>
1885 <screen>
1886 $ loadfont &lt; /etc/i18n/fontname
1887 </screen>
1888 </para>
1889 </sect1>
1890
1891 <sect1 id="loadkmap">
1892 <title>loadkmap</title>
1893
1894 <para>
1895 Usage: loadkmap
1896 </para>
1897
1898 <para>
1899 Load a binary keyboard translation table from stdin.
1900 </para>
1901
1902 <para>
1903 Example:
1904 </para>
1905
1906 <para>
1907 <screen>
1908 $ loadkmap &lt; /etc/i18n/lang-keymap
1909 </screen>
1910 </para>
1911 </sect1>
1912
1913 <sect1 id="logger">
1914 <title>logger</title>
1915
1916 <para>
1917 Usage: logger [OPTION]... [MESSAGE]
1918 </para>
1919
1920 <para>
Matt Kraai004827d2001-01-02 22:54:12 +00001921 Write MESSAGE to the system log. If MESSAGE is omitted, log
Eric Andersene5cec4e2000-07-06 19:59:22 +00001922 stdin.
1923 </para>
1924
1925 <para>
1926 Options:
1927 </para>
1928
1929 <para>
1930 <screen>
1931 -s Log to stderr as well as the system log
1932 -t Log using the specified tag (defaults to user name)
1933 -p Enter the message with the specified priority
1934 This may be numerical or a ``facility.level'' pair
1935 </screen>
1936 </para>
1937
1938 <para>
1939 Example:
1940 </para>
1941
1942 <para>
1943 <screen>
1944 $ logger "hello"
1945 </screen>
1946 </para>
1947 </sect1>
1948
1949 <sect1 id="logname">
1950 <title>logname</title>
1951
1952 <para>
1953 Usage: logname
1954 </para>
1955
1956 <para>
1957 Print the name of the current user.
1958 </para>
1959
1960 <para>
1961 Example:
1962 </para>
1963
1964 <para>
1965 <screen>
1966 $ logname
1967 root
1968 </screen>
1969 </para>
1970 </sect1>
1971
1972 <sect1 id="ls">
1973 <title>ls</title>
1974
1975 <para>
1976 Usage: ls [OPTION]... [FILE]...
1977 </para>
1978
1979 <para>
1980
1981 </para>
1982
1983 <para>
1984 Options:
1985 </para>
1986
1987 <para>
1988 <screen>
1989 -a Do not hide entries starting with .
1990 -c With -l: show ctime (the time of last
1991 modification of file status information)
1992 -d List directory entries instead of contents
1993 -e List both full date and full time
1994 -l Use a long listing format
1995 -n List numeric UIDs and GIDs instead of names
1996 -p Append indicator (one of /=@|) to entries
1997 -u With -l: show access time (the time of last
1998 access of the file)
1999 -x List entries by lines instead of by columns
2000 -A Do not list implied . and ..
2001 -C List entries by columns
2002 -F Append indicator (one of */=@|) to entries
Eric Andersen5b176932000-09-22 20:22:28 +00002003 -L list entries pointed to by symbolic links
Eric Andersene5cec4e2000-07-06 19:59:22 +00002004 -R List subdirectories recursively
2005 </screen>
2006 </para>
2007
2008 <para>
2009 Example:
2010 </para>
2011
2012 <para>
2013 <screen>
2014 </screen>
2015 </para>
2016 </sect1>
2017
2018 <sect1 id="lsmod">
2019 <title>lsmod</title>
2020
2021 <para>
2022 Usage: lsmod
2023 </para>
2024
2025 <para>
2026 List currently loaded kernel modules.
2027 </para>
2028 </sect1>
2029
2030 <sect1 id="makedevs">
2031 <title>makedevs</title>
2032
2033 <para>
2034 Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s]
2035 </para>
2036
2037 <para>
2038 Create a range of block or character special files.
2039 </para>
2040
2041 <para>
2042 TYPE may be:
2043 </para>
2044
2045 <para>
2046 <screen>
2047 b Make a block (buffered) device
2048 c or u Make a character (un-buffered) device
2049 p Make a named pipe. MAJOR and MINOR are ignored for named pipes
2050 </screen>
2051 </para>
2052
2053 <para>
2054 FIRST specifies the number appended to NAME to create
2055 the first device. LAST specifies the number of the last
2056 item that should be created. If 's' is the last
2057 argument, the base device is created as well.
2058 </para>
2059
2060 <para>
2061 Example:
2062 </para>
2063
2064 <para>
2065 <screen>
2066 $ makedevs /dev/ttyS c 4 66 2 63
2067 [creates ttyS2-ttyS63]
2068 $ makedevs /dev/hda b 3 0 0 8 s
2069 [creates hda,hda1-hda8]
2070 </screen>
2071 </para>
2072 </sect1>
2073
Eric Andersenb9eb0232000-07-07 05:04:24 +00002074 <sect1 id="md5sum">
2075 <title>md5sum</title>
2076
2077 <para>
2078 Usage: md5sum [OPTION]... FILE...
2079 </para>
2080
2081 <para>
2082 Print or check MD5 checksums.
2083 </para>
2084
2085 <para>
2086 Options:
2087 </para>
2088
2089 <para>
2090 <screen>
2091 -b Read files in binary mode
2092 -c Check MD5 sums against given list
2093 -t Read files in text mode (default)
2094 -g Read a string
2095 </screen>
2096 </para>
2097
2098 <para>
2099 The following two options are useful only when verifying
2100 checksums:
2101 </para>
2102
2103 <para>
2104 <screen>
2105 -s Don't output anything, status code shows success
2106 -w Warn about improperly formated MD5 checksum lines
2107 </screen>
2108 </para>
2109
2110 <para>
2111 Example:
2112 </para>
2113
2114 <para>
2115 <screen>
2116 $ md5sum busybox
2117 6fd11e98b98a58f64ff3398d7b324003 busybox
2118 $ md5sum -c
2119 6fd11e98b98a58f64ff3398d7b324003 busybox
2120 6fd11e98b98a58f64ff3398d7b324002 busybox
2121 md5sum: MD5 check failed for 'busybox'
2122 ^D
2123 </screen>
2124 </para>
2125 </sect1>
2126
2127 <sect1 id="mkdir">
2128 <title>mkdir</title>
2129
2130 <para>
2131 Usage: mkdir [OPTION]... DIRECTORY...
2132 </para>
2133
2134 <para>
2135 Create the DIRECTORY(s), if they do not already exist.
2136 </para>
2137
2138 <para>
2139 Options:
2140 </para>
2141
2142 <para>
2143 <screen>
2144 -m Set permission mode (as in chmod), not rwxrwxrwx - umask
2145 -p No error if directory exists, make parent directories as needed
2146 </screen>
2147 </para>
2148
2149 <para>
2150 Example:
2151 </para>
2152
2153 <para>
2154 <screen>
2155 $ mkdir /tmp/foo
2156 $ mkdir /tmp/foo
2157 /tmp/foo: File exists
2158 $ mkdir /tmp/foo/bar/baz
2159 /tmp/foo/bar/baz: No such file or directory
2160 $ mkdir -p /tmp/foo/bar/baz
2161 </screen>
2162 </para>
2163 </sect1>
2164
2165 <sect1 id="mkfifo">
2166 <title>mkfifo</title>
2167
2168 <para>
2169 Usage: mkfifo [OPTION] NAME
2170 </para>
2171
2172 <para>
2173 Create a named pipe (identical to 'mknod NAME p').
2174 </para>
2175
2176 <para>
2177 Options:
2178 </para>
2179
2180 <para>
2181 <screen>
2182 -m MODE Create the pipe using the specified mode (default a=rw)
2183 </screen>
2184 </para>
2185 </sect1>
2186
2187 <sect1 id="mkfs.minix">
2188 <title>mkfs.minix</title>
2189
2190 <para>
2191 Usage: mkfs.minix [OPTION]... NAME [BLOCKS]
2192 </para>
2193
2194 <para>
2195 Make a MINIX filesystem.
2196 </para>
2197
2198 <para>
2199 Options:
2200 </para>
2201
2202 <para>
2203 <screen>
2204 -c Check the device for bad blocks
2205 -n [14|30] Specify the maximum length of filenames
2206 -i Specify the number of inodes for the filesystem
2207 -l FILENAME Read the bad blocks list from FILENAME
2208 -v Make a Minix version 2 filesystem
2209 </screen>
2210 </para>
2211 </sect1>
2212
2213 <sect1 id="mknod">
2214 <title>mknod</title>
2215
2216 <para>
2217 Usage: mknod [OPTION]... NAME TYPE MAJOR MINOR
2218 </para>
2219
2220 <para>
2221 Create a special file (block, character, or pipe).
2222 </para>
2223
2224 <para>
2225 Options:
2226 </para>
2227
2228 <para>
2229 <screen>
2230 -m Create the special file using the specified mode (default a=rw)
2231 </screen>
2232 </para>
2233
2234 <para>
2235 TYPE may be:
2236 </para>
2237
2238 <para>
2239 <screen>
2240 b Make a block (buffered) device
2241 c or u Make a character (un-buffered) device
2242 p Make a named pipe. MAJOR and MINOR are ignored for named pipes
2243 </screen>
2244 </para>
2245
2246 <para>
2247 Example:
2248 </para>
2249
2250 <para>
2251 <screen>
2252 $ mknod /dev/fd0 b 2 0
2253 $ mknod -m 644 /tmp/pipe p
2254 </screen>
2255 </para>
2256 </sect1>
2257
2258 <sect1 id="mkswap">
2259 <title>mkswap</title>
2260
2261 <para>
2262 Usage: mkswap [OPTION]... DEVICE [BLOCKS]
2263 </para>
2264
2265 <para>
2266 Prepare a disk partition to be used as a swap partition.
2267 </para>
2268
2269 <para>
2270 Options:
2271 </para>
2272
2273 <para>
2274 <screen>
2275 -c Check for read-ability.
2276 -v0 Make version 0 swap [max 128 Megs].
2277 -v1 Make version 1 swap [big!] (default for kernels &gt; 2.1.117).
2278 BLOCKS Number of block to use (default is entire partition).
2279 </screen>
2280 </para>
2281 </sect1>
2282
2283 <sect1 id="mktemp">
2284 <title>mktemp</title>
2285
2286 <para>
2287 Usage: mktemp TEMPLATE
2288 </para>
2289
2290 <para>
2291 Creates a temporary file with its name based on
Eric Andersen77d92682001-05-23 20:32:09 +00002292 TEMPLATE. TEMPLATE is any name with six `Xs' (i.e.,
Eric Andersenb9eb0232000-07-07 05:04:24 +00002293 /tmp/temp.XXXXXX).
2294 </para>
2295
2296 <para>
2297 Example:
2298 </para>
2299
2300 <para>
2301 <screen>
2302 $ mktemp /tmp/temp.XXXXXX
2303 /tmp/temp.mWiLjM
2304 $ ls -la /tmp/temp.mWiLjM
2305 -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM
2306 </screen>
2307 </para>
2308 </sect1>
2309
2310 <sect1 id="more">
2311 <title>more</title>
2312
2313 <para>
2314 Usage: more [FILE]...
2315 </para>
2316
2317 <para>
2318 Page through text one screenful at a time.
2319 </para>
2320
2321 <para>
2322 Example:
2323 </para>
2324
2325 <para>
2326 <screen>
2327 $ dmesg | more
2328 </screen>
2329 </para>
2330 </sect1>
2331
2332 <sect1 id="mount">
2333 <title>mount</title>
2334
2335 <para>
2336 Usage: mount [OPTION]...
2337 </para>
2338
2339 <para>
2340 <screen>
2341 or: mount [OPTION]... DEVICE DIRECTORY
2342 </screen>
2343 </para>
2344
2345 <para>
2346 Mount filesystems.
2347 </para>
2348
2349 <para>
2350 Options:
2351 </para>
2352
2353 <para>
2354 <screen>
2355 -a Mount all filesystems in /etc/fstab
2356 -o One of the many filesystem options listed below
2357 -r Mount the filesystem read-only
2358 -t TYPE Specify the filesystem type
2359 -w Mount the filesystem read-write
2360 </screen>
2361 </para>
2362
2363 <para>
2364 Options for use with the -o flag:
2365 </para>
2366
2367 <para>
2368 <screen>
2369 async/sync Writes are asynchronous / synchronous
2370 atime/noatime Enable / disable updates to inode access times
2371 dev/nodev Allow / disallow use of special device files
2372 exec/noexec Allow / disallow use of executable files
2373 loop Mount a file via loop device
2374 suid/nosuid Allow / disallow set-user-id-root programs
2375 remount Remount a currently mounted filesystem
2376 ro/rw Mount filesystem read-only / read-write
2377 </screen>
2378 </para>
2379
2380 <para>
2381 There are even more flags that are filesystem specific.
2382 You'll have to see the written documentation for those.
2383 </para>
2384
2385 <para>
2386 Example:
2387 </para>
2388
2389 <para>
2390 <screen>
2391 $ mount
2392 /dev/hda3 on / type minix (rw)
2393 proc on /proc type proc (rw)
2394 devpts on /dev/pts type devpts (rw)
2395 $ mount /dev/fd0 /mnt -t msdos -o ro
2396 $ mount /tmp/diskimage /opt -t ext2 -o loop
2397 </screen>
2398 </para>
2399 </sect1>
2400
2401 <sect1 id="mt">
2402 <title>mt</title>
2403
2404 <para>
2405 Usage: mt [OPTION] OPCODE VALUE
2406 </para>
2407
2408 <para>
2409 Control magnetic tape drive operation.
2410 </para>
2411
2412 <para>
2413 Options:
2414 </para>
2415
2416 <para>
2417 <screen>
2418 -f DEVICE Control DEVICE
2419 </screen>
2420 </para>
2421 </sect1>
2422
2423 <sect1 id="mv">
2424 <title>mv</title>
2425
2426 <para>
2427 Usage: mv SOURCE DEST
2428 </para>
2429
2430 <para>
2431 <screen>
2432 or: mv SOURCE... DIRECTORY
2433 </screen>
2434 </para>
2435
2436 <para>
2437 Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
2438 </para>
2439
2440 <para>
2441 Example:
2442 </para>
2443
2444 <para>
2445 <screen>
2446 $ mv /tmp/foo /bin/bar
2447 </screen>
2448 </para>
2449 </sect1>
2450
2451 <sect1 id="nc">
2452 <title>nc</title>
2453
2454 <para>
2455 Usage: nc HOST PORT
2456 </para>
2457
2458 <para>
Matt Kraai1d702672001-02-07 04:09:23 +00002459 or: nc -p PORT -l
2460 </para>
2461
2462
2463 <para>
2464 Open a pipe to HOST:PORT or listen for a connection on PORT.
Eric Andersenb9eb0232000-07-07 05:04:24 +00002465 </para>
2466
2467 <para>
2468 Example:
2469 </para>
2470
2471 <para>
2472 <screen>
2473 $ nc foobar.somedomain.com 25
2474 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600
2475 help
2476 214-Commands supported:
2477 214- HELO EHLO MAIL RCPT DATA AUTH
2478 214 NOOP QUIT RSET HELP
2479 quit
2480 221 foobar closing connection
2481 </screen>
2482 </para>
2483 </sect1>
2484
2485 <sect1 id="nslookup">
2486 <title>nslookup</title>
2487
2488 <para>
2489 Usage: nslookup [HOST]
2490 </para>
2491
2492 <para>
2493 Query the nameserver for the IP address of the given
2494 HOST.
2495 </para>
2496
2497 <para>
2498 Example:
2499 </para>
2500
2501 <para>
2502 <screen>
2503 $ nslookup localhost
2504 Server: default
2505 Address: default
2506
2507 Name: debian
2508 Address: 127.0.0.1
2509 </screen>
2510 </para>
2511 </sect1>
2512
2513 <sect1 id="ping">
2514 <title>ping</title>
2515
2516 <para>
2517 Usage: ping [OPTION]... HOST
2518 </para>
2519
2520 <para>
2521 Send ICMP ECHO_REQUEST packets to HOST.
2522 </para>
2523
2524 <para>
2525 Options:
2526 </para>
2527
2528 <para>
2529 <screen>
2530 -c COUNT Send only COUNT pings
2531 -s SIZE Send SIZE data bytes in packets (default=56)
2532 -q Quiet mode, only displays output at start and when finished
2533 </screen>
2534 </para>
2535
2536 <para>
2537 Example:
2538 </para>
2539
2540 <para>
2541 <screen>
2542 $ ping localhost
2543 PING slag (127.0.0.1): 56 data bytes
2544 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
2545
2546 --- debian ping statistics ---
2547 1 packets transmitted, 1 packets received, 0% packet loss
2548 round-trip min/avg/max = 20.1/20.1/20.1 ms
2549 </screen>
2550 </para>
2551 </sect1>
2552
2553 <sect1 id="poweroff">
2554 <title>poweroff</title>
2555
2556 <para>
2557 Usage: poweroff
2558 </para>
2559
2560 <para>
2561 Shut down the system, and request that the kernel turn
2562 off power upon halting.
2563 </para>
2564 </sect1>
2565
2566 <sect1 id="printf">
2567 <title>printf</title>
2568
2569 <para>
2570 Usage: printf FORMAT [ARGUMENT]...
2571 </para>
2572
2573 <para>
2574 Format and print the given data in a manner similar to
2575 the C printf command.
2576 </para>
2577
2578 <para>
2579 Example:
2580 </para>
2581
2582 <para>
2583 <screen>
2584 $ printf "Val=%d\n" 5
2585 Val=5
2586 </screen>
2587 </para>
2588 </sect1>
2589
Eric Andersen21580922000-07-07 19:07:47 +00002590 <sect1 id="ps">
2591 <title>ps</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002592
Eric Andersen21580922000-07-07 19:07:47 +00002593 <para>
2594 Usage: ps
2595 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002596
Eric Andersen21580922000-07-07 19:07:47 +00002597 <para>
2598 Report process status. This version of ps accepts no
2599 options.
2600 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002601
Eric Andersen21580922000-07-07 19:07:47 +00002602 <para>
2603 Options:
2604 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002605
Eric Andersen21580922000-07-07 19:07:47 +00002606 <para>
2607 <screen>
2608 </screen>
2609 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002610
Eric Andersen21580922000-07-07 19:07:47 +00002611 <para>
2612 Example:
2613 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002614
Eric Andersen21580922000-07-07 19:07:47 +00002615 <para>
2616 <screen>
2617 $ ps
2618 PID Uid Gid State Command
2619 1 root root S init
2620 2 root root S [kflushd]
2621 3 root root S [kupdate]
2622 4 root root S [kpiod]
2623 5 root root S [kswapd]
2624 742 andersen andersen S [bash]
2625 743 andersen andersen S -bash
2626 745 root root S [getty]
2627 2990 andersen andersen R ps
2628 </screen>
2629 </para>
2630 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002631
Eric Andersen21580922000-07-07 19:07:47 +00002632 <sect1 id="pwd">
2633 <title>pwd</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002634
Eric Andersen21580922000-07-07 19:07:47 +00002635 <para>
2636 Usage: pwd
2637 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002638
Eric Andersen21580922000-07-07 19:07:47 +00002639 <para>
2640 Print the full filename of the current working
2641 directory.
2642 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002643
Eric Andersen21580922000-07-07 19:07:47 +00002644 <para>
2645 Example:
2646 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002647
Eric Andersen21580922000-07-07 19:07:47 +00002648 <para>
2649 <screen>
2650 $ pwd
2651 /root
2652 </screen>
2653 </para>
2654 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002655
Eric Andersen918507e2000-08-21 22:46:33 +00002656 <sect1 id="rdate">
2657 <title>rdate</title>
2658
2659 <para>
2660 Usage: rdate [OPTION] HOST
2661 </para>
2662
2663 <para>
2664 Get and possibly set the system date and time from a remote HOST.
2665 </para>
2666
2667 <para>
2668 Options:
2669 </para>
2670
2671 <para>
2672 <screen>
2673 -s Set the system date and time (default).
2674 -p Print the date and time.
2675 </screen>
2676 </para>
2677 </sect1>
2678
Eric Andersen21580922000-07-07 19:07:47 +00002679 <sect1 id="reboot">
2680 <title>reboot</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002681
Eric Andersen21580922000-07-07 19:07:47 +00002682 <para>
2683 Usage: reboot
2684 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002685
Eric Andersen21580922000-07-07 19:07:47 +00002686 <para>
2687 Reboot the system.
2688 </para>
2689 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002690
Eric Andersenbf960f52000-07-21 21:32:12 +00002691 <sect1 id="renice">
2692 <title>renice</title>
2693
2694 <para>
2695 Usage: renice priority pid [pid ...]
2696 </para>
2697
2698 <para>
2699 Changes priority of running processes. Allowed priorities range
2700 from 20 (the process runs only when nothing else is running) to 0
2701 (default priority) to -20 (almost nothing else ever gets to run).
2702 </para>
2703 </sect1>
2704
Eric Andersenfa405d02000-08-21 21:18:52 +00002705 <sect1 id="reset">
2706 <title>reset</title>
2707
2708 <para>
2709 Usage: reset
2710 </para>
2711
2712 <para>
2713 Resets the screen.
2714 </para>
2715 </sect1>
2716
Eric Andersen21580922000-07-07 19:07:47 +00002717 <sect1 id="rm">
2718 <title>rm</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002719
Eric Andersen21580922000-07-07 19:07:47 +00002720 <para>
2721 Usage: rm [OPTION]... FILE...
2722 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002723
Eric Andersen21580922000-07-07 19:07:47 +00002724 <para>
2725 Remove (unlink) the FILE(s). You may use '--' to
2726 indicate that all following arguments are non-options.
2727 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002728
Eric Andersen21580922000-07-07 19:07:47 +00002729 <para>
2730 Options:
2731 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002732
Eric Andersen21580922000-07-07 19:07:47 +00002733 <para>
2734 <screen>
Mark Whitleye0bf91d2001-03-13 00:40:19 +00002735 -i Always prompt before removing each destinations
Eric Andersen21580922000-07-07 19:07:47 +00002736 -f Remove existing destinations, never prompt
2737 -r or -R Remove the contents of directories recursively
2738 </screen>
2739 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002740
Eric Andersen21580922000-07-07 19:07:47 +00002741 <para>
2742 Example:
2743 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002744
Eric Andersen21580922000-07-07 19:07:47 +00002745 <para>
2746 <screen>
2747 $ rm -rf /tmp/foo
2748 </screen>
2749 </para>
2750 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002751
Eric Andersen21580922000-07-07 19:07:47 +00002752 <sect1 id="rmdir">
2753 <title>rmdir</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002754
Eric Andersen21580922000-07-07 19:07:47 +00002755 <para>
2756 Usage: rmdir DIRECTORY...
2757 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002758
Eric Andersen21580922000-07-07 19:07:47 +00002759 <para>
2760 Remove DIRECTORY(s) if they are empty.
2761 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002762
Eric Andersen21580922000-07-07 19:07:47 +00002763 <para>
2764 Example:
2765 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002766
Eric Andersen21580922000-07-07 19:07:47 +00002767 <para>
2768 <screen>
2769 $ rmdir /tmp/foo
2770 </screen>
2771 </para>
2772 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002773
Eric Andersen21580922000-07-07 19:07:47 +00002774 <sect1 id="rmmod">
2775 <title>rmmod</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002776
Eric Andersen21580922000-07-07 19:07:47 +00002777 <para>
2778 Usage: rmmod [OPTION]... [MODULE]...
2779 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002780
Eric Andersen21580922000-07-07 19:07:47 +00002781 <para>
2782 Unload MODULE(s) from the kernel.
2783 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002784
Eric Andersen21580922000-07-07 19:07:47 +00002785 <para>
2786 Options:
2787 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002788
Eric Andersen21580922000-07-07 19:07:47 +00002789 <para>
2790 <screen>
Tim Rikercf932742002-12-14 01:58:59 +00002791 -a Remove all unused modules (recursively)
Eric Andersen21580922000-07-07 19:07:47 +00002792 </screen>
2793 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002794
Eric Andersen21580922000-07-07 19:07:47 +00002795 <para>
2796 Example:
2797 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002798
Eric Andersen21580922000-07-07 19:07:47 +00002799 <para>
2800 <screen>
2801 $ rmmod tulip
2802 </screen>
2803 </para>
2804 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002805
Eric Andersen6cf47a72001-10-31 10:24:36 +00002806 <sect1 id="run-parts">
2807 <title>run-parts</title>
2808
2809 <para>
2810 Usage: run-parts [-t] [-a ARG] [-u MASK] DIRECTORY
2811 </para>
2812
2813 <para>
2814 Run a bunch of scripts in a directory.
2815 </para>
2816
2817 <para>
2818 Options:
2819 </para>
2820
2821 <para>
2822 <screen>
2823 -t Test only. It only print the file to be executed,
2824 without execute them.
2825 -a ARG Pass ARG as an a argument to the programs executed.
2826 -u MASK Set the umask to MASK before executing the programs.
2827 </screen>
2828 </para>
2829 </sect1>
2830
2831
2832
Eric Andersen21580922000-07-07 19:07:47 +00002833 <sect1 id="sed">
2834 <title>sed</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002835
Eric Andersen21580922000-07-07 19:07:47 +00002836 <para>
2837 Usage: sed [OPTION]... SCRIPT [FILE]...
2838 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002839
Eric Andersen21580922000-07-07 19:07:47 +00002840 <para>
2841 Allowed sed scripts come in the following form:
2842 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002843
Eric Andersen21580922000-07-07 19:07:47 +00002844 <para>
2845 <screen>
2846 ADDR [!] COMMAND
2847 </screen>
2848 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002849
Eric Andersen21580922000-07-07 19:07:47 +00002850 <para>
2851 ADDR can be:
2852 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002853
Eric Andersen21580922000-07-07 19:07:47 +00002854 <para>
2855 <screen>
2856 NUMBER Match specified line number
2857 $ Match last line
2858 /REGEXP/ Match specified regexp
2859 </screen>
2860 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002861
Eric Andersen21580922000-07-07 19:07:47 +00002862 <para>
2863 ! inverts the meaning of the match
2864 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002865
Eric Andersen21580922000-07-07 19:07:47 +00002866 <para>
2867 COMMAND can be:
2868 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002869
Eric Andersen21580922000-07-07 19:07:47 +00002870 <para>
2871 <screen>
2872 s/regexp/replacement/[igp]
2873 which attempt to match regexp against the pattern space
2874 and if successful replaces the matched portion with replacement.
2875 aTEXT
2876 which appends TEXT after the pattern space
2877 </screen>
2878 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002879
Eric Andersen21580922000-07-07 19:07:47 +00002880 <para>
2881 This version of sed matches full regular expressions.
2882 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002883
Eric Andersen21580922000-07-07 19:07:47 +00002884 <para>
2885 Options:
2886 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002887
Eric Andersen21580922000-07-07 19:07:47 +00002888 <para>
2889 <screen>
2890 -e Add the script to the commands to be executed
2891 -n Suppress automatic printing of pattern space
2892 </screen>
2893 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002894
Eric Andersen21580922000-07-07 19:07:47 +00002895 <para>
2896 Example:
2897 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002898
Eric Andersen21580922000-07-07 19:07:47 +00002899 <para>
2900 <screen>
2901 $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g'
2902 bar
2903 </screen>
2904 </para>
2905 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002906
Eric Andersen21580922000-07-07 19:07:47 +00002907 <sect1 id="setkeycodes">
2908 <title>setkeycodes</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002909
Eric Andersen21580922000-07-07 19:07:47 +00002910 <para>
2911 Usage: setkeycodes SCANCODE KEYCODE ...
2912 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002913
Eric Andersen21580922000-07-07 19:07:47 +00002914 <para>
2915 Set entries into the kernel's scancode-to-keycode map,
2916 allowing unusual keyboards to generate usable keycodes.
2917 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002918
Eric Andersen21580922000-07-07 19:07:47 +00002919 <para>
2920 SCANCODE may be either xx or e0xx (hexadecimal), and
2921 KEYCODE is given in decimal.
2922 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002923
Eric Andersen21580922000-07-07 19:07:47 +00002924 <para>
2925 Example:
2926 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002927
Eric Andersen21580922000-07-07 19:07:47 +00002928 <para>
2929 <screen>
2930 $ setkeycodes e030 127
2931 </screen>
2932 </para>
2933 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002934
Mark Whitley83a949c2000-06-26 13:31:53 +00002935
Eric Andersen21580922000-07-07 19:07:47 +00002936 <sect1 id="sh">
2937 <title>sh</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002938
Eric Andersen21580922000-07-07 19:07:47 +00002939 <para>
2940 Usage: sh
2941 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002942
Eric Andersen21580922000-07-07 19:07:47 +00002943 <para>
2944 lash -- the BusyBox LAme SHell (command interpreter)
2945 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002946
Eric Andersen21580922000-07-07 19:07:47 +00002947 <para>
2948 This command does not yet have proper documentation.
2949 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002950
Eric Andersen21580922000-07-07 19:07:47 +00002951 <para>
2952 Use lash just as you would use any other shell. It
2953 properly handles pipes, redirects, job control, can be
2954 used as the shell for scripts (#!/bin/sh), and has a
2955 sufficient set of builtins to do what is needed. It does
2956 not (yet) support Bourne Shell syntax. If you need
2957 things like ``if-then-else'', ``while'', and such, use
2958 ash or bash. If you just need a very simple and
2959 extremely small shell, this will do the job.
2960 </para>
2961 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002962
Eric Andersen21580922000-07-07 19:07:47 +00002963 <sect1 id="sleep">
2964 <title>sleep</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002965
Eric Andersen21580922000-07-07 19:07:47 +00002966 <para>
2967 Usage: sleep N
2968 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002969
Eric Andersen21580922000-07-07 19:07:47 +00002970 <para>
2971 Pause for N seconds.
2972 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002973
Eric Andersen21580922000-07-07 19:07:47 +00002974 <para>
2975 Example:
2976 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002977
Eric Andersen21580922000-07-07 19:07:47 +00002978 <para>
2979 <screen>
2980 $ sleep 2
2981 [2 second delay results]
2982 </screen>
2983 </para>
2984 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00002985
Eric Andersen21580922000-07-07 19:07:47 +00002986 <sect1 id="sort">
2987 <title>sort</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00002988
Eric Andersen21580922000-07-07 19:07:47 +00002989 <para>
2990 Usage: sort [OPTION]... [FILE]...
2991 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002992
Eric Andersen21580922000-07-07 19:07:47 +00002993 <para>
2994 Sort lines of text in FILE(s).
2995 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00002996
Eric Andersen21580922000-07-07 19:07:47 +00002997 <para>
2998 Options:
2999 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003000
Eric Andersen21580922000-07-07 19:07:47 +00003001 <para>
3002 <screen>
3003 -n Compare numerically
3004 -r Reverse after sorting
3005 </screen>
3006 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003007
Eric Andersen21580922000-07-07 19:07:47 +00003008 <para>
3009 Example:
3010 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003011
Eric Andersen21580922000-07-07 19:07:47 +00003012 <para>
3013 <screen>
3014 $ echo -e "e\nf\nb\nd\nc\na" | sort
3015 a
3016 b
3017 c
3018 d
3019 e
3020 f
3021 </screen>
3022 </para>
3023 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003024
Eric Andersen21580922000-07-07 19:07:47 +00003025 <sect1 id="swapoff">
3026 <title>swapoff</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003027
Eric Andersen21580922000-07-07 19:07:47 +00003028 <para>
3029 Usage: swapoff [OPTION] [DEVICE]
3030 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003031
Eric Andersen21580922000-07-07 19:07:47 +00003032 <para>
3033 Stop swapping virtual memory pages on DEVICE.
3034 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003035
Eric Andersen21580922000-07-07 19:07:47 +00003036 <para>
3037 Options:
3038 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003039
Eric Andersen21580922000-07-07 19:07:47 +00003040 <para>
3041 <screen>
3042 -a Stop swapping on all swap devices
3043 </screen>
3044 </para>
3045 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003046
Eric Andersen21580922000-07-07 19:07:47 +00003047 <sect1 id="swapon">
3048 <title>swapon</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003049
Eric Andersen21580922000-07-07 19:07:47 +00003050 <para>
3051 Usage: swapon [OPTION] [DEVICE]
3052 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003053
Eric Andersen21580922000-07-07 19:07:47 +00003054 <para>
3055 Start swapping virtual memory pages on the given device.
3056 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003057
Eric Andersen21580922000-07-07 19:07:47 +00003058 <para>
3059 Options:
3060 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003061
Eric Andersen21580922000-07-07 19:07:47 +00003062 <para>
3063 <screen>
3064 -a Start swapping on all swap devices
3065 </screen>
3066 </para>
3067 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003068
Eric Andersen21580922000-07-07 19:07:47 +00003069 <sect1 id="sync">
3070 <title>sync</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003071
Eric Andersen21580922000-07-07 19:07:47 +00003072 <para>
3073 Usage: sync
3074 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003075
Eric Andersen21580922000-07-07 19:07:47 +00003076 <para>
3077 Write all buffered filesystem blocks to disk.
3078 </para>
3079 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003080
Eric Andersen21580922000-07-07 19:07:47 +00003081 <sect1 id="syslogd">
3082 <title>syslogd</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003083
Eric Andersen21580922000-07-07 19:07:47 +00003084 <para>
3085 Usage: syslogd [OPTION]...
3086 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003087
Eric Andersen21580922000-07-07 19:07:47 +00003088 <para>
3089 Linux system and kernel (provides klogd) logging
3090 utility. Note that this version of syslogd/klogd ignores
3091 /etc/syslog.conf.
3092 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003093
Eric Andersen21580922000-07-07 19:07:47 +00003094 <para>
3095 Options:
3096 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003097
Eric Andersen21580922000-07-07 19:07:47 +00003098 <para>
3099 <screen>
3100 -m NUM Interval between MARK lines (default=20min, 0=off)
3101 -n Run as a foreground process
3102 -K Do not start up the klogd process
3103 -O FILE Use an alternate log file (default=/var/log/messages)
Eric Andersen70d09ed2000-12-11 16:24:16 +00003104 -R HOST[:PORT] Log remotely to IP or hostname on PORT (default PORT=514/UDP)
Eric Andersen20c2bdd2000-12-11 19:39:25 +00003105 -L Log locally as well as network logging (default is network only)
Robert Griebl2ab6ff92002-08-07 21:24:33 +00003106 -C Log to a circular buffer. Read this buffer using 'logread'
Eric Andersen21580922000-07-07 19:07:47 +00003107 </screen>
3108 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003109
Eric Andersen21580922000-07-07 19:07:47 +00003110 <para>
3111 Example:
3112 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003113
Eric Andersen21580922000-07-07 19:07:47 +00003114 <para>
3115 <screen>
Eric Andersenced2cef2000-07-20 23:41:24 +00003116 $ syslogd -R masterlog:514
3117 $ syslogd -R 192.168.1.1:601
Eric Andersen21580922000-07-07 19:07:47 +00003118 </screen>
3119 </para>
3120 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003121
Eric Andersen21580922000-07-07 19:07:47 +00003122 <sect1 id="tail">
3123 <title>tail</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003124
Eric Andersen21580922000-07-07 19:07:47 +00003125 <para>
3126 Usage: tail [OPTION] [FILE]...
3127 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003128
Eric Andersen21580922000-07-07 19:07:47 +00003129 <para>
3130 Print last 10 lines of each FILE to standard output.
3131 With more than one FILE, precede each with a header
3132 giving the file name. With no FILE, or when FILE is -,
3133 read stdin.
3134 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003135
Eric Andersen21580922000-07-07 19:07:47 +00003136 <para>
3137 Options:
3138 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003139
Eric Andersen21580922000-07-07 19:07:47 +00003140 <para>
3141 <screen>
3142 -n NUM Print last NUM lines instead of last 10
3143 -f Output data as the file grows. This version
3144 of 'tail -f' supports only one file at a time.
3145 </screen>
3146 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003147
Eric Andersen21580922000-07-07 19:07:47 +00003148 <para>
3149 Example:
3150 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003151
Eric Andersen21580922000-07-07 19:07:47 +00003152 <para>
3153 <screen>
3154 $ tail -n 1 /etc/resolv.conf
3155 nameserver 10.0.0.1
3156 </screen>
3157 </para>
3158 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003159
Eric Andersen21580922000-07-07 19:07:47 +00003160 <sect1 id="tar">
3161 <title>tar</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003162
Eric Andersen21580922000-07-07 19:07:47 +00003163 <para>
3164 Usage: tar [MODE] [OPTION] [FILE]...
3165 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003166
Eric Andersen21580922000-07-07 19:07:47 +00003167 <para>
3168
3169 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003170
Eric Andersen21580922000-07-07 19:07:47 +00003171 <para>
3172 MODE may be chosen from
3173 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003174
Eric Andersen21580922000-07-07 19:07:47 +00003175 <para>
3176 <screen>
3177 c Create
3178 x Extract
3179 t List
3180 </screen>
3181 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003182
Eric Andersen21580922000-07-07 19:07:47 +00003183 <para>
3184 Options:
3185 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003186
Eric Andersen21580922000-07-07 19:07:47 +00003187 <para>
3188 <screen>
Eric Andersenfdd51032000-08-02 18:48:26 +00003189 f FILE Use FILE for tarfile (or stdin if '-')
3190 O Extract to stdout
3191 exclude FILE File to exclude
3192 v List files processed
Eric Andersen21580922000-07-07 19:07:47 +00003193 </screen>
3194 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003195
Eric Andersen21580922000-07-07 19:07:47 +00003196 <para>
3197 Example:
3198 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003199
Eric Andersen21580922000-07-07 19:07:47 +00003200 <para>
3201 <screen>
3202 $ zcat /tmp/tarball.tar.gz | tar -xf -
3203 $ tar -cf /tmp/tarball.tar /usr/local
3204 </screen>
3205 </para>
3206 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003207
Eric Andersen21580922000-07-07 19:07:47 +00003208 <sect1 id="tee">
3209 <title>tee</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003210
Eric Andersen21580922000-07-07 19:07:47 +00003211 <para>
3212 Usage: tee [OPTION]... [FILE]...
3213 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003214
Eric Andersen21580922000-07-07 19:07:47 +00003215 <para>
3216 Copy stdin to FILE(s), and also to stdout.
3217 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003218
Eric Andersen21580922000-07-07 19:07:47 +00003219 <para>
3220 Options:
3221 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003222
Eric Andersen21580922000-07-07 19:07:47 +00003223 <para>
3224 <screen>
3225 -a Append to the given FILEs, do not overwrite
3226 </screen>
3227 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003228
Eric Andersen21580922000-07-07 19:07:47 +00003229 <para>
3230 Example:
3231 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003232
Eric Andersen21580922000-07-07 19:07:47 +00003233 <para>
3234 <screen>
3235 $ echo "Hello" | tee /tmp/foo
3236 Hello
3237 $ cat /tmp/foo
3238 Hello
3239 </screen>
3240 </para>
3241 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003242
Eric Andersen21580922000-07-07 19:07:47 +00003243 <sect1 id="telnet">
3244 <title>telnet</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003245
Eric Andersen21580922000-07-07 19:07:47 +00003246 <para>
3247 Usage: telnet HOST [PORT]
3248 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003249
Eric Andersen21580922000-07-07 19:07:47 +00003250 <para>
3251 Establish interactive communication with another
3252 computer over a network using the TELNET protocol.
3253 </para>
3254 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003255
Eric Andersen21580922000-07-07 19:07:47 +00003256 <sect1 id="test">
3257 <title>test, [</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003258
Eric Andersen21580922000-07-07 19:07:47 +00003259 <para>
3260 Usage: test EXPRESSION
3261 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003262
Eric Andersen21580922000-07-07 19:07:47 +00003263 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003264 or: [ EXPRESSION ]
Pavel Roskind2d3aa32000-09-15 17:16:40 +00003265 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003266
Eric Andersen21580922000-07-07 19:07:47 +00003267 <para>
3268 Check file types and compare values returning an exit
3269 code determined by the value of EXPRESSION.
3270 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003271
Eric Andersen21580922000-07-07 19:07:47 +00003272 <para>
3273 Example:
3274 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003275
Eric Andersen21580922000-07-07 19:07:47 +00003276 <para>
3277 <screen>
3278 $ test 1 -eq 2
3279 $ echo $?
3280 1
3281 $ test 1 -eq 1
3282 $ echo $?
3283 0
3284 $ [ -d /etc ]
3285 $ echo $?
3286 0
3287 $ [ -d /junk ]
3288 $ echo $?
3289 1
3290 </screen>
3291 </para>
3292 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003293
Eric Andersen21580922000-07-07 19:07:47 +00003294 <sect1 id="touch">
3295 <title>touch</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003296
Eric Andersen21580922000-07-07 19:07:47 +00003297 <para>
3298 Usage: touch [OPTION]... FILE...
3299 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003300
Eric Andersen21580922000-07-07 19:07:47 +00003301 <para>
3302 Update the last-modified date on (or create) FILE(s).
3303 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003304
Eric Andersen21580922000-07-07 19:07:47 +00003305 <para>
3306 Options:
3307 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003308
Eric Andersen21580922000-07-07 19:07:47 +00003309 <para>
3310 <screen>
3311 -c Do not create files
3312 </screen>
3313 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003314
Eric Andersen21580922000-07-07 19:07:47 +00003315 <para>
3316 Example:
3317 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003318
Eric Andersen21580922000-07-07 19:07:47 +00003319 <para>
3320 <screen>
3321 $ ls -l /tmp/foo
3322 /bin/ls: /tmp/foo: No such file or directory
3323 $ touch /tmp/foo
3324 $ ls -l /tmp/foo
3325 -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo
3326 </screen>
3327 </para>
3328 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003329
Eric Andersen21580922000-07-07 19:07:47 +00003330 <sect1 id="tr">
3331 <title>tr</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003332
Eric Andersen21580922000-07-07 19:07:47 +00003333 <para>
3334 Usage: tr [OPTION]... STRING1 [STRING2]
3335 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003336
Eric Andersen21580922000-07-07 19:07:47 +00003337 <para>
3338 Translate, squeeze, and/or delete characters from stdin,
3339 writing to stdout.
3340 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003341
Eric Andersen21580922000-07-07 19:07:47 +00003342 <para>
3343 Options:
3344 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003345
Eric Andersen21580922000-07-07 19:07:47 +00003346 <para>
3347 <screen>
3348 -c Take complement of STRING1
3349 -d Delete input characters coded STRING1
3350 -s Squeeze multiple output characters of STRING2 into one character
3351 </screen>
3352 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003353
Eric Andersen21580922000-07-07 19:07:47 +00003354 <para>
3355 Example:
3356 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003357
Eric Andersen21580922000-07-07 19:07:47 +00003358 <para>
3359 <screen>
3360 $ echo "gdkkn vnqkc" | tr [a-y] [b-z]
3361 hello world
3362 </screen>
3363 </para>
3364 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003365
Eric Andersen21580922000-07-07 19:07:47 +00003366 <sect1 id="true">
3367 <title>true</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003368
Eric Andersen21580922000-07-07 19:07:47 +00003369 <para>
3370 Usage: true
3371 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003372
Eric Andersen21580922000-07-07 19:07:47 +00003373 <para>
3374 Return an exit code of TRUE (1).
3375 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003376
Eric Andersen21580922000-07-07 19:07:47 +00003377 <para>
3378 Example:
3379 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003380
Eric Andersen21580922000-07-07 19:07:47 +00003381 <para>
3382 <screen>
3383 $ true
3384 $ echo $?
3385 0
3386 </screen>
3387 </para>
3388 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003389
Eric Andersen21580922000-07-07 19:07:47 +00003390 <sect1 id="tty">
3391 <title>tty</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003392
Eric Andersen21580922000-07-07 19:07:47 +00003393 <para>
3394 Usage: tty
3395 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003396
Eric Andersen21580922000-07-07 19:07:47 +00003397 <para>
3398 Print the file name of the terminal connected to stdin.
3399 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003400
Eric Andersen21580922000-07-07 19:07:47 +00003401 <para>
3402 Options:
3403 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003404
Eric Andersen21580922000-07-07 19:07:47 +00003405 <para>
3406 <screen>
3407 -s Print nothing, only return an exit status
3408 </screen>
3409 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003410
Eric Andersen21580922000-07-07 19:07:47 +00003411 <para>
3412 Example:
3413 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003414
Eric Andersen21580922000-07-07 19:07:47 +00003415 <para>
3416 <screen>
3417 $ tty
3418 /dev/tty2
3419 </screen>
3420 </para>
3421 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003422
Eric Andersen21580922000-07-07 19:07:47 +00003423 <sect1 id="umount">
3424 <title>umount</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003425
Eric Andersen21580922000-07-07 19:07:47 +00003426 <para>
3427 Usage: umount [OPTION]... DEVICE|DIRECTORY
3428 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003429
Eric Andersen21580922000-07-07 19:07:47 +00003430 <para>
3431
3432 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003433
Eric Andersen21580922000-07-07 19:07:47 +00003434 <para>
3435 Options:
3436 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003437
Eric Andersen21580922000-07-07 19:07:47 +00003438 <para>
3439 <screen>
3440 -a Unmount all file systems
3441 -r Try to remount devices as read-only if mount is busy
Eric Andersen77d92682001-05-23 20:32:09 +00003442 -f Force filesystem umount (i.e., unreachable NFS server)
Eric Andersen21580922000-07-07 19:07:47 +00003443 -l Do not free loop device (if a loop device has been used)
3444 </screen>
3445 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003446
Eric Andersen21580922000-07-07 19:07:47 +00003447 <para>
3448 Example:
3449 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003450
Eric Andersen21580922000-07-07 19:07:47 +00003451 <para>
3452 <screen>
3453 $ umount /dev/hdc1
3454 </screen>
3455 </para>
3456 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003457
Eric Andersen21580922000-07-07 19:07:47 +00003458 <sect1 id="uname">
3459 <title>uname</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003460
Eric Andersen21580922000-07-07 19:07:47 +00003461 <para>
3462 Usage: uname [OPTION]...
3463 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003464
Eric Andersen21580922000-07-07 19:07:47 +00003465 <para>
3466 Print certain system information. With no OPTION, same
3467 as -s.
3468 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003469
Eric Andersen21580922000-07-07 19:07:47 +00003470 <para>
3471 Options:
3472 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003473
Eric Andersen21580922000-07-07 19:07:47 +00003474 <para>
3475 <screen>
3476 -a Print all information
3477 -m Print the machine (hardware) type
3478 -n Print the machine's network node hostname
3479 -r Print the operating system release
3480 -s Print the operating system name
3481 -p Print the host processor type
3482 -v Print the operating system version
3483 </screen>
3484 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003485
Eric Andersen21580922000-07-07 19:07:47 +00003486 <para>
3487 Example:
3488 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003489
Eric Andersen21580922000-07-07 19:07:47 +00003490 <para>
3491 <screen>
3492 $ uname -a
3493 Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
3494 </screen>
3495 </para>
3496 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003497
Eric Andersen21580922000-07-07 19:07:47 +00003498 <sect1 id="uniq">
3499 <title>uniq</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003500
Eric Andersen21580922000-07-07 19:07:47 +00003501 <para>
3502 Usage: uniq [INPUT [OUTPUT]]
3503 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003504
Eric Andersen21580922000-07-07 19:07:47 +00003505 <para>
3506 Discard all but one of successive identical lines from
3507 INPUT (or stdin), writing to OUTPUT (or stdout).
3508 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003509
Eric Andersen21580922000-07-07 19:07:47 +00003510 <para>
Eric Andersen5b5db382000-12-09 16:37:53 +00003511 Options:
3512 </para>
3513
3514 <para>
3515 <screen>
3516 -c prefix lines by the number of occurrences
3517 -d only print duplicate lines
3518 -u only print unique lines
3519 </screen>
3520 </para>
3521
3522 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003523 Example:
3524 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003525
Eric Andersen21580922000-07-07 19:07:47 +00003526 <para>
3527 <screen>
3528 $ echo -e "a\na\nb\nc\nc\na" | sort | uniq
3529 a
3530 b
3531 c
3532 </screen>
3533 </para>
3534 </sect1>
Eric Andersencff3fe32000-09-20 19:22:26 +00003535
3536 <sect1 id="unix2dos">
3537 <title>unix2dos</title>
3538
3539 <para>
3540 Usage: unix2dos < unixfile > dosfile
3541 </para>
3542
3543 <para>
3544 Converts a text file from unix format to dos format.
3545 </para>
3546
3547 </sect1>
3548
3549 <sect1 id="unrpm">
Eric Andersen57f83ff2000-09-24 02:41:44 +00003550 <title>unrpm</title>
Eric Andersencff3fe32000-09-20 19:22:26 +00003551
3552 <para>
3553 Usage: unrpm < package.rpm | gzip -d | cpio -idmuv
3554 </para>
3555
3556 <para>
3557 Extracts an rpm archive.
3558 </para>
3559
3560 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003561
Eric Andersen21580922000-07-07 19:07:47 +00003562 <sect1 id="update">
3563 <title>update</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003564
Eric Andersen21580922000-07-07 19:07:47 +00003565 <para>
3566 Usage: update [OPTION]...
3567 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003568
Eric Andersen21580922000-07-07 19:07:47 +00003569 <para>
3570 Periodically flush filesystem buffers.
3571 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003572
Eric Andersen21580922000-07-07 19:07:47 +00003573 <para>
3574 Options:
3575 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003576
Eric Andersen21580922000-07-07 19:07:47 +00003577 <para>
3578 <screen>
3579 -S Force use of sync(2) instead of flushing
3580 -s SECS Call sync this often (default 30)
3581 -f SECS Flush some buffers this often (default 5)
3582 </screen>
3583 </para>
3584 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003585
Eric Andersen21580922000-07-07 19:07:47 +00003586 <sect1 id="uptime">
3587 <title>uptime</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003588
Eric Andersen21580922000-07-07 19:07:47 +00003589 <para>
3590 Usage: uptime
3591 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003592
Eric Andersen21580922000-07-07 19:07:47 +00003593 <para>
3594 Display how long the system has been running since boot.
3595 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003596
Eric Andersen21580922000-07-07 19:07:47 +00003597 <para>
3598 Example:
3599 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003600
Eric Andersen21580922000-07-07 19:07:47 +00003601 <para>
3602 <screen>
3603 $ uptime
3604 1:55pm up 2:30, load average: 0.09, 0.04, 0.00
3605 </screen>
3606 </para>
3607 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003608
Eric Andersen21580922000-07-07 19:07:47 +00003609 <sect1 id="usleep">
3610 <title>usleep</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003611
Eric Andersen21580922000-07-07 19:07:47 +00003612 <para>
3613 Usage: usleep N
3614 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003615
Eric Andersen21580922000-07-07 19:07:47 +00003616 <para>
3617 Pause for N microseconds.
3618 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003619
Eric Andersen21580922000-07-07 19:07:47 +00003620 <para>
3621 Example:
3622 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003623
Eric Andersen21580922000-07-07 19:07:47 +00003624 <para>
3625 <screen>
3626 $ usleep 1000000
3627 [pauses for 1 second]
3628 </screen>
3629 </para>
3630 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003631
Eric Andersen21580922000-07-07 19:07:47 +00003632 <sect1 id="uudecode">
3633 <title>uudecode</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003634
Eric Andersen21580922000-07-07 19:07:47 +00003635 <para>
3636 Usage: uudecode [OPTION] [FILE]
3637 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003638
Eric Andersen21580922000-07-07 19:07:47 +00003639 <para>
3640 Uudecode a uuencoded file.
3641 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003642
Eric Andersen21580922000-07-07 19:07:47 +00003643 <para>
3644 Options:
3645 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003646
Eric Andersen21580922000-07-07 19:07:47 +00003647 <para>
3648 <screen>
3649 -o FILE Direct output to FILE
3650 </screen>
3651 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003652
Eric Andersen21580922000-07-07 19:07:47 +00003653 <para>
3654 Example:
3655 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003656
Eric Andersen21580922000-07-07 19:07:47 +00003657 <para>
3658 <screen>
3659 $ uudecode -o busybox busybox.uu
3660 $ ls -l busybox
3661 -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox
3662 </screen>
3663 </para>
3664 </sect1>
Eric Andersen028fb622000-07-04 20:07:13 +00003665
Eric Andersen21580922000-07-07 19:07:47 +00003666 <sect1 id="uuencode">
3667 <title>uuencode</title>
Eric Andersen028fb622000-07-04 20:07:13 +00003668
Eric Andersen21580922000-07-07 19:07:47 +00003669 <para>
3670 Usage: uuencode [OPTION] [INFILE] OUTFILE
3671 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003672
Eric Andersen21580922000-07-07 19:07:47 +00003673 <para>
3674 Uuencode a file.
3675 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003676
Eric Andersen21580922000-07-07 19:07:47 +00003677 <para>
3678 Options:
3679 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003680
Eric Andersen21580922000-07-07 19:07:47 +00003681 <para>
3682 <screen>
3683 -m Use base64 encoding as of RFC1521
3684 </screen>
3685 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003686
Eric Andersen21580922000-07-07 19:07:47 +00003687 <para>
3688 Example:
3689 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003690
Eric Andersen21580922000-07-07 19:07:47 +00003691 <para>
3692 <screen>
3693 $ uuencode busybox busybox
3694 begin 755 busybox
3695 M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``&amp;
3696 .....
3697 $ uudecode busybox busybox &gt; busybox.uu
3698 $
3699 </screen>
3700 </para>
3701 </sect1>
Eric Andersen028fb622000-07-04 20:07:13 +00003702
Eric Andersenffde8672001-01-25 23:40:32 +00003703 <sect1 id="watchdog">
3704 <title>watchdog</title>
3705
3706 <para>
3707 Usage: watchdog device
3708 </para>
3709
3710 <para>
3711 Periodically writes to watchdog device B<device>.
3712 </para>
3713 </sect1>
3714
Eric Andersen21580922000-07-07 19:07:47 +00003715 <sect1 id="wc">
3716 <title>wc</title>
Eric Andersen028fb622000-07-04 20:07:13 +00003717
Eric Andersen21580922000-07-07 19:07:47 +00003718 <para>
3719 Usage: wc [OPTION]... [FILE]...
3720 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003721
Eric Andersen21580922000-07-07 19:07:47 +00003722 <para>
3723 Print line, word, and byte counts for each FILE, and a
3724 total line if more than one FILE is specified. With no
3725 FILE, read stdin.
3726 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003727
Eric Andersen21580922000-07-07 19:07:47 +00003728 <para>
3729 Options:
3730 </para>
Eric Andersen028fb622000-07-04 20:07:13 +00003731
Eric Andersen21580922000-07-07 19:07:47 +00003732 <para>
3733 <screen>
3734 -c Print the byte counts
3735 -l Print the newline counts
3736 -L Print the length of the longest line
3737 -w Print the word counts
3738 </screen>
3739 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003740
Eric Andersen21580922000-07-07 19:07:47 +00003741 <para>
3742 Example:
3743 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003744
Eric Andersen21580922000-07-07 19:07:47 +00003745 <para>
3746 <screen>
3747 $ wc /etc/passwd
3748 31 46 1365 /etc/passwd
3749 </screen>
3750 </para>
3751 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003752
Eric Andersen21580922000-07-07 19:07:47 +00003753 <sect1 id="which">
3754 <title>which</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003755
Eric Andersen21580922000-07-07 19:07:47 +00003756 <para>
3757 Usage: which [COMMAND]...
3758 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003759
Eric Andersen21580922000-07-07 19:07:47 +00003760 <para>
3761 Locate COMMAND(s).
3762 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003763
Eric Andersen21580922000-07-07 19:07:47 +00003764 <para>
3765 Example:
3766 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003767
Eric Andersen21580922000-07-07 19:07:47 +00003768 <para>
3769 <screen>
3770 $ which login
3771 /bin/login
3772 </screen>
3773 </para>
3774 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003775
Eric Andersen21580922000-07-07 19:07:47 +00003776 <sect1 id="whoami">
3777 <title>whoami</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003778
Eric Andersen21580922000-07-07 19:07:47 +00003779 <para>
3780 Usage: whoami
3781 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003782
Eric Andersen21580922000-07-07 19:07:47 +00003783 <para>
3784 Print the user name associated with the current
3785 effective user id.
3786 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003787
Eric Andersen21580922000-07-07 19:07:47 +00003788 <para>
3789 Example:
3790 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003791
Eric Andersen21580922000-07-07 19:07:47 +00003792 <para>
3793 <screen>
3794 $ whoami
3795 andersen
3796 </screen>
3797 </para>
3798 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003799
Eric Andersen5b176932000-09-22 20:22:28 +00003800 <sect1 id="xargs">
3801 <title>xargs</title>
3802
3803 <para>
3804 Usage: xargs [OPTIONS] [COMMAND] [ARGS...]
3805 </para>
3806
3807 <para>
3808 Executes COMMAND on every item given by standard input.
3809 </para>
3810
3811 <para>
3812 Options:
3813 </para>
3814
3815 <para>
3816 <screen>
3817 -t Print the command just before it is run
Eric Andersen5b176932000-09-22 20:22:28 +00003818 </screen>
3819 </para>
3820
3821
3822 <para>
3823 Example:
3824 </para>
3825
3826 <para>
3827 <screen>
3828 $ ls | xargs gzip
3829 $ find . -name '*.c' -print | xargs rm
3830 </screen>
3831 </para>
3832 </sect1>
3833
Eric Andersen21580922000-07-07 19:07:47 +00003834 <sect1 id="yes">
3835 <title>yes</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003836
Eric Andersen21580922000-07-07 19:07:47 +00003837 <para>
3838 Usage: yes [STRING]...
3839 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003840
Eric Andersen21580922000-07-07 19:07:47 +00003841 <para>
3842 Repeatedly output a line with all specified STRING(s),
3843 or `y'.
3844 </para>
3845 </sect1>
Mark Whitley83a949c2000-06-26 13:31:53 +00003846
Eric Andersen21580922000-07-07 19:07:47 +00003847 <sect1 id="zcat">
3848 <title>zcat</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003849
Eric Andersen21580922000-07-07 19:07:47 +00003850 <para>
3851 Usage: zcat [OPTION]... FILE
3852 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003853
Eric Andersen21580922000-07-07 19:07:47 +00003854 <para>
3855 Uncompress FILE (or stdin if FILE is '-') to stdout.
3856 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003857
Eric Andersen21580922000-07-07 19:07:47 +00003858 <para>
3859 Options:
3860 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003861
Eric Andersen21580922000-07-07 19:07:47 +00003862 <para>
3863 <screen>
3864 -t Test compressed file integrity
3865 </screen>
3866 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003867
Eric Andersen21580922000-07-07 19:07:47 +00003868 <para>
3869 Example:
3870 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003871
Eric Andersen21580922000-07-07 19:07:47 +00003872 <para>
3873 <screen>
3874 </screen>
3875 </para>
3876 </sect1>
3877 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +00003878
Eric Andersen21580922000-07-07 19:07:47 +00003879 <chapter id="LIBC-NSS">
3880 <title>LIBC NSS</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003881
Eric Andersen21580922000-07-07 19:07:47 +00003882 <para>
3883 GNU Libc uses the Name Service Switch (NSS) to configure the
3884 behavior of the C library for the local environment, and to
3885 configure how it reads system data, such as passwords and group
3886 information. BusyBox has made it Policy that it will never use
3887 NSS, and will never use libc calls that make use of NSS. This
3888 allows you to run an embedded system without the need for
3889 installing an /etc/nsswitch.conf file and without /lib/libnss_*
3890 libraries installed.
3891 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003892
Eric Andersen21580922000-07-07 19:07:47 +00003893 <para>
3894 If you are using a system that is using a remote LDAP server for
3895 authentication via GNU libc NSS, and you want to use BusyBox,
3896 then you will need to adjust the BusyBox source. Chances are
3897 though, that if you have enough space to install of that stuff
3898 on your system, then you probably want the full GNU utilities.
3899 </para>
3900 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +00003901
Eric Andersen21580922000-07-07 19:07:47 +00003902 <chapter id="SEE-ALSO">
3903 <title>SEE ALSO</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003904
Eric Andersen21580922000-07-07 19:07:47 +00003905 <para>
3906 <literal>textutils(1),</literal>
3907 <literal>shellutils(1),</literal>
3908 etc...
3909 </para>
3910 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +00003911
Eric Andersen21580922000-07-07 19:07:47 +00003912 <chapter id="MAINTAINER">
3913 <title>MAINTAINER</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003914
Eric Andersen21580922000-07-07 19:07:47 +00003915 <para>
3916 Erik Andersen &lt;andersee@debian.org&gt; &lt;andersen@lineo.com&gt;
3917 </para>
3918 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +00003919
Eric Andersen21580922000-07-07 19:07:47 +00003920 <chapter id="AUTHORS">
3921 <title>AUTHORS</title>
Mark Whitley83a949c2000-06-26 13:31:53 +00003922
Eric Andersen21580922000-07-07 19:07:47 +00003923 <para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00003924 The following people have made significant contributions to
3925 BusyBox -- whether they know it or not.
Eric Andersen21580922000-07-07 19:07:47 +00003926 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003927
Eric Andersen21580922000-07-07 19:07:47 +00003928 <para>
3929 Erik Andersen &lt;andersee@debian.org&gt;
3930 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003931
Eric Andersen21580922000-07-07 19:07:47 +00003932 <para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00003933 Edward Betts &lt;edward@debian.org&gt;
3934 </para>
3935
3936 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003937 John Beppu &lt;beppu@lineo.com&gt;
3938 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003939
Eric Andersen21580922000-07-07 19:07:47 +00003940 <para>
3941 Brian Candler &lt;B.Candler@pobox.com&gt;
3942 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003943
Eric Andersen21580922000-07-07 19:07:47 +00003944 <para>
3945 Randolph Chung &lt;tausq@debian.org&gt;
3946 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003947
Eric Andersen21580922000-07-07 19:07:47 +00003948 <para>
3949 Dave Cinege &lt;dcinege@psychosis.com&gt;
3950 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003951
Eric Andersen21580922000-07-07 19:07:47 +00003952 <para>
3953 Karl M. Hegbloom &lt;karlheg@debian.org&gt;
3954 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003955
Eric Andersen21580922000-07-07 19:07:47 +00003956 <para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00003957 Daniel Jacobowitz &lt;dan@debian.org&gt;
3958 </para>
3959
3960 <para>
3961 Matt Kraai &lt;kraai@alumni.carnegiemellon.edu&gt;
3962 </para>
3963
3964 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003965 John Lombardo &lt;john@deltanet.com&gt;
3966 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003967
Eric Andersen21580922000-07-07 19:07:47 +00003968 <para>
3969 Glenn McGrath &lt;bug1@netconnect.com.au&gt;
3970 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003971
Eric Andersen21580922000-07-07 19:07:47 +00003972 <para>
3973 Bruce Perens &lt;bruce@perens.com&gt;
3974 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003975
Eric Andersen21580922000-07-07 19:07:47 +00003976 <para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00003977 Chip Rosenthal &lt;chip@unicom.com&gt;, &lt;crosenth@covad.com&gt;
3978 </para>
3979
3980 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003981 Pavel Roskin &lt;proski@gnu.org&gt;
3982 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003983
Eric Andersen21580922000-07-07 19:07:47 +00003984 <para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00003985 Gyepi Sam &lt;gyepi@praxis-sw.com&gt;
3986 </para>
3987
3988 <para>
Eric Andersen21580922000-07-07 19:07:47 +00003989 Linus Torvalds &lt;torvalds@transmeta.com&gt;
3990 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003991
John Beppu2aee9932000-09-15 08:04:42 +00003992 <para>
3993 Mark Whitley &lt;markw@lineo.com&gt;
3994 </para>
3995
Eric Andersen21580922000-07-07 19:07:47 +00003996 <para>
3997 Charles P. Wright &lt;cpwright@villagenet.com&gt;
3998 </para>
Mark Whitley83a949c2000-06-26 13:31:53 +00003999
Eric Andersen21580922000-07-07 19:07:47 +00004000 <para>
4001 Enrique Zanardi &lt;ezanardi@ull.es&gt;
4002 </para>
Eric Andersen57f83ff2000-09-24 02:41:44 +00004003
Eric Andersenfb74a452001-12-18 14:06:03 +00004004 <para>
4005 Vladimir Oleynik &lt;dzo@simtreas.ru&gt;
4006 </para>
4007
Eric Andersen57f83ff2000-09-24 02:41:44 +00004008
Eric Andersen21580922000-07-07 19:07:47 +00004009 </chapter>
Mark Whitley83a949c2000-06-26 13:31:53 +00004010</book> <!-- End of the book -->