Hacker News new | past | comments | ask | show | jobs | submit login
Babun: a Windows shell (babun.github.io)
81 points by znpy on Oct 14, 2015 | hide | past | favorite | 49 comments



Like every discussion about a windows shell, most of the comments are people saying "Actually I suggest you use cmder/clink/cygwin/msys/gow/powershell/etc".

An extensive write up on the features, advantages, disadvantages, and the use cases for each, is sorely needed.


I tried a few of those, so I will share my experience with powershell and with cygwin as well as Babun which I enjoyed:

* Powershell - Easy to use, typically comes with Windows, or not too complicated to install. Does plenty of unixy commands (ls, mkdir, all come to mind, not sure how many others). Definitely an improvement over plain old cmd, but sometimes it doesn't sync with system variables (could be a PEBKAC issue though) but it is definitely usable.

* Cygwin - Works great, I would say somewhere about the same as Babun (I think it's based off of it if I'm not mistaken, but with it's own tooling, packages are from Cygwin if I'm not mistaken), my only "complaint" was to do with how it installs and what not, I think you're asked to pick a mirror and packages, someone feel free to point out if my assumption is wrong or if this has changed, I think it's an alright thing, but I rather be able to not even think about what I want to install until after I've installed it.

* Babun - I honestly had a great experience using it, and definitely used it frequently enough, you would run a bat file and it would copy itself into your userdata folder when I used it sometime back, and came with plenty of the tools I wanted and it's own toys.

In the end I say try them all for yourself (if you can) and use whatever is best for you. I would recommend starting out by trying PowerShell before the rest of these because it already comes with Windows sometimes saving you time, but that's just a solution for lazy people.

In the end I ended up just going all in for Linux since my experimentation with these shells. If and when I go back to Windows (it's been half a year now or more) I'll likely use Babun or just plain PowerShell.


The trick with Cygwin is that to install packages you just go back and run the installer again. So you can "think about what to install after you've installed it" if you like, but you can also get the ones you know you'll need (SSH for example) straight off the bat. It's not the most elegant system, but it's ok.


I have a little batch program which automatically checks for the latest cygwin setup then run it to check for package updates in a least intrusive way:

https://gist.github.com/ryenus/4a67039eccda13ee7e1f


One minor nitpick: Powershell is always available. XP/2003 is well out of support and shouldn't be installed. Vista and 2008 came with it once SP1 was introduced.


Just because they're out of support doesn't mean there aren't still existing installs around.


If they're being used professionally without paid extended support from Microsoft that's a bad sign.


Conemu should be first on that list.


I'll write one up if I can get some collaborators / donations.


Another alternative I suggest to folks on windows: https://github.com/cmderdev/cmder


cmder using git bash is what I use and it's almost perfect. the only thing missing is multi-pane inputs. for that I use MobaXTerm.


and dont forget git bash inside intellij


Using a UNIX shell on Windows has very few advantages, mainly just familiarity from those coming from a UNIX shell background. Although it is more verbose, PowerShell is quite good.

As for the terminal, the Windows default is pretty awful. It is nowhere close to iTerm in polish or functionality.


I disagree that a Unix shell has few advantages. :) It's critical if you're trying to work in a cross platform environment. If a colleague gives me a .sh script, I need some way to run that.

There's also a huge benefit to having access to the ecosystem of Unix command-line apps. A few of the major ones have been ported over to run natively on Windows, but there's a lot that will never be.

As I mentioned in another comment: Every modern OS except Windows has a Bash-like shell and environment. I can move easily between MacOS, Linux, FreeBSD, Solaris, Android, and iOS, and it feels similar. But every time I use a Windows machine, nothing I've done elsewhere translates. Cygwin helps bridge that gap.


The default terminal got a bit better in Windows 10. I've been trying to run stock for the last few weeks (rather than installing ConEmu (https://conemu.github.io/), which is what I used on Windows 7) and it's been mostly okay. They've still got a long way to go, but at least Copy and Paste finally works.


The weird thing is, I came from Windows, migrated to Linux in the past 2 years or so... been using Windows since 1996 prior... and I can't get used to Powershell. I just hate it. It's so fucking cumbersome. It definitely feels like something that was tacked onto a GUI as an after-thought.


I've been using Powershell for almost all my Windows interactions for the past 4 or 5 years, and there are definitely a few minor things I always end up missing from the UNIX shells. That said its come a long way from the v1 days, and it keeps getting better with every update.


It's nowhere close to Terminal.app.


Which is the fair comparison.


Windows comes with powershell ISE which TBH shits on everything. No one seems to know it exists though.


Looks like it fixes the suck (lack of package management) of cygwin, very nice!

Cmder/conemu http://cmder.net/ is another nice console emulator for windows


Been using cmder for 2 years and I can't live without anymore, it's just a bunch of stuff together but it's great.


So Windows users are calling everything a "shell"? The 'terminal-emulator', the execution environment, the userland, the programming language?

What's next? The graphical user interface? ... Wait ...

Oh Lord ;-)


I find Babun slightly laggy on my system, so my go to tool is Msys2 https://msys2.github.io/

