BusyBox is a single binary that contains many common Unix tools. It's often found in embedded Linux systems like routers, in Android smartphones, in Linux containers and anywhere else it would be handy to have a compact set of Unix command line tools.
busybox-w32 is a port of BusyBox to the Microsoft Windows WIN32 API. It brings a subset of the functionality of BusyBox to Windows in a single self-contained native executable. Source is available in a GitHub repository: busybox-w32
This version of BusyBox implements well over a hundred Unix-style commands. Some of the more significant are:
Other staples of Unix shell programming, such as
grep are also
available. Most of the commands have a
that displays a brief description and documents the available options.
If you need the full power of bash or the other GNU utilities busybox-w32 may not be what you want: Cygwin , Gow or UnxUtils may be more suitable. However, if you need to ship some shell scripts with your software or if you need to run a Unix build script busybox-w32 may be a compact alternative. The full executable is less than half the size of the Cygwin setup program!
You can run individual BusyBox commands from a Command Prompt window:
C:\Users\rmy>busybox uname -a Window_NT win81 6.2 9200 i686 MS/WindowsHowever, for the best experience I recommend using the BusyBox shell. This is configured to run BusyBox commands without having to link each of them into your path. Set up a shortcut on your desktop to run the shell using a command like this:
C:\path\to\busybox.exe sh -l
The last character there is a lowercase 'L' (for login).
Though I don't recommend it, it's possible to create links to each of the BusyBox applets using the command:
busybox --install C:\path\to\directory
Omitting the directory will result in the links being made in the same
directory as the busybox.exe executable you're running. The
--install option creates 'hard' links which are
available on NTFS filesystems but not FAT.
If you plan on using BusyBox from the Windows command prompt you should note that the binaries provided here are configured with wildcard expansion disabled. This is the preferred option when the BusyBox shell is being used. There is a build-time setting to enable wildcard expansion but it isn't the default. More...
If you want to install a 32-bit build of BusyBox in a system
directory on a 64-bit Windows system you should put it in
C:\Windows\SysWOW64, which is the correct location for
32-bit binaries on 64-bit Windows.
Putting it in
C:\Windows\System32 will result in mysterious
From time to time binary builds and source tarballs will be made available. The latest version is always busybox.exe (currently this is an alias for busybox-w32-FRP-2187-g28ade29e9.exe).
The latest executable is 486,400 bytes in size. Its sha256sum is:
e082a120e02304b75746bf737cdb5438f7042ccab82c2ba7acd2fc41761e7837This key has been used to generate the PGP signature file busybox.exe.sig.
A 64-bit binary, busybox64.exe, is also available. Its sha256sum is:
busybox-w32 includes the
man applet. A ready-formatted man
page for the current version can be downloaded here.
It'll be picked up automatically if you position it relative to the
executable like so:
Older binaries and the source corresponding to each binary can be found here. Really old versions will be deleted after about three years.
Sometimes stupid antivirus software complains about busybox.exe. If this is a problem you can try downloading a different version.
Recent and notable changes include:
ttysizeapplet is enabled by default. It reports the size of the console window.
psapplet can report which applet other instances of BusyBox are running. This is more useful than just saying
manapplet searches for man pages relative to the location of the BusyBox executable as well as on
timeoutapplet supports the same exit status as the coreutils version
wgetsupports the use of https URLs
.cmdare treated the same as other executables: they're highlighted in file listings, they're searched for on the path, and tab-completion in the shell works
ddapplet supports the input file
/dev/urandomas well as
shredapplets are enabled by default
functionkeyword, for bash compatibility
lnapplet is enabled by default, though it only supports hard links
The binaries are built using the MinGW-w64 toolchain on Fedora and are tested on Microsoft Windows 8.1 and 10. busybox-w32 also works on Windows XP and (to some extent) on ReactOS.
Bug reports can be submitted via GitHub or by email to the address below.