win-bash (ver 1.1) Abandoned Freeware Windows 2000/XP can make a very good personal computer operating system. However, if you need to do "cloud computing", you will find that most of the cloud servers are running a variant of Unix (most probably the Linux variant CENTOS). While configuring and running applications is similar to those on a Windows computer, sometimes you may have to access a UN*X shell to run an automated script. The most common shell (command interpreter) is called "bash", and the commands are very different from those of the Windows batchfile command interpreter (the shell "cmd.exe"). So how do you test a bash script on your Windows PC? win-bash is a stand-alone Windows port of the famous GNU bash shell. Unlike other bash ports for Windows (e.g. the cygwin bash ), the win-bash needs no special environment or DLLs. There is just one binary and that's it. win-bash is based on nt_bash which was an early bash port for Windows NT started by Mountain Math Software some years ago. As far as I know, the nt_bash port project stopped in alpha status and has never been finished. The goal of the win-bash project was to finish the port to Windows and provide a fully-functional bash.exe binary for Windows NT and derived systems. win-bash can be used as an input shell, as well as an interpreter to run UN*X shell scripts. NOTE: This version of win-bash includes a helpful startup batch file and an assortment of UN*X shell utilities that have been ported to Windows. ========== What differs win-bash from cygwin-bash? First of all, you should keep in mind that win-bash is based on a old version of bash (1.14.2) while cygwin -bash is more or less up to date. One important difference is the handling of drives: cygwin uses its installation directory as root dir and links all drives in the pseudo subdir /cygdrive . win-bash uses a diffent method: drives are included in paths, like on windows (e.g. c:/Winnt/System32 ). The root directory / is mapped to the root directory of the current drive. Examples: * ls c:/winnt - shows the content of the directory c:/winnt * cd c:/; ls /winnt - changes current drive to c: and shows the content of the directory c:/winnt * cd d:/; ls /winnt - changes current drive to d: and shows the content of the directory d:/winnt There are some other differences, most of them have been added to simplify the usage of existing un*x shell scripts: * If a shell script starts with an interpreter specification like #!/path/interpreter , the interpreter is searched in the PATH environment instead of /path . E.g. a Perl script starting with #!/bin/perl will be started with perl.exe from the PATH environment variable. * win-bash doesn't use any system dlls or registry keys ----- How can I change the drive? Use the cd command. The drive letter is optional and can be added at the head of the directory followed by a colon. If the drive letter is given, the current drive is changed. The root directory / always points the the current drive's root dir. To change to the root directory on drive c: write: cd c:/ ----- Why did you port the very old bash 1.14.2 and not any newer version? win-bash is based on nt_bash which was based on bash 1.14.2. The port was primary started to make un*x shell scripts run on windows. All tested scripts worked fine with this old version, so the primary goal of the project had been reached, even with this old bash version. ----- TIP: When using win-bash as the default shell for UN*X shell scripts, you may which to copy bash.exe to sh.exe to make scripts starting with #!/bin/sh work.