Msys2 is a fork of Cygwin, it does not do away with POSIX emulation, but I find its package management better than Cygwin's. Quite a few packages are supported

https://github.com/Alexpux/MSYS2-packages

https://github.com/msys2/MINGW-packages


Its package management is much better, since it uses pacman, although sometimes finding the right package is difficult.


+1 for MSYS2 because of pacman package manager. also Git for Windows is using MSYS2

https://github.com/git-for-windows/git/wiki/Package-manageme...


Babun and Vagrant together more or less completely solved the Development Problem for me on Windows.

I actually don't use Babun very heavily. I think of it as more of a basic, very pretty Unix-like glue. For the most part I just work inside a Vagrant VM launched from Babun. My workflow basically consists of using tmux and vim as an "IDE", so I actually find myself missing very little.


I've been waiting for a very long time for pact, looking forward to trying it when I get home.

All I really need is a terminal that, once I ssh to a *nix box, won't get in the way.



Why would I prefer this to cygwin? The detail provided here just makes it look like cygwin + a preconfigured zsh. The only advantage appears to be the installer and package manager.

[EDIT] How does this update cygwin when you have programs running that use it? Do you explain to newbies what BLODA is? The one thing I would want preconfigured is sshd which this doesn't appear to provide.


Having just experimented with Babun over the weekend... the package manager is a pretty big deal. It used to be that you had to re-run the Cygwin installer whenever you wanted to add a package. That's just silly.

Outside of that, the biggest difference is it avoids Cygwin's complicated setup process. You run the installer script, it creates a ~/.babun directory, and then it just works. No need to commit to a list of packages at install time. It gives you a very reasonable set of defaults, and if you need more, you just "pact install" it.

Supposedly it has a self-update mechanism that will take care of Cygwin updates. I haven't had it installed long enough to see it in action.

And no, they don't explain what BLOADA is. :) It's also a little tricky to run rebaseall, since the rebaseall tool doesn't like zsh running. (The workaround, btw: "cygstart dash", then proceed with rebaseall.)


Honestly, I just use conemu with bash (installed with gitextensions/msysgit) in windows... except for the /c/... drive starting the path, it's really decent... the paths are a little different bit it pretty much works the same everywhere I need it. I prefix ~/bin/ to my path and setup whatever I need in there.


I personally use ConEmu + babun for my everyday work activity on Windows system. I grow accustomed to it and it's a wonderful replacement when I have to do some lightweight Unixy thing without powering up a VM and when my Ubuntu laptop is out of reach.


i'm forced to use windows as a host to my dev environment at work and i have yet to find a fast enough console/shell. even when you remove plugins and whatever else babun provides to the standard zsh setup it's still not fast enough to do simple things such as cd with some tab-completion a couple of times a second as i'd normally do at home. the closest thing to somewhat useful i've found is "git for windows" but it too sometimes get stuck sometimes just changing directories and tab-completing. i'm using a reasonably new i5 thinkpad and i don't think close to instant feedback in a text-only environment is too much to ask.


Have you considered running a linux VM on virtualbox? I do that in situations I am forced to run windows.


Does this one work well on the Surface Pro 3? It's been frustrating with other because either they don't handle the high-density well or they aren't touch compatible...


I'm quite happy using mintty that comes with git for windows. Everytime I try one of these shells for windows I just go back.


Chrome will not let me download the zip. It is blocked. Possibly because it is uncommon?


https://github.com/babun/babun/issues/464

The zip contains a handful of scripts and executables so I think Chrome is being overly cautious.


babun does everything i need to do, but does anyone have altnerative with tabbed windows? is babun even capable of that?


You can use babun together with cmder[0] (which is based on conemu and can do tabs). Just today I installed both and I'm pretty happy so far. To use babun in cmder, follow this[1] short explanation.

[0] http://cmder.net/ [1] https://babun.github.io/faq.html#_how_do_i_integrate_babun_w...


I just use screen, I usually create several extra screen windows beforehand to workaround the slowness when starting new ones.


great name


I've used it before, when stuck on Windows for work, and it's definitely a nice project. However, there still seems to be some kind of impedance mismatch when trying to use a UNIX type shell with a Windows OS. Things just don't feel right.

Still, it's about as close as I've gotten to having something like iTerm and zsh on Windows, and it keeps my sanity, as it means I don't have to use the atrocious Windows command line.


Why should I prefer this to Powershell?


just learn powershell instead of trying to hack UNIX into windows, or just install Linux


Powershell is great, if what you're doing is scripting or trying to work with a .NET API. However, it's not so great when you want to work with a non-Windows host or work on cross-platform software. Every modern OS except Windows has a Bash-like shell and environment.

It's also missing the huge ecosystem of *nix command line apps. I couldn't see myself living on a machine with Powershell and nothing else, even though this is something Linux users can easily do.

Cygwin (and Babun) help with both of these.


I prefer using both depending on use case. Powershell for working with Windows Objects and terminal stuff that doesn't play as nicely with a POSIX like shell. Cygwin for everything else (git, bash, ssh, etc).

Cygwin is also much more than a shell (if comparing to powershell), so there's reason to have something like it beyond scripting.


I have to use Windows for some things, very irregularly. It's not worth my time to learn to use Powershell.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: