HACKER Q&A
📣 brundolf

Why hasn't anyone made a bash-like shell that directly targets Windows?


I get that some aspects of bash and friends are wrapped up in Unix/GNU/etc, but not everything. It seems like there are lots of core commands and basic interaction features, and maybe even some things like Linux-style piping, that could be replicated on Windows without bridging the entirety of the Linux system interfaces for 100% compatibility (like WSL does).

Why isn't there a native Windows shell out there that's just designed to be comfortable-enough for bash users, in the low-hanging ways?


  👤 clarifier123 Accepted Answer ✓
If we're talking about native (i.e. not using Cygwin or MSYS) shells, I believe Hamilton C Shell is the closest thing: https://hamiltonlabs.com/Cshell.htm

It has some drawbacks, though, most notably lack of Unicode support.


👤 gjvc
probably because most "use of bash" in practice rapidly reduces to "use of a subset of the unix toolset" which doesn't exist in the same environment, so -- just the bash shell itself on its own -- would be like a fish out of water.

👤 sally1620
Microsoft took this matter into their own hands and the result ended up being Powershell.

In the first iteration, they just ported Korn shell to windows but it wasn't that useful. So after a couple of iterations they ended up with Powershell.


👤 steverb
You mean like https://www.cygwin.com/ ?

👤 runjake
Putting aside the fact that there’s various bash implementations for Windows, Windows is not UNIX.

UNIX is file-based and Windows is object-based. Windows and UNIX users/engineers tend to have vastly different philosophies.

When Microsoft set out to create a new shell that rivaled bash, they came out of it with PowerShell.

I think they succeeded with that, PS performance issues aside.


👤 yuppie_scum
Is this not Powershell?

👤 the__alchemist
Windows terminal (https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk...) combined with the new PowerShell is nice, and borrows syntax from Linux terminals.


👤 valiant-comma
The built-in Windows Command Shell is actually quite capable. However, syntax is rather different than *nix shells.

👤 ElectricMind

👤 jerrygoyal
why WSL and WSLv2 hasn't been mentioned by anyone.