top | item 33324582

Ask HN: Are there no shells for Windows other than PowerShell and CMD?

11 points| piuvas | 3 years ago

And I don't mean terminal emulators, because I know Console Host, WT, Kitty, Alacritty. I mean shells like bash, zsh.

How come there are so many alternatives for linux but none for Windows?

Nothing against PowerShell, I'm just curious.

21 comments

order

delta_p_delta_x|3 years ago

Why not PowerShell, though? If you ever want to directly administer Windows through the command-line, PowerShell is increasingly your only bet, as older CMD executables are deprecated.

I'll suffix with my opinion that PowerShell is much nicer than many POSIX shells, especially given its hybrid object-oriented + functional pipeline paradigm.

pixl97|3 years ago

And following on this, for the longest time Windows only had extremely limited ability to manage itself via the command line and things were very haphazard on how you could manage them on the CLI. You were probably just using the CLI to edit the registry and restart serivces/executables at the best case.

This is really the reason there are no shells for windows. There wasn't anything for the shell to do! No massive collection of small executables linux *nix that were shell oriented. No system design around CLI management.

Around Windows 2016 or so I would say this changed with Powershell and with a number of design changes by Microsoft that allowed much better remote management (and not fully depending on GPO to do it), and I even run into some customers that have headless windows servers these days.

andrewf|3 years ago

There's 4DOS descendent Take Command: https://jpsoft.com/

BiggsHoson|3 years ago

+1 for Take Command. I've used it since its mid-90s iteration, and still use it nearly every day. It has a great mix of command prompt features and batch file language enhancements.

anigbrowl|3 years ago

Way back when there were a few substitutes for command.com, but none of them offered sufficiently utility to gain traction outside of the IT department. And since it's now trivially easy to run a unix virtual machine and do your command line stuff there if you want, I'm not sure there's much inventive to develop alternatives.

runjake|3 years ago

There's plenty. Do more research.

- WSL -> Bash (Best, IMHO)

- Cygwin (old, slow IMHO)

- Git Bash (essentially includes bash for windows with a bunch of the more popular add-ons.

But, PowerShell is a pretty great shell, too. Make sure you're running the latest 7.x version, as it's improved tons.

metadat|3 years ago

What classification does Cygwin fall under?

It can run most or all of the widespread *nix shells.

Kukumber|3 years ago

I personally don't count powershell as a shell, it's more like an interpreted/jit compiled .net interactive CLI 'shell', hence why it is slow to start and to run

A shell is a program that takes your commands and send them to the OS, it doesn't compile anything

naikrovek|3 years ago

a shell is what you type your commands into. a shell interprets those commands, pipes between them, and to and from file handles, and acts as the interface between the human and the things they want to do.

bash is FAR slower than PowerShell, and it's interpreted.

spacechild1|3 years ago

I always use the Msys2 shell.