| <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ ]> |
| <book id="BusyBoxDocumentation"> |
| <bookinfo> |
| <title>BusyBox - The Swiss Army Knife of Embedded Linux</title> |
| |
| <legalnotice> |
| <para> |
| This documentation is free software; you can redistribute |
| it and/or modify it under the terms of the GNU General Public |
| License as published by the Free Software Foundation; either |
| version 2 of the License, or (at your option) any later |
| version. |
| </para> |
| |
| <para> |
| This program is distributed in the hope that it will be |
| useful, but WITHOUT ANY WARRANTY; without even the implied |
| warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU General Public License for more details. |
| </para> |
| |
| <para> |
| You should have received a copy of the GNU General Public |
| License along with this program; if not, write to the Free |
| Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
| MA 02111-1307 USA |
| </para> |
| |
| <para> |
| For more details see the file COPYING in the source |
| distribution of Linux. |
| </para> |
| </legalnotice> |
| </bookinfo> |
| |
| <toc></toc> |
| <chapter id="Introduction"> |
| <title>Introduction</title> |
| |
| <para> |
| BusyBox combines tiny versions of many common UNIX utilities into a single |
| small executable. It provides minimalist replacements for most of the |
| utilities you usually find in fileutils, shellutils, findutils, textutils, |
| grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment |
| for any small or embedded system. The utilities in BusyBox generally have |
| fewer options than their full-featured GNU cousins; however, the options |
| that are included provide the expected functionality and behave very much |
| like their GNU counterparts. |
| </para> |
| |
| <para> |
| BusyBox has been written with size-optimization and limited resources in |
| mind. It is also extremely modular so you can easily include or exclude |
| commands (or features) at compile time. This makes it easy to customize |
| your embedded systems. To create a working system, just add a kernel, a |
| shell (such as ash), and an editor (such as elvis-tiny or ae). |
| </para> |
| </chapter> |
| |
| <chapter id="Syntax"> |
| <title>How to use BusyBox</title> |
| <sect1 id="How-to-use-BusyBox"> |
| <title>Syntax</title> |
| |
| <para> |
| <screen> |
| BusyBox <function> [arguments...] # or |
| </screen> |
| </para> |
| |
| <para> |
| <screen> |
| <function> [arguments...] # if symlinked |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="Invoking-BusyBox"> |
| <title>Invoking BusyBox</title> |
| |
| <para> |
| When you create a link to BusyBox for the function you wish to use, when |
| BusyBox is called using that link it will behave as if the command itself |
| has been invoked. |
| </para> |
| |
| <para> |
| For example, entering |
| </para> |
| |
| <para> |
| <screen> |
| ln -s ./BusyBox ls |
| ./ls |
| </screen> |
| </para> |
| |
| <para> |
| will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled |
| into BusyBox). |
| </para> |
| |
| <para> |
| You can also invoke BusyBox by issuing the command as an argument on the |
| command line. For example, entering |
| </para> |
| |
| <para> |
| <screen> |
| ./BusyBox ls |
| </screen> |
| </para> |
| |
| <para> |
| will also cause BusyBox to behave as 'ls'. |
| </para> |
| |
| </sect1> |
| |
| <sect1 id="Common-options"> |
| <title>Common options</title> |
| |
| <para> |
| Most BusyBox commands support the <emphasis>--help</emphasis> option to provide |
| a terse runtime description of their behavior. |
| </para> |
| </sect1> |
| </chapter> |
| |
| <chapter id="Commands"> |
| <title>BusyBox Commands</title> |
| <sect1 id="Available-BusyBox-Commands"> |
| <title>Available BusyBox Commands</title> |
| <para> |
| Currently defined functions include: |
| </para> |
| |
| <para> |
| addgroup, adduser, adjtimex, ar, basename, busybox, cat, |
| chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, |
| date, dc, dd, deallocvt, deluser, df, dirname, dmesg, |
| dos2unix, dpkg, dpkg-deb, du, dumpkmap, dutmp, echo, expr, |
| false, fbset, fdflush, find, free, freeramdisk, fsck.minix, |
| getopt, getty, grep, gunzip, gzip, halt, head, hostid, |
| hostname, id, ifconfig, init, insmod, kill, killall, klogd, |
| length, ln, loadacm, loadfont, loadkmap, logger, logname, ls, |
| lsmod, makedevs, md5sum, mkdir, mkfifo, mkfs.minix, mknod, |
| mkswap, mktemp, more, mount, mt, mv, nc, nslookup, ping, |
| pivot_root, poweroff, printf, ps, pwd, rdate, readlink, |
| reboot, renice, reset, rm, rmdir, rmmod, route, rpm2cpio, |
| sed, setkeycodes, sh, sleep, sort, stty, swapoff, swapon, |
| sync, syslogd, tail, tar, tee, telnet, test, tftp, touch, tr, |
| true, tty, umount, uname, uniq, unix2dos, update, uptime, |
| usleep, uudecode, uuencode, watchdog, wc, wget, which, |
| whoami, xargs, yes, zcat, [ |
| </para> |
| </sect1> |
| |
| <sect1 id="ar"> |
| <title>ar</title> |
| |
| <para> |
| Usage: ar [OPTION] archive [FILENAME]... |
| </para> |
| |
| <para> |
| Extract or list files from an ar archive. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| o Preserve original dates |
| p Extract to stdout |
| t List |
| x Extract |
| v Verbosely list files processed |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="basename"> |
| <title>basename</title> |
| <para> |
| Usage: basename FILE [SUFFIX] |
| </para> |
| |
| <para> |
| Strip directory path and suffixes from FILE. If specified, also removes |
| any trailing SUFFIX. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ basename /usr/local/bin/foo |
| foo |
| $ basename /usr/local/bin/ |
| bin |
| $ basename /foo/bar.txt .txt |
| bar |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="cat"> |
| <title>cat</title> |
| |
| <para> |
| Usage: cat [FILE]... |
| </para> |
| |
| <para> |
| Concatenate <literal>FILE(s)</literal> and prints them to the standard |
| output. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ cat /proc/uptime |
| 110716.72 17.67 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="chgrp"> |
| <title>chgrp</title> |
| |
| <para> |
| Usage: chgrp [OPTION]... GROUP FILE... |
| </para> |
| |
| <para> |
| Change the group membership of each FILE to GROUP. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -R Change files and directories recursively |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo |
| $ chgrp root /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="chmod"> |
| <title>chmod</title> |
| |
| <para> |
| Usage: chmod [<emphasis>-R</emphasis>] MODE[,MODE]... FILE... |
| </para> |
| |
| <para> |
| Change file access permissions for the specified |
| <literal>FILE(s)</literal> (or directories). Each MODE is defined by |
| combining the letters for WHO has access to the file, an OPERATOR for |
| selecting how the permissions should be changed, and a PERMISSION for |
| <literal>FILE(s)</literal> (or directories). |
| </para> |
| |
| <para> |
| WHO may be chosen from |
| </para> |
| |
| <para> |
| <screen> |
| u User who owns the file |
| g Users in the file's Group |
| o Other users not in the file's group |
| a All users |
| </screen> |
| </para> |
| |
| <para> |
| OPERATOR may be chosen from |
| </para> |
| |
| <para> |
| <screen> |
| + Add a permission |
| - Remove a permission |
| = Assign a permission |
| </screen> |
| </para> |
| |
| <para> |
| PERMISSION may be chosen from |
| </para> |
| |
| <para> |
| <screen> |
| r Read |
| w Write |
| x Execute (or access for directories) |
| s Set user (or group) ID bit |
| t Sticky bit (for directories prevents removing files by non-owners) |
| </screen> |
| </para> |
| |
| <para> |
| Alternately, permissions can be set numerically where the first three |
| numbers are calculated by adding the octal values, such as |
| </para> |
| |
| <para> |
| <screen> |
| 4 Read |
| 2 Write |
| 1 Execute |
| </screen> |
| </para> |
| |
| <para> |
| An optional fourth digit can also be used to specify |
| </para> |
| |
| <para> |
| <screen> |
| 4 Set user ID |
| 2 Set group ID |
| 1 Sticky bit |
| </screen> |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -R Change files and directories recursively. |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -l /tmp/foo |
| -rw-rw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| $ chmod u+x /tmp/foo |
| $ ls -l /tmp/foo |
| -rwxrw-r-- 1 root root 0 Apr 12 18:25 /tmp/foo* |
| $ chmod 444 /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="chown"> |
| <title>chown</title> |
| <para> |
| Usage: chown [OPTION]... OWNER[<.|:>[GROUP] FILE... |
| </para> |
| |
| <para> |
| Change the owner and/or group of each FILE to OWNER and/or GROUP. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -R Change files and directories recursively |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 andersen andersen 0 Apr 12 18:25 /tmp/foo |
| $ chown root /tmp/foo |
| $ ls -l /tmp/foo |
| -r--r--r-- 1 root andersen 0 Apr 12 18:25 /tmp/foo |
| $ chown root.root /tmp/foo |
| ls -l /tmp/foo |
| -r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="chroot"> |
| <title>chroot</title> |
| <para> |
| Usage: chroot NEWROOT [COMMAND...] |
| </para> |
| |
| <para> |
| Run COMMAND with root directory set to NEWROOT. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -l /bin/ls |
| lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /BusyBox |
| $ mount /dev/hdc1 /mnt -t minix |
| $ chroot /mnt |
| $ ls -l /bin/ls |
| -rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls* |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="chvt"> |
| <title>chvt</title> |
| <para> |
| Usage: chvt N |
| </para> |
| |
| <para> |
| Change the foreground virtual terminal to /dev/ttyN |
| </para> |
| </sect1> |
| |
| <sect1 id="clear"> |
| <title>clear</title> |
| |
| <para> |
| Usage: clear |
| </para> |
| |
| <para> |
| Clear the screen. |
| </para> |
| </sect1> |
| |
| <sect1 id="cp"> |
| <title>cp</title> |
| |
| <para> |
| Usage: cp [OPTION]... SOURCE DEST |
| </para> |
| |
| <para> |
| <screen> |
| or: cp [OPTION]... SOURCE... DIRECTORY |
| </screen> |
| </para> |
| |
| <para> |
| Copy SOURCE to DEST, or multiple <literal>SOURCE(s)</literal> to |
| DIRECTORY. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Same as -dpR |
| -d Preserve links |
| -p Preserve file attributes if possible |
| -R Copy directories recursively |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="cut"> |
| <title>cut</title> |
| |
| <para> |
| Usage: cut [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| Print selected fields from each input FILE to standard output. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -b LIST Output only bytes from LIST |
| -c LIST Output only characters from LIST |
| -d CHAR Use CHAR instead of tab as the field delimiter |
| -s Output only the lines containing delimiter |
| -f N Print only these fields |
| -n Ignored |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo "Hello world" | cut -f 1 -d ' ' |
| Hello |
| $ echo "Hello world" | cut -f 2 -d ' ' |
| world |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="date"> |
| <title>date</title> |
| |
| <para> |
| Usage: date [OPTION]... [+FORMAT] |
| </para> |
| |
| <para> |
| <screen> |
| or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]] |
| </screen> |
| </para> |
| |
| <para> |
| Display the current time in the given FORMAT, or set the system date. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -R Output RFC-822 compliant date string |
| -s Set time described by STRING |
| -u Print or set Coordinated Universal Time |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ date |
| Wed Apr 12 18:52:41 MDT 2000 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dc"> |
| <title>dc</title> |
| |
| <para> |
| Usage: dc [EXPRESSION] |
| </para> |
| |
| <para> |
| This is a Tiny RPN calculator that understands the |
| following operations: +, -, /, *, and, or, not, eor. If |
| no arguments are given, dc will process input from |
| stdin. |
| </para> |
| |
| <para> |
| The behaviour of BusyBox/dc deviates (just a little ;-) |
| from GNU/dc, but this will be remedied in the future. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dc 2 2 + |
| 4 |
| $ dc 8 8 \* 2 2 + / |
| 16 |
| $ dc 0 1 and |
| 0 |
| $ dc 0 1 or |
| 1 |
| $ echo 72 9 div 8 mul | dc |
| 64 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dd"> |
| <title>dd</title> |
| |
| <para> |
| Usage: dd [OPTION]... |
| </para> |
| |
| <para> |
| Copy a file, converting and formatting according to |
| options. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| if=FILE Read from FILE instead of stdin |
| of=FILE Write to FILE instead of stdout |
| bs=N Read and write N bytes at a time |
| count=N Copy only N input blocks |
| skip=N Skip N input blocks |
| seek=N Skip N output blocks |
| </screen> |
| </para> |
| |
| <para> |
| Numbers may be suffixed by w (x2), k (x1024), b (x512), |
| or M (x1024^2). |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dd if=/dev/zero of=/dev/ram1 bs=1M count=4 |
| 4+0 records in |
| 4+0 records out |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="deallocvt"> |
| <title>deallocvt</title> |
| |
| <para> |
| Usage: deallocvt N |
| </para> |
| |
| <para> |
| Deallocate unused virtual terminal /dev/ttyN. |
| </para> |
| </sect1> |
| |
| <sect1 id="df"> |
| <title>df</title> |
| |
| <para> |
| Usage: df [FILE]... |
| </para> |
| |
| <para> |
| Print the filesystem space used and space available. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ df |
| Filesystem 1k-blocks Used Available Use% Mounted on |
| /dev/sda3 8690864 8553540 137324 98% / |
| /dev/sda1 64216 36364 27852 57% /boot |
| $ df /dev/sda3 |
| Filesystem 1k-blocks Used Available Use% Mounted on |
| /dev/sda3 8690864 8553540 137324 98% / |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dirname"> |
| <title>dirname</title> |
| |
| <para> |
| Usage: dirname NAME |
| </para> |
| |
| <para> |
| Strip non-directory suffix from NAME. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dirname /tmp/foo |
| /tmp |
| $ dirname /tmp/foo/ |
| /tmp |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dmesg"> |
| <title>dmesg</title> |
| |
| <para> |
| Usage: dmesg [OPTION]... |
| </para> |
| |
| <para> |
| Print or control the kernel ring buffer. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Clear the ring buffer after printing |
| -n LEVEL Set the console logging level to LEVEL |
| -s BUFSIZE Query ring buffer using a buffer of BUFSIZE |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dos2unix"> |
| <title>dos2unix</title> |
| |
| <para> |
| Usage: dos2unix < dosfile > unixfile |
| </para> |
| |
| <para> |
| Converts a text file from dos format to unix format. |
| </para> |
| |
| </sect1> |
| |
| <sect1 id="dpkg-deb"> |
| <title>dpkg-deb</title> |
| |
| <para> |
| Usage: dpkg-deb [OPTION] archive [directory] |
| </para> |
| |
| <para> |
| Debian package archive (.deb) manipulation tool |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c List the contents of the filesystem tree archive portion of the package |
| -e Extracts the control information files from a package archive into the specified directory. |
| If no directory is specified then a subdirectory DEBIAN in the current directory is used. |
| -x Silently extracts the filesystem tree from a package archive into the specified directory. |
| -X Extracts the filesystem tree from a package archive into the specified directory, listing the files as it goes. |
| If required the specified directory (but not its parents) will be created. |
| </screen> |
| <para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| dpkg-deb -e ./busybox_0.48-1_i386.deb |
| dpkg-deb -x ./busybox_0.48-1_i386.deb ./unpack_dir |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="du"> |
| <title>du</title> |
| |
| <para> |
| Usage: du [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| Summarize the disk space used for each FILE or current |
| directory. Disk space printed in units of 1k (i.e., |
| 1024 bytes). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -l Count sizes many times if hard linked |
| -s Display only a total for each argument |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ du |
| 16 ./CVS |
| 12 ./kernel-patches/CVS |
| 80 ./kernel-patches |
| 12 ./tests/CVS |
| 36 ./tests |
| 12 ./scripts/CVS |
| 16 ./scripts |
| 12 ./docs/CVS |
| 104 ./docs |
| 2417 . |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dumpkmap"> |
| <title>dumpkmap</title> |
| |
| <para> |
| Usage: dumpkmap |
| </para> |
| |
| <para> |
| Prints out a binary keyboard translation table to standard output. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dumpkmap < keymap |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="dutmp"> |
| <title>dutmp</title> |
| |
| <para> |
| Usage: dutmp [FILE] |
| </para> |
| |
| <para> |
| Dump utmp file format (pipe delimited) from FILE or |
| stdin to stdout. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dutmp /var/run/utmp |
| 8|7||si|||0|0|0|955637625|760097|0 |
| 2|0|~|~~|reboot||0|0|0|955637625|782235|0 |
| 1|20020|~|~~|runlevel||0|0|0|955637625|800089|0 |
| 8|125||l4|||0|0|0|955637629|998367|0 |
| 6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0 |
| 6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0 |
| 7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="echo"> |
| <title>echo</title> |
| |
| <para> |
| Usage: echo [OPTION]... [ARG]... |
| </para> |
| |
| <para> |
| Print ARGs to stdout. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -n Suppress trailing newline |
| -e Enable interpretation of escaped characters |
| -E Disable interpretation of escaped characters |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo "Erik is cool" |
| Erik is cool |
| $ echo -e "Erik\nis\ncool" |
| Erik |
| is |
| cool |
| $ echo "Erik\nis\ncool" |
| Erik\nis\ncool |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="expr"> |
| <title>expr</title> |
| |
| <para> |
| Usage: expr EXPRESSION |
| </para> |
| |
| <para> |
| Prints the value of EXPRESSION to standard output. |
| </para> |
| |
| <para> |
| EXPRESSION may be: |
| </para> |
| |
| <para> |
| <screen> |
| ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2 |
| ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0 |
| ARG1 < ARG2 ARG1 is less than ARG2 |
| ARG1 <= ARG2 ARG1 is less than or equal to ARG2 |
| ARG1 = ARG2 ARG1 is equal to ARG2 |
| ARG1 != ARG2 ARG1 is unequal to ARG2 |
| ARG1 >= ARG2 ARG1 is greater than or equal to ARG2 |
| ARG1 > ARG2 ARG1 is greater than ARG2 |
| ARG1 + ARG2 arithmetic sum of ARG1 and ARG2 |
| ARG1 - ARG2 arithmetic difference of ARG1 and ARG2 |
| ARG1 * ARG2 arithmetic product of ARG1 and ARG2 |
| ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2 |
| ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2 |
| STRING : REGEXP anchored pattern match of REGEXP in STRING |
| match STRING REGEXP same as STRING : REGEXP |
| substr STRING POS LENGTH substring of STRING, POS counted from 1 |
| index STRING CHARS index in STRING where any CHARS is found, or 0 |
| length STRING length of STRING |
| quote TOKEN interpret TOKEN as a string, even if it is a |
| keyword like `match' or an operator like `/' |
| ( EXPRESSION ) value of EXPRESSION |
| </screen> |
| </para> |
| |
| <para> |
| Beware that many operators need to be escaped or quoted for shells. |
| Comparisons are arithmetic if both ARGs are numbers, else |
| lexicographical. Pattern matches return the string matched between |
| \( and \) or null; if \( and \) are not used, they return the number |
| of characters matched or 0. |
| </para> |
| |
| </sect1> |
| |
| |
| <sect1 id="false"> |
| <title>false</title> |
| |
| <para> |
| Usage: false |
| </para> |
| |
| <para> |
| Return an exit code of FALSE (1). |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ false |
| $ echo $? |
| 1 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="fbset"> |
| <title>fbset</title> |
| |
| <para> |
| Usage: fbset [OPTION]... [MODE] |
| </para> |
| |
| <para> |
| Show and modify frame buffer device settings. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -h Display option summary |
| -fb DEVICE Operate on DEVICE |
| -db FILE Use FILE for mode database |
| -g XRES YRES VXRES VYRES DEPTH Set all geometry parameters |
| -t PIXCLOCK LEFT RIGHT UPPER LOWER HSLEN VSLEN Set all timing parameters |
| -xres RES Set visible horizontal resolution |
| -yres RES Set visible vertical resolution |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ fbset |
| mode "1024x768-76" |
| # D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz |
| geometry 1024 768 1024 768 16 |
| timings 12714 128 32 16 4 128 4 |
| accel false |
| rgba 5/11,6/5,5/0,0/0 |
| endmode |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="fdflush"> |
| <title>fdflush</title> |
| |
| <para> |
| Usage: fdflush DEVICE |
| </para> |
| |
| <para> |
| Force floppy disk drive to detect disk change on DEVICE. |
| </para> |
| </sect1> |
| |
| <sect1 id="find"> |
| <title>find</title> |
| |
| <para> |
| Usage: find [PATH]... [EXPRESSION] |
| </para> |
| |
| <para> |
| Search for files in a directory hierarchy. The default |
| PATH is the current directory; default EXPRESSION is |
| '-print'. |
| </para> |
| |
| <para> |
| EXPRESSION may consist of: |
| </para> |
| |
| <para> |
| <screen> |
| -follow Dereference symbolic links |
| -name PATTERN File name (leading directories removed) matches PATTERN |
| -type X Filetype matches X (where X is one of: f,d,l,b,c,...) |
| -perm PERMS Permissions match any of (+NNN); all of (-NNN); or exactly (NNN) |
| -mtime TIME Modified time is greater than (+N); less than (-N); or exactly (N) days |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ find / -name /etc/passwd |
| /etc/passwd |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="free"> |
| <title>free</title> |
| |
| <para> |
| Usage: free |
| </para> |
| |
| <para> |
| Displays the amount of free and used system memory. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ free |
| total used free shared buffers |
| Mem: 257628 248724 8904 59644 93124 |
| Swap: 128516 8404 120112 |
| Total: 386144 257128 129016 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="freeramdisk"> |
| <title>freeramdisk</title> |
| |
| <para> |
| Usage: freeramdisk DEVICE |
| </para> |
| |
| <para> |
| Free all memory used by the ramdisk DEVICE. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ freeramdisk /dev/ram2 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="fsck.minix"> |
| <title>fsck.minix</title> |
| |
| <para> |
| Usage: fsck.minix [OPTION]... DEVICE |
| </para> |
| |
| <para> |
| Perform a consistency check on the MINIX filesystem on |
| DEVICE. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -l List all filenames |
| -r Perform interactive repairs |
| -a Perform automatic repairs |
| -v Verbose |
| -s Output super-block information |
| -m Activate MINIX-like "mode not cleared" warnings |
| -f Force file system check. |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="getopt"> |
| <title>getopt</title> |
| |
| <para> |
| Usage: getopt [OPTIONS]... |
| </para> |
| |
| <para> |
| Parse command options |
| </para> |
| |
| <para> |
| <screen> |
| -a, --alternative Allow long options starting with single -\n" |
| -l, --longoptions=longopts Long options to be recognized\n" |
| -n, --name=progname The name under which errors are reported\n" |
| -o, --options=optstring Short options to be recognized\n" |
| -q, --quiet Disable error reporting by getopt(3)\n" |
| -Q, --quiet-output No normal output\n" |
| -s, --shell=shell Set shell quoting conventions\n" |
| -T, --test Test for getopt(1) version\n" |
| -u, --unqote Do not quote the output\n" |
| </screen> |
| </para> |
| |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ cat getopt.test |
| #!/bin/sh |
| GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \ |
| -n 'example.busybox' -- "$@"` |
| if [ $? != 0 ] ; then exit 1 ; fi |
| eval set -- "$GETOPT" |
| while true ; do |
| case $1 in |
| -a|--a-long) echo "Option a" ; shift ;; |
| -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;; |
| -c|--c-long) |
| case "$2" in |
| "") echo "Option c, no argument"; shift 2 ;; |
| *) echo "Option c, argument \`$2'" ; shift 2 ;; |
| esac ;; |
| --) shift ; break ;; |
| *) echo "Internal error!" ; exit 1 ;; |
| esac |
| done |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="grep"> |
| <title>grep</title> |
| |
| <para> |
| Usage: grep [OPTIONS]... PATTERN [FILE]... |
| </para> |
| |
| <para> |
| Search for PATTERN in each FILE or stdin. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -h Suppress the prefixing filename on output |
| -i Ignore case distinctions |
| -n Print line number with output lines |
| -q Be quiet. Returns 0 if result was found, 1 otherwise |
| -v Select non-matching lines |
| </screen> |
| </para> |
| |
| <para> |
| This version of grep matches full regular expressions. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ grep root /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| $ grep ^[rR]oo. /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="gunzip"> |
| <title>gunzip</title> |
| |
| <para> |
| Usage: gunzip [OPTION]... FILE |
| </para> |
| |
| <para> |
| Uncompress FILE (or stdin if FILE is '-'). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Write output to standard output |
| -t Test compressed file integrity |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz |
| $ gunzip /tmp/BusyBox-0.43.tar.gz |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="gzip"> |
| <title>gzip</title> |
| |
| <para> |
| Usage: gzip [OPTION]... FILE |
| </para> |
| |
| <para> |
| Compress FILE (or stdin if FILE is '-') with maximum |
| compression to FILE.gz (or stdout if FILE is '-'). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Write output to standard output |
| -d decompress |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar |
| $ gzip /tmp/BusyBox-0.43.tar |
| $ ls -la /tmp/BusyBox* |
| -rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/BusyBox-0.43.tar.gz |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="halt"> |
| <title>halt</title> |
| |
| <para> |
| Usage: halt |
| </para> |
| |
| <para> |
| Halt the system. |
| </para> |
| </sect1> |
| |
| <sect1 id="head"> |
| <title>head</title> |
| |
| <para> |
| Usage: head [OPTION] FILE... |
| </para> |
| |
| <para> |
| Print first 10 lines of each FILE to standard output. |
| With more than one FILE, precede each with a header |
| giving the file name. With no FILE, or when FILE is -, |
| read standard input. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -n NUM Print first NUM lines instead of first 10 |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ head -n 2 /etc/passwd |
| root:x:0:0:root:/root:/bin/bash |
| daemon:x:1:1:daemon:/usr/sbin:/bin/sh |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="hostid"> |
| <title>hostid</title> |
| |
| <para> |
| Usage: hostid |
| </para> |
| |
| <para> |
| Prints out a unique 32-bit identifier for the current |
| machine. The 32-bit identifier is intended to be unique |
| among all UNIX systems in existence. |
| </para> |
| </sect1> |
| |
| <sect1 id="hostname"> |
| <title>hostname</title> |
| |
| <para> |
| Usage: hostname [OPTION]... [HOSTNAME|-F FILE] |
| </para> |
| |
| <para> |
| Get or set the hostname or DNS domain name. If a |
| hostname is given (or a file with the -F parameter), the |
| host name will be set. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -s Short |
| -i Addresses for the hostname |
| -d DNS domain name |
| -F, --file FILE Use the contents of FILE to specify the hostname |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ hostname |
| slag |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="id"> |
| <title>id</title> |
| |
| <para> |
| Usage: id [OPTION]... [USERNAME] |
| </para> |
| |
| <para> |
| Print information for USERNAME or the current user. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -g Print only the group ID |
| -u Print only the user ID |
| -n print a name instead of a number (with for -ug) |
| -r Print the real user ID instead of the effective ID (with -ug) |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ id |
| uid=1000(andersen) gid=1000(andersen) |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="init"> |
| <title>init</title> |
| |
| <para> |
| Usage: init |
| </para> |
| |
| <para> |
| Init is the parent of all processes. |
| </para> |
| |
| <para> |
| This version of init is designed to be run only by the |
| kernel. |
| </para> |
| |
| <para> |
| BusyBox init doesn't support multiple runlevels. The |
| runlevels field of the /etc/inittab file is completely |
| ignored by BusyBox init. If you want runlevels, use |
| sysvinit. |
| </para> |
| |
| <para> |
| BusyBox init works just fine without an inittab. If no |
| inittab is found, it has the following default behavior: |
| </para> |
| |
| <para> |
| <screen> |
| ::sysinit:/etc/init.d/rcS |
| ::askfirst:/bin/sh |
| </screen> |
| </para> |
| |
| <para> |
| If it detects that /dev/console is _not_ a serial |
| console, it will also run: |
| </para> |
| |
| <para> |
| <screen> |
| tty2::askfirst:/bin/sh |
| </screen> |
| </para> |
| |
| <para> |
| If you choose to use an /etc/inittab file, the inittab |
| entry format is as follows: |
| </para> |
| |
| <para> |
| <screen> |
| <id>:<runlevels>:<action>:<process> |
| </screen> |
| </para> |
| |
| <sect2> |
| <title>id</title> |
| <para> |
| |
| WARNING: This field has a non-traditional meaning for BusyBox init! |
| The id field is used by BusyBox init to specify the controlling tty |
| for the specified process to run on. The contents of this field |
| are appended to "/dev/" and used as-is. There is no need for this |
| field to be unique, although if it isn't you may have strange |
| results. If this field is left blank, the controlling tty is set |
| to the console. Also note that if BusyBox detects that a serial |
| console is in use, then only entries whose controlling tty is |
| either the serial console or /dev/null will be run. BusyBox init |
| does nothing with utmp. We don't need no stinkin' utmp. |
| |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>runlevels</title> |
| |
| <para> |
| The runlevels field is completely ignored. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>action</title> |
| |
| |
| <para> |
| Valid actions include: sysinit, respawn, askfirst, wait, |
| once, and ctrlaltdel. |
| </para> |
| |
| |
| <para> |
| The available actions can be classified into two groups: actions |
| that are run only once, and actions that are re-run when the specified |
| process exits. |
| </para> |
| |
| <para> |
| Run only-once actions: |
| </para> |
| |
| <para> |
| 'sysinit' is the first item run on boot. init waits until all |
| sysinit actions are completed before continuing. Following the |
| completion of all sysinit actions, all 'wait' actions are run. |
| 'wait' actions, like 'sysinit' actions, cause init to wait until |
| the specified task completes. 'once' actions are asyncronous, |
| therefore, init does not wait for them to complete. 'ctrlaltdel' |
| actions are run immediately before init causes the system to reboot |
| (unmounting filesystems with a 'ctrlaltdel' action is a very good |
| idea). |
| </para> |
| |
| <para> |
| Run repeatedly actions: |
| </para> |
| |
| <para> |
| 'respawn' actions are run after the 'once' actions. When a process |
| started with a 'respawn' action exits, init automatically restarts |
| it. Unlike sysvinit, BusyBox init does not stop processes from |
| respawning out of control. The 'askfirst' actions acts just like |
| respawn, except that before running the specified process it |
| displays the line "Please press Enter to activate this console." |
| and then waits for the user to press enter before starting the |
| specified process. |
| </para> |
| |
| <para> |
| Unrecognized actions (like initdefault) will cause init to emit an |
| error message, and then go along with its business. All actions are |
| run in the reverse order from how they appear in /etc/inittab. |
| </para> |
| |
| </sect2> |
| |
| <sect2> |
| <title>process</title> |
| |
| <para> |
| Specifies the process to be executed and its |
| command line. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Example /etc/inittab file</title> |
| |
| <para> |
| <screen> |
| # This is run first except when booting in single-user mode. |
| # |
| ::sysinit:/etc/init.d/rcS |
| |
| # /bin/sh invocations on selected ttys |
| # |
| # Start an "askfirst" shell on the console (whatever that may be) |
| ::askfirst:-/bin/sh |
| # Start an "askfirst" shell on /dev/tty2-4 |
| tty2::askfirst:-/bin/sh |
| tty2::askfirst:-/bin/sh |
| tty2::askfirst:-/bin/sh |
| |
| # /sbin/getty invocations for selected ttys |
| # |
| tty4::respawn:/sbin/getty 38400 tty5 |
| tty5::respawn:/sbin/getty 38400 tty6 |
| |
| # Example of how to put a getty on a serial line (for a terminal) |
| # |
| #::respawn:/sbin/getty -L ttyS0 9600 vt100 |
| #::respawn:/sbin/getty -L ttyS1 9600 vt100 |
| # |
| # Example how to put a getty on a modem line. |
| #::respawn:/sbin/getty 57600 ttyS2 |
| |
| # Stuff to do before rebooting |
| ::ctrlaltdel:/bin/umount -a -r |
| ::ctrlaltdel:/sbin/swapoff |
| </screen> |
| </para> |
| </sect2> |
| </sect1> |
| |
| <sect1 id="insmod"> |
| <title>insmod</title> |
| |
| <para> |
| Usage: insmod [OPTION]... MODULE [symbol=value]... |
| </para> |
| |
| <para> |
| Load MODULE into the kernel. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -f Force module to load into the wrong kernel version. |
| -k Make module autoclean-able. |
| -v Verbose output |
| -x Do not export externs |
| -L Prevent simultaneous loads of the same module |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="kill"> |
| <title>kill</title> |
| |
| <para> |
| Usage: kill [OPTION] PID... |
| </para> |
| |
| <para> |
| Send a signal (default is SIGTERM) to the specified |
| PID(s). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -l List all signal names and numbers |
| -SIG Send signal SIG |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ps | grep apache |
| 252 root root S [apache] |
| 263 www-data www-data S [apache] |
| 264 www-data www-data S [apache] |
| 265 www-data www-data S [apache] |
| 266 www-data www-data S [apache] |
| 267 www-data www-data S [apache] |
| $ kill 252 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="killall"> |
| <title>killall</title> |
| |
| <para> |
| Usage: killall [OPTION] NAME... |
| </para> |
| |
| <para> |
| Send a signal (default is SIGTERM) to the specified |
| NAME(s). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -l List all signal names and numbers |
| -SIG Send signal SIG |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ killall apache |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="length"> |
| <title>length</title> |
| |
| <para> |
| Usage: length STRING |
| </para> |
| |
| <para> |
| Print the length of STRING. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ length "Hello" |
| 5 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="ln"> |
| <title>ln</title> |
| |
| <para> |
| Usage: ln [OPTION]... TARGET FILE|DIRECTORY |
| </para> |
| |
| <para> |
| Create a link named FILE or DIRECTORY to the specified |
| TARGET. You may use '--' to indicate that all following |
| arguments are non-options. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -s Make symbolic link instead of hard link |
| -f Remove existing destination file |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ln -s BusyBox /tmp/ls |
| $ ls -l /tmp/ls |
| lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> BusyBox* |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="loadacm"> |
| <title>loadacm</title> |
| |
| <para> |
| Usage: loadacm |
| </para> |
| |
| <para> |
| Load an acm from stdin. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ loadacm < /etc/i18n/acmname |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="loadfont"> |
| <title>loadfont</title> |
| |
| <para> |
| Usage: loadfont |
| </para> |
| |
| <para> |
| Load a console font from stdin. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ loadfont < /etc/i18n/fontname |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="loadkmap"> |
| <title>loadkmap</title> |
| |
| <para> |
| Usage: loadkmap |
| </para> |
| |
| <para> |
| Load a binary keyboard translation table from stdin. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ loadkmap < /etc/i18n/lang-keymap |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="logger"> |
| <title>logger</title> |
| |
| <para> |
| Usage: logger [OPTION]... [MESSAGE] |
| </para> |
| |
| <para> |
| Write MESSAGE to the system log. If MESSAGE is omitted, log |
| stdin. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -s Log to stderr as well as the system log |
| -t Log using the specified tag (defaults to user name) |
| -p Enter the message with the specified priority |
| This may be numerical or a ``facility.level'' pair |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ logger "hello" |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="logname"> |
| <title>logname</title> |
| |
| <para> |
| Usage: logname |
| </para> |
| |
| <para> |
| Print the name of the current user. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ logname |
| root |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="ls"> |
| <title>ls</title> |
| |
| <para> |
| Usage: ls [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Do not hide entries starting with . |
| -c With -l: show ctime (the time of last |
| modification of file status information) |
| -d List directory entries instead of contents |
| -e List both full date and full time |
| -l Use a long listing format |
| -n List numeric UIDs and GIDs instead of names |
| -p Append indicator (one of /=@|) to entries |
| -u With -l: show access time (the time of last |
| access of the file) |
| -x List entries by lines instead of by columns |
| -A Do not list implied . and .. |
| -C List entries by columns |
| -F Append indicator (one of */=@|) to entries |
| -L list entries pointed to by symbolic links |
| -R List subdirectories recursively |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="lsmod"> |
| <title>lsmod</title> |
| |
| <para> |
| Usage: lsmod |
| </para> |
| |
| <para> |
| List currently loaded kernel modules. |
| </para> |
| </sect1> |
| |
| <sect1 id="makedevs"> |
| <title>makedevs</title> |
| |
| <para> |
| Usage: makedevsf NAME TYPE MAJOR MINOR FIRST LAST [s] |
| </para> |
| |
| <para> |
| Create a range of block or character special files. |
| </para> |
| |
| <para> |
| TYPE may be: |
| </para> |
| |
| <para> |
| <screen> |
| b Make a block (buffered) device |
| c or u Make a character (un-buffered) device |
| p Make a named pipe. MAJOR and MINOR are ignored for named pipes |
| </screen> |
| </para> |
| |
| <para> |
| FIRST specifies the number appended to NAME to create |
| the first device. LAST specifies the number of the last |
| item that should be created. If 's' is the last |
| argument, the base device is created as well. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ makedevs /dev/ttyS c 4 66 2 63 |
| [creates ttyS2-ttyS63] |
| $ makedevs /dev/hda b 3 0 0 8 s |
| [creates hda,hda1-hda8] |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="md5sum"> |
| <title>md5sum</title> |
| |
| <para> |
| Usage: md5sum [OPTION]... FILE... |
| </para> |
| |
| <para> |
| Print or check MD5 checksums. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -b Read files in binary mode |
| -c Check MD5 sums against given list |
| -t Read files in text mode (default) |
| -g Read a string |
| </screen> |
| </para> |
| |
| <para> |
| The following two options are useful only when verifying |
| checksums: |
| </para> |
| |
| <para> |
| <screen> |
| -s Don't output anything, status code shows success |
| -w Warn about improperly formated MD5 checksum lines |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ md5sum busybox |
| 6fd11e98b98a58f64ff3398d7b324003 busybox |
| $ md5sum -c |
| 6fd11e98b98a58f64ff3398d7b324003 busybox |
| 6fd11e98b98a58f64ff3398d7b324002 busybox |
| md5sum: MD5 check failed for 'busybox' |
| ^D |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mkdir"> |
| <title>mkdir</title> |
| |
| <para> |
| Usage: mkdir [OPTION]... DIRECTORY... |
| </para> |
| |
| <para> |
| Create the DIRECTORY(s), if they do not already exist. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -m Set permission mode (as in chmod), not rwxrwxrwx - umask |
| -p No error if directory exists, make parent directories as needed |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ mkdir /tmp/foo |
| $ mkdir /tmp/foo |
| /tmp/foo: File exists |
| $ mkdir /tmp/foo/bar/baz |
| /tmp/foo/bar/baz: No such file or directory |
| $ mkdir -p /tmp/foo/bar/baz |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mkfifo"> |
| <title>mkfifo</title> |
| |
| <para> |
| Usage: mkfifo [OPTION] NAME |
| </para> |
| |
| <para> |
| Create a named pipe (identical to 'mknod NAME p'). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -m MODE Create the pipe using the specified mode (default a=rw) |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mkfs.minix"> |
| <title>mkfs.minix</title> |
| |
| <para> |
| Usage: mkfs.minix [OPTION]... NAME [BLOCKS] |
| </para> |
| |
| <para> |
| Make a MINIX filesystem. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Check the device for bad blocks |
| -n [14|30] Specify the maximum length of filenames |
| -i Specify the number of inodes for the filesystem |
| -l FILENAME Read the bad blocks list from FILENAME |
| -v Make a Minix version 2 filesystem |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mknod"> |
| <title>mknod</title> |
| |
| <para> |
| Usage: mknod [OPTION]... NAME TYPE MAJOR MINOR |
| </para> |
| |
| <para> |
| Create a special file (block, character, or pipe). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -m Create the special file using the specified mode (default a=rw) |
| </screen> |
| </para> |
| |
| <para> |
| TYPE may be: |
| </para> |
| |
| <para> |
| <screen> |
| b Make a block (buffered) device |
| c or u Make a character (un-buffered) device |
| p Make a named pipe. MAJOR and MINOR are ignored for named pipes |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ mknod /dev/fd0 b 2 0 |
| $ mknod -m 644 /tmp/pipe p |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mkswap"> |
| <title>mkswap</title> |
| |
| <para> |
| Usage: mkswap [OPTION]... DEVICE [BLOCKS] |
| </para> |
| |
| <para> |
| Prepare a disk partition to be used as a swap partition. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Check for read-ability. |
| -v0 Make version 0 swap [max 128 Megs]. |
| -v1 Make version 1 swap [big!] (default for kernels > 2.1.117). |
| BLOCKS Number of block to use (default is entire partition). |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mktemp"> |
| <title>mktemp</title> |
| |
| <para> |
| Usage: mktemp TEMPLATE |
| </para> |
| |
| <para> |
| Creates a temporary file with its name based on |
| TEMPLATE. TEMPLATE is any name with six `Xs' (i.e., |
| /tmp/temp.XXXXXX). |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ mktemp /tmp/temp.XXXXXX |
| /tmp/temp.mWiLjM |
| $ ls -la /tmp/temp.mWiLjM |
| -rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="more"> |
| <title>more</title> |
| |
| <para> |
| Usage: more [FILE]... |
| </para> |
| |
| <para> |
| Page through text one screenful at a time. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ dmesg | more |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mount"> |
| <title>mount</title> |
| |
| <para> |
| Usage: mount [OPTION]... |
| </para> |
| |
| <para> |
| <screen> |
| or: mount [OPTION]... DEVICE DIRECTORY |
| </screen> |
| </para> |
| |
| <para> |
| Mount filesystems. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Mount all filesystems in /etc/fstab |
| -o One of the many filesystem options listed below |
| -r Mount the filesystem read-only |
| -t TYPE Specify the filesystem type |
| -w Mount the filesystem read-write |
| </screen> |
| </para> |
| |
| <para> |
| Options for use with the -o flag: |
| </para> |
| |
| <para> |
| <screen> |
| async/sync Writes are asynchronous / synchronous |
| atime/noatime Enable / disable updates to inode access times |
| dev/nodev Allow / disallow use of special device files |
| exec/noexec Allow / disallow use of executable files |
| loop Mount a file via loop device |
| suid/nosuid Allow / disallow set-user-id-root programs |
| remount Remount a currently mounted filesystem |
| ro/rw Mount filesystem read-only / read-write |
| </screen> |
| </para> |
| |
| <para> |
| There are even more flags that are filesystem specific. |
| You'll have to see the written documentation for those. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ mount |
| /dev/hda3 on / type minix (rw) |
| proc on /proc type proc (rw) |
| devpts on /dev/pts type devpts (rw) |
| $ mount /dev/fd0 /mnt -t msdos -o ro |
| $ mount /tmp/diskimage /opt -t ext2 -o loop |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mt"> |
| <title>mt</title> |
| |
| <para> |
| Usage: mt [OPTION] OPCODE VALUE |
| </para> |
| |
| <para> |
| Control magnetic tape drive operation. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -f DEVICE Control DEVICE |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="mv"> |
| <title>mv</title> |
| |
| <para> |
| Usage: mv SOURCE DEST |
| </para> |
| |
| <para> |
| <screen> |
| or: mv SOURCE... DIRECTORY |
| </screen> |
| </para> |
| |
| <para> |
| Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ mv /tmp/foo /bin/bar |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="nc"> |
| <title>nc</title> |
| |
| <para> |
| Usage: nc HOST PORT |
| </para> |
| |
| <para> |
| or: nc -p PORT -l |
| </para> |
| |
| |
| <para> |
| Open a pipe to HOST:PORT or listen for a connection on PORT. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ nc foobar.somedomain.com 25 |
| 220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600 |
| help |
| 214-Commands supported: |
| 214- HELO EHLO MAIL RCPT DATA AUTH |
| 214 NOOP QUIT RSET HELP |
| quit |
| 221 foobar closing connection |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="nslookup"> |
| <title>nslookup</title> |
| |
| <para> |
| Usage: nslookup [HOST] |
| </para> |
| |
| <para> |
| Query the nameserver for the IP address of the given |
| HOST. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ nslookup localhost |
| Server: default |
| Address: default |
| |
| Name: debian |
| Address: 127.0.0.1 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="ping"> |
| <title>ping</title> |
| |
| <para> |
| Usage: ping [OPTION]... HOST |
| </para> |
| |
| <para> |
| Send ICMP ECHO_REQUEST packets to HOST. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c COUNT Send only COUNT pings |
| -s SIZE Send SIZE data bytes in packets (default=56) |
| -q Quiet mode, only displays output at start and when finished |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ping localhost |
| PING slag (127.0.0.1): 56 data bytes |
| 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms |
| |
| --- debian ping statistics --- |
| 1 packets transmitted, 1 packets received, 0% packet loss |
| round-trip min/avg/max = 20.1/20.1/20.1 ms |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="poweroff"> |
| <title>poweroff</title> |
| |
| <para> |
| Usage: poweroff |
| </para> |
| |
| <para> |
| Shut down the system, and request that the kernel turn |
| off power upon halting. |
| </para> |
| </sect1> |
| |
| <sect1 id="printf"> |
| <title>printf</title> |
| |
| <para> |
| Usage: printf FORMAT [ARGUMENT]... |
| </para> |
| |
| <para> |
| Format and print the given data in a manner similar to |
| the C printf command. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ printf "Val=%d\n" 5 |
| Val=5 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="ps"> |
| <title>ps</title> |
| |
| <para> |
| Usage: ps |
| </para> |
| |
| <para> |
| Report process status. This version of ps accepts no |
| options. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ps |
| PID Uid Gid State Command |
| 1 root root S init |
| 2 root root S [kflushd] |
| 3 root root S [kupdate] |
| 4 root root S [kpiod] |
| 5 root root S [kswapd] |
| 742 andersen andersen S [bash] |
| 743 andersen andersen S -bash |
| 745 root root S [getty] |
| 2990 andersen andersen R ps |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="pwd"> |
| <title>pwd</title> |
| |
| <para> |
| Usage: pwd |
| </para> |
| |
| <para> |
| Print the full filename of the current working |
| directory. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ pwd |
| /root |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="rdate"> |
| <title>rdate</title> |
| |
| <para> |
| Usage: rdate [OPTION] HOST |
| </para> |
| |
| <para> |
| Get and possibly set the system date and time from a remote HOST. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -s Set the system date and time (default). |
| -p Print the date and time. |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="reboot"> |
| <title>reboot</title> |
| |
| <para> |
| Usage: reboot |
| </para> |
| |
| <para> |
| Reboot the system. |
| </para> |
| </sect1> |
| |
| <sect1 id="renice"> |
| <title>renice</title> |
| |
| <para> |
| Usage: renice priority pid [pid ...] |
| </para> |
| |
| <para> |
| Changes priority of running processes. Allowed priorities range |
| from 20 (the process runs only when nothing else is running) to 0 |
| (default priority) to -20 (almost nothing else ever gets to run). |
| </para> |
| </sect1> |
| |
| <sect1 id="reset"> |
| <title>reset</title> |
| |
| <para> |
| Usage: reset |
| </para> |
| |
| <para> |
| Resets the screen. |
| </para> |
| </sect1> |
| |
| <sect1 id="rm"> |
| <title>rm</title> |
| |
| <para> |
| Usage: rm [OPTION]... FILE... |
| </para> |
| |
| <para> |
| Remove (unlink) the FILE(s). You may use '--' to |
| indicate that all following arguments are non-options. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -i Always prompt before removing each destinations |
| -f Remove existing destinations, never prompt |
| -r or -R Remove the contents of directories recursively |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ rm -rf /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="rmdir"> |
| <title>rmdir</title> |
| |
| <para> |
| Usage: rmdir DIRECTORY... |
| </para> |
| |
| <para> |
| Remove DIRECTORY(s) if they are empty. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ rmdir /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="rmmod"> |
| <title>rmmod</title> |
| |
| <para> |
| Usage: rmmod [OPTION]... [MODULE]... |
| </para> |
| |
| <para> |
| Unload MODULE(s) from the kernel. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Try to remove all unused kernel modules |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ rmmod tulip |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="run-parts"> |
| <title>run-parts</title> |
| |
| <para> |
| Usage: run-parts [-t] [-a ARG] [-u MASK] DIRECTORY |
| </para> |
| |
| <para> |
| Run a bunch of scripts in a directory. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -t Test only. It only print the file to be executed, |
| without execute them. |
| -a ARG Pass ARG as an a argument to the programs executed. |
| -u MASK Set the umask to MASK before executing the programs. |
| </screen> |
| </para> |
| </sect1> |
| |
| |
| |
| <sect1 id="sed"> |
| <title>sed</title> |
| |
| <para> |
| Usage: sed [OPTION]... SCRIPT [FILE]... |
| </para> |
| |
| <para> |
| Allowed sed scripts come in the following form: |
| </para> |
| |
| <para> |
| <screen> |
| ADDR [!] COMMAND |
| </screen> |
| </para> |
| |
| <para> |
| ADDR can be: |
| </para> |
| |
| <para> |
| <screen> |
| NUMBER Match specified line number |
| $ Match last line |
| /REGEXP/ Match specified regexp |
| </screen> |
| </para> |
| |
| <para> |
| ! inverts the meaning of the match |
| </para> |
| |
| <para> |
| COMMAND can be: |
| </para> |
| |
| <para> |
| <screen> |
| s/regexp/replacement/[igp] |
| which attempt to match regexp against the pattern space |
| and if successful replaces the matched portion with replacement. |
| aTEXT |
| which appends TEXT after the pattern space |
| </screen> |
| </para> |
| |
| <para> |
| This version of sed matches full regular expressions. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -e Add the script to the commands to be executed |
| -n Suppress automatic printing of pattern space |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo "foo" | sed -e 's/f[a-zA-Z]o/bar/g' |
| bar |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="setkeycodes"> |
| <title>setkeycodes</title> |
| |
| <para> |
| Usage: setkeycodes SCANCODE KEYCODE ... |
| </para> |
| |
| <para> |
| Set entries into the kernel's scancode-to-keycode map, |
| allowing unusual keyboards to generate usable keycodes. |
| </para> |
| |
| <para> |
| SCANCODE may be either xx or e0xx (hexadecimal), and |
| KEYCODE is given in decimal. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ setkeycodes e030 127 |
| </screen> |
| </para> |
| </sect1> |
| |
| |
| <sect1 id="sh"> |
| <title>sh</title> |
| |
| <para> |
| Usage: sh |
| </para> |
| |
| <para> |
| lash -- the BusyBox LAme SHell (command interpreter) |
| </para> |
| |
| <para> |
| This command does not yet have proper documentation. |
| </para> |
| |
| <para> |
| Use lash just as you would use any other shell. It |
| properly handles pipes, redirects, job control, can be |
| used as the shell for scripts (#!/bin/sh), and has a |
| sufficient set of builtins to do what is needed. It does |
| not (yet) support Bourne Shell syntax. If you need |
| things like ``if-then-else'', ``while'', and such, use |
| ash or bash. If you just need a very simple and |
| extremely small shell, this will do the job. |
| </para> |
| </sect1> |
| |
| <sect1 id="sleep"> |
| <title>sleep</title> |
| |
| <para> |
| Usage: sleep N |
| </para> |
| |
| <para> |
| Pause for N seconds. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ sleep 2 |
| [2 second delay results] |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="sort"> |
| <title>sort</title> |
| |
| <para> |
| Usage: sort [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| Sort lines of text in FILE(s). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -n Compare numerically |
| -r Reverse after sorting |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo -e "e\nf\nb\nd\nc\na" | sort |
| a |
| b |
| c |
| d |
| e |
| f |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="swapoff"> |
| <title>swapoff</title> |
| |
| <para> |
| Usage: swapoff [OPTION] [DEVICE] |
| </para> |
| |
| <para> |
| Stop swapping virtual memory pages on DEVICE. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Stop swapping on all swap devices |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="swapon"> |
| <title>swapon</title> |
| |
| <para> |
| Usage: swapon [OPTION] [DEVICE] |
| </para> |
| |
| <para> |
| Start swapping virtual memory pages on the given device. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Start swapping on all swap devices |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="sync"> |
| <title>sync</title> |
| |
| <para> |
| Usage: sync |
| </para> |
| |
| <para> |
| Write all buffered filesystem blocks to disk. |
| </para> |
| </sect1> |
| |
| <sect1 id="syslogd"> |
| <title>syslogd</title> |
| |
| <para> |
| Usage: syslogd [OPTION]... |
| </para> |
| |
| <para> |
| Linux system and kernel (provides klogd) logging |
| utility. Note that this version of syslogd/klogd ignores |
| /etc/syslog.conf. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -m NUM Interval between MARK lines (default=20min, 0=off) |
| -n Run as a foreground process |
| -K Do not start up the klogd process |
| -O FILE Use an alternate log file (default=/var/log/messages) |
| -R HOST[:PORT] Log remotely to IP or hostname on PORT (default PORT=514/UDP) |
| -L Log locally as well as network logging (default is network only) |
| -C Log to a circular buffer. Read this buffer using 'logread' |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ syslogd -R masterlog:514 |
| $ syslogd -R 192.168.1.1:601 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="tail"> |
| <title>tail</title> |
| |
| <para> |
| Usage: tail [OPTION] [FILE]... |
| </para> |
| |
| <para> |
| Print last 10 lines of each FILE to standard output. |
| With more than one FILE, precede each with a header |
| giving the file name. With no FILE, or when FILE is -, |
| read stdin. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -n NUM Print last NUM lines instead of last 10 |
| -f Output data as the file grows. This version |
| of 'tail -f' supports only one file at a time. |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ tail -n 1 /etc/resolv.conf |
| nameserver 10.0.0.1 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="tar"> |
| <title>tar</title> |
| |
| <para> |
| Usage: tar [MODE] [OPTION] [FILE]... |
| </para> |
| |
| <para> |
| |
| </para> |
| |
| <para> |
| MODE may be chosen from |
| </para> |
| |
| <para> |
| <screen> |
| c Create |
| x Extract |
| t List |
| </screen> |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| f FILE Use FILE for tarfile (or stdin if '-') |
| O Extract to stdout |
| exclude FILE File to exclude |
| v List files processed |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ zcat /tmp/tarball.tar.gz | tar -xf - |
| $ tar -cf /tmp/tarball.tar /usr/local |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="tee"> |
| <title>tee</title> |
| |
| <para> |
| Usage: tee [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| Copy stdin to FILE(s), and also to stdout. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Append to the given FILEs, do not overwrite |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo "Hello" | tee /tmp/foo |
| Hello |
| $ cat /tmp/foo |
| Hello |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="telnet"> |
| <title>telnet</title> |
| |
| <para> |
| Usage: telnet HOST [PORT] |
| </para> |
| |
| <para> |
| Establish interactive communication with another |
| computer over a network using the TELNET protocol. |
| </para> |
| </sect1> |
| |
| <sect1 id="test"> |
| <title>test, [</title> |
| |
| <para> |
| Usage: test EXPRESSION |
| </para> |
| |
| <para> |
| or: [ EXPRESSION ] |
| </para> |
| |
| <para> |
| Check file types and compare values returning an exit |
| code determined by the value of EXPRESSION. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ test 1 -eq 2 |
| $ echo $? |
| 1 |
| $ test 1 -eq 1 |
| $ echo $? |
| 0 |
| $ [ -d /etc ] |
| $ echo $? |
| 0 |
| $ [ -d /junk ] |
| $ echo $? |
| 1 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="touch"> |
| <title>touch</title> |
| |
| <para> |
| Usage: touch [OPTION]... FILE... |
| </para> |
| |
| <para> |
| Update the last-modified date on (or create) FILE(s). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Do not create files |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls -l /tmp/foo |
| /bin/ls: /tmp/foo: No such file or directory |
| $ touch /tmp/foo |
| $ ls -l /tmp/foo |
| -rw-rw-r-- 1 andersen andersen 0 Apr 15 01:11 /tmp/foo |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="tr"> |
| <title>tr</title> |
| |
| <para> |
| Usage: tr [OPTION]... STRING1 [STRING2] |
| </para> |
| |
| <para> |
| Translate, squeeze, and/or delete characters from stdin, |
| writing to stdout. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Take complement of STRING1 |
| -d Delete input characters coded STRING1 |
| -s Squeeze multiple output characters of STRING2 into one character |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo "gdkkn vnqkc" | tr [a-y] [b-z] |
| hello world |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="true"> |
| <title>true</title> |
| |
| <para> |
| Usage: true |
| </para> |
| |
| <para> |
| Return an exit code of TRUE (1). |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ true |
| $ echo $? |
| 0 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="tty"> |
| <title>tty</title> |
| |
| <para> |
| Usage: tty |
| </para> |
| |
| <para> |
| Print the file name of the terminal connected to stdin. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -s Print nothing, only return an exit status |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ tty |
| /dev/tty2 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="umount"> |
| <title>umount</title> |
| |
| <para> |
| Usage: umount [OPTION]... DEVICE|DIRECTORY |
| </para> |
| |
| <para> |
| |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Unmount all file systems |
| -r Try to remount devices as read-only if mount is busy |
| -f Force filesystem umount (i.e., unreachable NFS server) |
| -l Do not free loop device (if a loop device has been used) |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ umount /dev/hdc1 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="uname"> |
| <title>uname</title> |
| |
| <para> |
| Usage: uname [OPTION]... |
| </para> |
| |
| <para> |
| Print certain system information. With no OPTION, same |
| as -s. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -a Print all information |
| -m Print the machine (hardware) type |
| -n Print the machine's network node hostname |
| -r Print the operating system release |
| -s Print the operating system name |
| -p Print the host processor type |
| -v Print the operating system version |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ uname -a |
| Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="uniq"> |
| <title>uniq</title> |
| |
| <para> |
| Usage: uniq [INPUT [OUTPUT]] |
| </para> |
| |
| <para> |
| Discard all but one of successive identical lines from |
| INPUT (or stdin), writing to OUTPUT (or stdout). |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c prefix lines by the number of occurrences |
| -d only print duplicate lines |
| -u only print unique lines |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ echo -e "a\na\nb\nc\nc\na" | sort | uniq |
| a |
| b |
| c |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="unix2dos"> |
| <title>unix2dos</title> |
| |
| <para> |
| Usage: unix2dos < unixfile > dosfile |
| </para> |
| |
| <para> |
| Converts a text file from unix format to dos format. |
| </para> |
| |
| </sect1> |
| |
| <sect1 id="unrpm"> |
| <title>unrpm</title> |
| |
| <para> |
| Usage: unrpm < package.rpm | gzip -d | cpio -idmuv |
| </para> |
| |
| <para> |
| Extracts an rpm archive. |
| </para> |
| |
| </sect1> |
| |
| <sect1 id="update"> |
| <title>update</title> |
| |
| <para> |
| Usage: update [OPTION]... |
| </para> |
| |
| <para> |
| Periodically flush filesystem buffers. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -S Force use of sync(2) instead of flushing |
| -s SECS Call sync this often (default 30) |
| -f SECS Flush some buffers this often (default 5) |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="uptime"> |
| <title>uptime</title> |
| |
| <para> |
| Usage: uptime |
| </para> |
| |
| <para> |
| Display how long the system has been running since boot. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ uptime |
| 1:55pm up 2:30, load average: 0.09, 0.04, 0.00 |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="usleep"> |
| <title>usleep</title> |
| |
| <para> |
| Usage: usleep N |
| </para> |
| |
| <para> |
| Pause for N microseconds. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ usleep 1000000 |
| [pauses for 1 second] |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="uudecode"> |
| <title>uudecode</title> |
| |
| <para> |
| Usage: uudecode [OPTION] [FILE] |
| </para> |
| |
| <para> |
| Uudecode a uuencoded file. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -o FILE Direct output to FILE |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ uudecode -o busybox busybox.uu |
| $ ls -l busybox |
| -rwxr-xr-x 1 ams ams 245264 Jun 7 21:35 busybox |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="uuencode"> |
| <title>uuencode</title> |
| |
| <para> |
| Usage: uuencode [OPTION] [INFILE] OUTFILE |
| </para> |
| |
| <para> |
| Uuencode a file. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -m Use base64 encoding as of RFC1521 |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ uuencode busybox busybox |
| begin 755 busybox |
| M?T5,1@$!`0````````````(``P`!````L+@$"#0```!0N@,``````#0`(``& |
| ..... |
| $ uudecode busybox busybox > busybox.uu |
| $ |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="watchdog"> |
| <title>watchdog</title> |
| |
| <para> |
| Usage: watchdog device |
| </para> |
| |
| <para> |
| Periodically writes to watchdog device B<device>. |
| </para> |
| </sect1> |
| |
| <sect1 id="wc"> |
| <title>wc</title> |
| |
| <para> |
| Usage: wc [OPTION]... [FILE]... |
| </para> |
| |
| <para> |
| Print line, word, and byte counts for each FILE, and a |
| total line if more than one FILE is specified. With no |
| FILE, read stdin. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -c Print the byte counts |
| -l Print the newline counts |
| -L Print the length of the longest line |
| -w Print the word counts |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ wc /etc/passwd |
| 31 46 1365 /etc/passwd |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="which"> |
| <title>which</title> |
| |
| <para> |
| Usage: which [COMMAND]... |
| </para> |
| |
| <para> |
| Locate COMMAND(s). |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ which login |
| /bin/login |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="whoami"> |
| <title>whoami</title> |
| |
| <para> |
| Usage: whoami |
| </para> |
| |
| <para> |
| Print the user name associated with the current |
| effective user id. |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ whoami |
| andersen |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="xargs"> |
| <title>xargs</title> |
| |
| <para> |
| Usage: xargs [OPTIONS] [COMMAND] [ARGS...] |
| </para> |
| |
| <para> |
| Executes COMMAND on every item given by standard input. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -t Print the command just before it is run |
| </screen> |
| </para> |
| |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| $ ls | xargs gzip |
| $ find . -name '*.c' -print | xargs rm |
| </screen> |
| </para> |
| </sect1> |
| |
| <sect1 id="yes"> |
| <title>yes</title> |
| |
| <para> |
| Usage: yes [STRING]... |
| </para> |
| |
| <para> |
| Repeatedly output a line with all specified STRING(s), |
| or `y'. |
| </para> |
| </sect1> |
| |
| <sect1 id="zcat"> |
| <title>zcat</title> |
| |
| <para> |
| Usage: zcat [OPTION]... FILE |
| </para> |
| |
| <para> |
| Uncompress FILE (or stdin if FILE is '-') to stdout. |
| </para> |
| |
| <para> |
| Options: |
| </para> |
| |
| <para> |
| <screen> |
| -t Test compressed file integrity |
| </screen> |
| </para> |
| |
| <para> |
| Example: |
| </para> |
| |
| <para> |
| <screen> |
| </screen> |
| </para> |
| </sect1> |
| </chapter> |
| |
| <chapter id="LIBC-NSS"> |
| <title>LIBC NSS</title> |
| |
| <para> |
| GNU Libc uses the Name Service Switch (NSS) to configure the |
| behavior of the C library for the local environment, and to |
| configure how it reads system data, such as passwords and group |
| information. BusyBox has made it Policy that it will never use |
| NSS, and will never use libc calls that make use of NSS. This |
| allows you to run an embedded system without the need for |
| installing an /etc/nsswitch.conf file and without /lib/libnss_* |
| libraries installed. |
| </para> |
| |
| <para> |
| If you are using a system that is using a remote LDAP server for |
| authentication via GNU libc NSS, and you want to use BusyBox, |
| then you will need to adjust the BusyBox source. Chances are |
| though, that if you have enough space to install of that stuff |
| on your system, then you probably want the full GNU utilities. |
| </para> |
| </chapter> |
| |
| <chapter id="SEE-ALSO"> |
| <title>SEE ALSO</title> |
| |
| <para> |
| <literal>textutils(1),</literal> |
| <literal>shellutils(1),</literal> |
| etc... |
| </para> |
| </chapter> |
| |
| <chapter id="MAINTAINER"> |
| <title>MAINTAINER</title> |
| |
| <para> |
| Erik Andersen <andersee@debian.org> <andersen@lineo.com> |
| </para> |
| </chapter> |
| |
| <chapter id="AUTHORS"> |
| <title>AUTHORS</title> |
| |
| <para> |
| The following people have made significant contributions to |
| BusyBox -- whether they know it or not. |
| </para> |
| |
| <para> |
| Erik Andersen <andersee@debian.org> |
| </para> |
| |
| <para> |
| Edward Betts <edward@debian.org> |
| </para> |
| |
| <para> |
| John Beppu <beppu@lineo.com> |
| </para> |
| |
| <para> |
| Brian Candler <B.Candler@pobox.com> |
| </para> |
| |
| <para> |
| Randolph Chung <tausq@debian.org> |
| </para> |
| |
| <para> |
| Dave Cinege <dcinege@psychosis.com> |
| </para> |
| |
| <para> |
| Karl M. Hegbloom <karlheg@debian.org> |
| </para> |
| |
| <para> |
| Daniel Jacobowitz <dan@debian.org> |
| </para> |
| |
| <para> |
| Matt Kraai <kraai@alumni.carnegiemellon.edu> |
| </para> |
| |
| <para> |
| John Lombardo <john@deltanet.com> |
| </para> |
| |
| <para> |
| Glenn McGrath <bug1@netconnect.com.au> |
| </para> |
| |
| <para> |
| Bruce Perens <bruce@perens.com> |
| </para> |
| |
| <para> |
| Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com> |
| </para> |
| |
| <para> |
| Pavel Roskin <proski@gnu.org> |
| </para> |
| |
| <para> |
| Gyepi Sam <gyepi@praxis-sw.com> |
| </para> |
| |
| <para> |
| Linus Torvalds <torvalds@transmeta.com> |
| </para> |
| |
| <para> |
| Mark Whitley <markw@lineo.com> |
| </para> |
| |
| <para> |
| Charles P. Wright <cpwright@villagenet.com> |
| </para> |
| |
| <para> |
| Enrique Zanardi <ezanardi@ull.es> |
| </para> |
| |
| <para> |
| Vladimir Oleynik <dzo@simtreas.ru> |
| </para> |
| |
| |
| </chapter> |
| </book> <!-- End of the book --> |