busyboxは1つのバイナリに多くのコマンドを詰め込んだものです。 サイズに制限がある環境 (インストール用のFDなど) でよく利用されています。
$ which busybox /bin/busybox
$ ls -l /bin/busybox -rwxr-xr-x 1 root root 293164 Mar 8 2004 /bin/busybox
$ file /bin/busybox /bin/busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 , dynamically linked (uses shared libs), stripped
$ busybox BusyBox v0.60.2 (2002.04.30-03:39+0000) multi-call binary Usage: busybox [function] [arguments]... or: [function] [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use, and BusyBox will act like whatever it was invoked as. Currently defined functions: [, ash, basename, busybox, cat, chgrp, chmod, chown, chroot, cp, cut, date, dd, df, dirname, dmesg, du, echo, env, expr, false, free, grep, gunzip, gzip, halt, head, id, ifconfig, init, insmod, kill, killall, klogd, linuxrc, ln, logger, ls, lsmod, mkdir, mkfifo, mknod, mkswap, modprobe, more, mount, mv, pidof, ps, pwd, reboot, reset, rm, rmdir, rmmod, route, sed, sh, sleep, sort, stty, swapoff, swapon, sync, syslogd, tail, tar, test, touch, tr, true, umount, uname, uniq, uptime, wc, which, whoami, xargs, yes, zcat
$ tar vxzf busybox-1.00.tar.gz $ cd busybox-1.00
$ make config
「make menuconfig」でも可。
$ date Sun Jan 23 10:25:21 JST 2005
$ make && date ..... ..... Sun Jan 23 10:38:22 JST 2005
$ ls -l ./busybox -rwxr-xr-x 1 odin users 3585177 Jan 23 10:37 ./busybox
$ file ./busybox ./busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 , dynamically linked (uses shared libs), not stripped
$ strip -p ./busybox
$ ls -l ./busybox -rwxr-xr-x 1 odin users 1342444 Jan 23 10:37 ./busybox
$ file ./busybox ./busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 , dynamically linked (uses shared libs), stripped
$ ./busybox BusyBox v1.00 (2005.01.23-01:01+0000) multi-call binary Usage: busybox [function] [arguments]... or: [function] [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use, and BusyBox will act like whatever it was invoked as. Currently defined functions: [, addgroup, adduser, adjtimex, ar, arping, ash, awk, basename, bunzip2, busybox, bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, devfsd, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases, echo, egrep, env, expr, false, fbset, fdflush, fdformat, fdisk, fgrep, find, fold, free, freeramdisk, fsck.minix, ftpget, ftpput, getopt, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod, install, ip, ipaddr, ipcalc, iplink, iproute, iptunnel, kill, killall, klogd, lash, last, length, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, ls, lsmod, makedevs, md5sum, mesg, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, msh, mt, mv, nameif, nc, netstat, nslookup, od, openvt, passwd, patch, pidof, ping, ping6, pipe_progress, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, rx, sed, seq, setkeycodes, sh, sha1sum, sleep, sort, start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, sync, sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, tftp, time, top, touch, tr, traceroute, true, tty, udhcpc, udhcpd, umount, uname, uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat
./busybox wget https://210.81.150.5/ Connecting to 210.81.150.5[210.81.150.5]:80 index.html 100% |*******************| 40316 --:-- ETA
26: # CONFIG_STATIC is not set
26: CONFIG_STATIC=y
$ date Sun Jan 23 11:12:51 JST 2005
$ make && date Sun Jan 23 11:13:30 JST 2005
$ ls -l ./busybox -rwxr-xr-x 1 odin users 4565112 Jan 23 11:13 ./busybox
$ file ./busybox ./busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 , statically linked, not stripped
$ strip -p ./busybox
$ ls -l ./busybox -rwxr-xr-x 1 odin users 2220108 Jan 23 11:13 ./busybox
$ file ./busybox ./busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 , statically linked, stripped
$ make install /bin/sh applets/install.sh "./_install" applets/install.sh: dirname: command not found Unknown installation directory: make: *** [install] Error 1
$ su # ln -s /bin/busybox /bin/dirname
$ make install
CONFIG_INSTALL_NO_USR=y PREFIX="/usr/sbin/busybox"
$ su # mkdir /usr/sbin/busybox # make install