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