BusyBox is a single but multi-call binary file that contains a series of commands and tools build in it. It is particularly useful, but not limited to, on minimalistic distribution or docker image, like Alpine or in embedded devices [Link]. It is also know as “The Swiss Army Knife of Embedded Linux”.

It contains several (~300) version of most popular Linux/UNIX commands and can be used pretty much anywhere, as long as it is built/compiled to the platform and architecture, such as OpenWRT, Android, and managed network devices (like routers and switches).

INSTALLATION

which busyboxd || sudo apt install busybox -y

It can also be run in a container for learning and trying out:

docker pull busybox
docker run busybox ls

LIST THE AVAILABLE COMMANDS

busybox
busybox --list

Example output “Currently defined functions” from Ubuntu 22.04:

[, [[, acpid, adjtimex, ar, arch, arp, arping, ash, awk, basename, bc, blkdiscard, blockdev, brctl, bunzip2, busybox, bzcat, bzip2, cal, cat, chgrp, chmod, chown, chpasswd,
chroot, chvt, clear, cmp, cp, cpio, crond, crontab, cttyhack, cut, date, dc, dd, deallocvt, depmod, devmem, df, diff, dirname, dmesg, dnsdomainname, dos2unix, dpkg, dpkg-deb,
du, dumpkmap, dumpleases, echo, ed, egrep, env, expand, expr, factor, fallocate, false, fatattr, fdisk, fgrep, find, fold, free, freeramdisk, fsfreeze, fstrim, ftpget, ftpput,
getopt, getty, grep, groups, gunzip, gzip, halt, head, hexdump, hostid, hostname, httpd, hwclock, i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig, ifdown, ifup, init, insmod,
ionice, ip, ipcalc, ipneigh, kill, killall, klogd, last, less, link, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, ls, lsmod,
lsscsi, lzcat, lzma, lzop, md5sum, mdev, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mt, mv, nameif, nc, netstat,
nl, nologin, nproc, nsenter, nslookup, nuke, od, openvt, partprobe, passwd, paste, patch, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, realpath,
reboot, renice, reset, resume, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, run-init, run-parts, sed, seq, setkeycodes, setpriv, setsid, sh, sha1sum, sha256sum, sha512sum,
shred, shuf, sleep, sort, ssl_client, start-stop-daemon, stat, static-sh, strings, stty, su, sulogin, svc, svok, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail,
tar, taskset, tc, tee, telnet, telnetd, test, tftp, time, timeout, top, touch, tr, traceroute, traceroute6, true, truncate, tty, tunctl, ubirename, udhcpc, udhcpd, uevent,
umount, uname, uncompress, unexpand, uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, w, watch, watchdog, wc, wget, which,
who, whoami, xargs, xxd, xz, xzcat, yes, zcat

WHAT DOES IT MEANS

Probably, if not provided by any other source, BusyBox is providing all the listed features to the current system.

BONUS

Check out the alternative called ToyBox, which curiously was created by the same developer but focused on Android [Link].

Give it a try to Termux on Android to have a terminal emulator with Linux envinronment [Link].