msys2 has an impressive package list [1] and is almost [2] an amazing solution for mixed-platform projects.
[1] https://github.com/Alexpux/MINGW-packages)
[2] The one caveat is that it is still susceptible to the Cygwin BLODA problem whereby under certain conditions and software combinations, Windows becomes dangerously unstable after too many calls to fork.
And this is why I can't hate Microsoft. They've vastly improved over the past 20 years! Why, I remember when Windows became dangerously unstable when you did not properly release a GDI resource or passed the wrong things into RegisterClass...
While part of me still wants to tell would-be hackers to just switch to OS X or Linux, I've realized recently that a lot of hackers are bound to Windows because they use various software that only works on Windows, like games, or because of social limitations.
I have no clue how good Babun is, but I have no clue how I ever got anything done on Windows without a Unix shell. Cygwin is not out-of-the-box enough, and the package manager is buggy. If Babun really works, I think it will matter a lot.
That said, I was much more productive on Windows for many things. You mentioned games. Game development is much larger on Windows. More access to more engines, tech, examples, tools, etc.
Visual Studio's debugger still blows away anything I've seen on Mac or Linux. PIX, Microsoft's GPU debugger is still the standard to be met.
.NET, C# and Windows Forms were amazing ways to bang out tools for artists and designers that I've seen no match for on other platforms yet.
I guess the short of that is, it really depends on what you're working on.
But I'm still amazed that those things are missing on other platforms. It's not like Visual Studio is some new product. It's been arguably the best debugger for 15+ years? It's surprising that no one as duplicated it on other platforms.
Same with Windows Forms. Sure there are UI libraries but none of them have that perfect storm of features that makes banging out certain kinds of apps so easy. I'm guessing the most used features are Windows Forms Property editor (point it at a class, get instant interface to edit all of the class's properties). Another is probably their data grid editor.
So yea, I love me some unix shell but I'd prefer not to have to choose a good shell vs good other things.
I'm a self-taught programmer. I've basically been using linux 99% of the time for the past five years, and just have a partition that runs windows if I need it. Funnily enough, the first real programming gig I landed is a full time job doing full stack .NET development, so now it's sort of flipped around. I do miss the command line. I'll have to check this out. I've been looking for a good windows shell replacement.
You should take a serious look at using powershell, they've aliased a lot of commands to what you expect on linux so you're not completely foreign and it's got a similar workflow mentality you're used to i.e pipe commands.
And you can work with .NET natively.
That said it is NOT to imitate linux, it's conceptually not the same which is good because Windows isn't either.
Here's a 101; commands are `verb-noun -parameter value` these pipe | objects(!) not strings. The first thing you should do is win+R powershell type: get-alias and after that `get-help ls` just drop in powershell wherever you used to calling cmd and see how it goes.
Another word of advice: Try to use the pipeline as much as possible. Passing objects through the pipeline is a core concept of PowerShell for a reason. Don't try writing C# with PowerShell syntax (as I see so many people do on Stack Overflow).
Some answers I have written on SO that exemplify that:
I just glanced at the top post you have linked here (I'll definitely take a look at the others later). At first glance it reminds me of unix pipes, clojure's thrush operator, and F#'s pipe forward operator. (they're all different from one another, of course, but the general idea of threading data through pipes/filter/transformations to get what you want)
If I'm not totally missing the mark there, and that's the idiomatic way to do things, I'm glad. I really prefer dealing with scripting/command line stuff that way.
Powershell is a great language. I would love to see unix shells inspired by it.
The associated toolset, on the other hand, is clearly not there yet. As soon as you start doing real things with PowerShell, you will hit all sorts of bugs and limitations.
Remoting and signing has been a nightmare to set up on my domain but otherwise so far I'm still having a pleasant experience. Obviously the console itself is the same as cmd's which is terrible. I just work a lot with the ISE open but still looking for a slicker terminal.
I've been able to just deploy PS v4.0 across all of my computers I think a lot of the headache comes from trying to use new stuff and seeing windows 7 ship with v2.0
I'm curious what kind of things you're running into, I'm getting quite immersed in using PS all over.
Well, what you said, crappy console, no ssh (the powershell equivalent is just not very good), but also, no grep (findstr is not a good substitute), no rsync, etc.
Whatever I've attempted I've always hit unexpected walls due to the unavailability of tools we take for granted with linux.
"grep, sed and awk etc are really great on nix because they're great with text, they're text based operating systems and you can do anything with them. Windows is an API based system so just moving text around doesn't get you very far."
There's a mountain of filters available in the cmdlets parameters but specifically since you mentioned grep. findstr is not powershell it's in the old cmd family of programs still in your PATH. You want to look at select-string http://technet.microsoft.com/en-us/library/hh849903.aspx
I wish MS would include SSH but the party line is they've no idea who really wrote the code and they won't include it in windows in case they get sued over it.
The other thing worth looking at is the MinGW project. It's pretty easy to get started with the mingw-get package manager (there's an installer you can find here: http://www.mingw.org/wiki/Getting_Started).
Once you have mintty running as your terminal emulator, and a decent shell like bash, life gets a whole lot easier.
The upside is that it's fully native without Cygwin's compatibility layer. The downside is that it won't have as many ported utilities (and probably not as easy to get started with as something like Babun).
Well, I'm on Windows because I don't bother. It's just my workplace machine, running browsers, terminals (so thanks Babun, will try it out now) and a bit of other stuff I don't need Linux for. Yes, my private notebook runs Linux. All my servers do. But our IT departement is Windows centric, and that's about that. While I'm free to configure my desktop machine just the way I want, I prefer to not spend time doing this. I just use the Windows system they gave me, and when it breaks, I call in and they will give me an off-the-shelf new one. Not in a mood to spend my time with fiddling with my desktop machine. The most complex piece of software it runs is the browser.
I haven't been gaming lately nearly as much as I've used to, but it's still a big part of my computing needs and I just can't get good enough performance in Linux even though PlayOnLinux really has made installing games easier.
I'd love nothing more than run Linux as my main OS, but I hate having to reboot whenever I feel like playing a game.
I wish I knew why so many Windows devs hate Cygwin. It has some pretty poor default settings, but you can change your .bashrc just like on Linux, or ditch the whole thing and use zsh instead, which works out of the box with oh-my-zsh (it looks like Babun does this as well.) For me, Cygwin is a very comfortable environment for git, programming and basic file management.
It's also the only way to get Linux shells to run on Windows, since they all rely on fork(). Even MSYS is just a fork of Cygwin 1.5.
How is it not a cygwin (well, technically gcc for cygwin) problem? The port of gcc was bad, that's all there is to it. When I found a bug where a certain version of clang on ARM wouldn't compile a program everything else was compiling, was it a problem with my understanding or was it a bug with clang?
cygwin's ports aren't going to be 100% perfect, not sure why you would claim that if there's a problem with it, it's MY misunderstanding that's the problem.
I was actually expecting a new GUI shell for the recent windows versions. I used to run bb4win in the w2k times, but it doesn't look like win 7/8 have any popular alternative shells available. Does anyone know of those?
It's actually a really elegant key combination that I definitely did not have to look up 10 times before it stuck because no other program uses it.
And of course powershell, which doesn't Get-Have-The-Most-Over-Verbose-And-Stupid-Naming-Conventions-Ever and have a terrible language design that results in [console]::writeline("Powershell {0} being a complete farce", "not") solves a lot of these problems.
1. Clink [−7½] and PSReadLine [𝜋] both enable you to press Ctrl+V. On Unix-likes you're told to use a better terminal emulator to handle such cases nicely (something like ytcxbcixvt or what's hot these days) and most people don't think twice about heeding that advice, yet on Windows people willingly suffer, grumbling and complaining?
2. gal and Tab help a lot. And I actually prefer commands like Import-Csv over things like almf in readability (at least they weren't formed by bashing your head on the keyboard). But that might just be me.
3. 'PowerShell {0} being a complete farce' -f 'not'. In the scripts I've written I could probably count the number of [Console]::WriteLine calls on one hand (unary).
I've been using ConEmu [0] for over a year now, and it's miles better than the default console. I actually spend a majority of my time in Windows in the console now.
Blackbox is working on windows 8. If you head over to deviant art you can find some shots of working setups on the Blackbox group: http://blackboxdesktop.deviantart.com/
I ran a whole lab of Litestep customized for a library once. I loved it. Later on, when I got into Linux, I fell in love again with the more exotic WM's largely because of my experience with Litestep.
I have to admin Winboxen all day, so I should try it out with Windows 7. I have not used it in ages. What is said is, last time I had this inclination, they lost part of their CVS/SVN history (after a recent upgrade) in part due to lapsing hosting or something.
I think I begged for a copy of the repo for nostalgia and got it from a newer dev.
Long live Litestep! Try to have a student hack into a Windows kiosk running Litestep, and boy oh boy will they (and so did I) find it difficult to get into system tools on the spot!
I was also expecting a new GUI shell and used to run GeoShell and Litestep. I got somewhat excited and hoped that there might be a resurgence in the popularity of Windows shells but it seems like that time is gone for good now.
If I recall correctly, the Windows XP release managed to stabilize the Explorer shell quite a bit (compared to Win9x) which in turn decreased the demand for a lightweight, stable and customizable replacements.
Invariable all of those are referred to as »shell«, sometimes even by people who ought to know better. The linked site makes the same mistake. It's not a new shell for Windows, it's just zsh bundled with cygwin.
I've been using Cmder(http://bliker.github.io/cmder/) for quite some time when I'm on Windows, normally I just develop on Vagrant or Nitrous using Nitrous Desktop, so when I develop I'm always using an UNIX terminal, Cmder allowed me to do so on Windows, it depends on Console2 and it's quite nice, but oh-my-zsh is actually way more awesome, if this works nicely I'll consider switching. Babun seems to be much more serious than Cmder though, the fact that you can update it using 'babun update' and you can create plugins and such makes it so much potent.
I immediately recognized the `pact` tool to be a clone of `apt-cyg`. Did a search on the repo source to confirm (https://github.com/babun/babun/blob/45484c55a3b017248329ddd5...). It seems as if the author of Babun is trying to pass off apt-cyg as his own creation.
Going down the list of Babun features, it doesn't look like much more than repackaged cygwin. I thought pact was the biggest innovation, but as a clone of an existing project it seems misleading to call this "a new Windows shell."
It isn't without value, as others have said cygwin could be made more usable out-of-the-box, but a little more credit should be given where credit is due.
That looks like mostly a skin for conemu, no? I've desperately wanted to like conemu, but every time I use it something ends up broken in weird ways (hung tabs, garbled output).
I tend to install absolutely the whole cygwin (32-bit and 64-bit in two different folders). Always use the stable, and install the debug, since it's easier this way. It's quite big (~20 gb each install - but that includes all debug symbols).
I'm using all the time Far Commander calling cygwin commands. Some of the commands are not "callable" since I'm not running Far Commander through bash.exe/sh.exe (it's possible but a bit unstable). For such cases when the cygwin command does not have .exe/.com/.bat extension I run it "sh -c cmd blah", or create shortcuts for most used commands:
gitk.cmd (somewhere in my PATH)
@start /B ash -c "DISPLAY=:0 exec /usr/bin/wish /usr/bin/%~n0 %*"
Everyone who would be satisfied by Cygwin is already using cygwin. so this will not help them.
and people using CMD must use CMD for some reason, and even though that crowd would be please by just being able to maximize their windows, this does not offer any improvement for those people.
and it looks like they don't really want to fix it:
>We need an install.bat fix to stop the installation in such cases.
The problem is, especially on older Windows machines there are always spaces in directories - XP and 2000 have
'Documents and Settings' in their %USERPROFILE%, so installation will always fail on these (?!?), others will have problems with having a space in their user-name.
Unless your asshole infra team configure the SOE to actively bork vbox installs because everything is a "security risk". (But are still running EOL WinXP).
I don't mean to sound like a prick, I'm just genuinely curious as to why someone would use windows for some CLI work. Are you using some software that isn't available on more developer-friendly operating systems?
1 and 2 are perfectly legit reasons to use Windows. 3, though seems weird. If you're installing something like Babun to make your windows machine act more like a nix machine, it seems reasonable to assume that a nix box would be better for your development needs, and that you have some other reason for using windows (like #1 or #2).
Well, if you're developing for Windows, or developing for the web and need to test Internet Explorer, or if you're either doing UI design or dealing with other people's UI designs and need access to Photoshop or Illustrator, or if you're using Visual Studio at least some of the time, or if you're working with a MySQL database and want to use something like SQLyog... there's lots of tools on Windows that can be useful for developers, and someone can very reasonably conclude that Windows (through something like this) offers better access to nix tools than nix offers to Windows tools via Wine.
Keep in mind that it's making the box act MORE like something else, but NOT less than what it currently is. People using cygwin and stuff like babun don't take away from windows, they add to what windows already provides, gaining a more diverse toolbox. On the flipside, adding things windows provides to *nix boxes to gain the same diversity in the toolbox would be very very hard.
My situation is I have a Windows machine I game on and don't like rebooting all the time to get into my arch partition. It'd be nice to have a good shell to do some dev work on if I wanted to fix something really quick without rebooting. Right now I just boot up a vm and work on that. Shells I've used in the past (ConEmu, Console 2, Cmder) have all been good, but not good enough.
Yes, compatibility with existing software is a big part of it. Unless you're exclusively developing for _nix environments you'll have to use Windows at some point.
Also, I think Windows has (or had, depending on preference) a great GUI and a dismal CLI, while _nix is mostly the other way around.
Apple makes it hard to run OS X on anything but Apple hardware. For anyone that doesn't want to be bound to Apple hardware, this is not really even a real option.
It's trickier to get OS X working on a laptop, but building a Hackintosh desktop is quite easy. A lot of motherboards are entirely compatible, while everything else (CPU, RAM, storage) works anyways.
Aside from the fact this is not strictly legal, my experience has been that this is more effort than it's worth. And if you have any hardware that's a bit non-standard, you can forget about it.
Like I said, building a Hackintosh desktop is as easy as building a Windows one. If you want to install OS X on a random PC that's laying around the house, the outcome will of course be different.
Why wouldn't you want to be bound to Apple hardware? I've yet to come across a laptop form-factor that even approaches the Macbook Air. The hardware is a strong selling point for Apple devices. Sure, you might be able to put together a more powerful machine for a lower price, if your time isn't worth much to you or you enjoy building computers, but have fun machining an aluminum casing for it and getting it under 3 lbs.
The Macbook Air has had a pretty embarrassing screen resolution for some time now. There's also a dearth of peripheral connectivity for more advanced setups. That's even assuming I want an ultrabook and not something else entirely.
It seems a little arrogant to assume your specific hardware requirements are everyone's hardware requirements.
If you have a tight budget? If you want to play games or generally have desktop class hardware without buying a Mac Pro? If you want a higher resolution display than the MacBook Retina ones? Touchscreen?
I prefer Apple hardware, but I'm not exactly a fan of being bound to it.
Absolutely agreed. Form factor isn't nearly as important with desktops, especially when you can put any OS you want on it. I'd happily run a Hackintosh on desktop, if I were a fan of desktops at all.
While I am actively infecting my org with FOSS, those of us working in corp land are often forced to use a Windows box behind an NTLM proxy and are blocked from installing vbox.
I find it kind of funny how the first thing I wanted to see about this shell was screenshots. That said, it does feature syntax highlighting so that's not entirely ridiculous.
Yes! Select the ctrl+shift+letter option in Keys, and you'll even have ctrl+shift+c and ctrl+shift+v working. That, and the console window auto adjusts to resized window makes for a great start for me. Not to mention the ctrl+scrollwheel or plus/minus for changing the font size. Kudos to the devs.
msys2 has an impressive package list [1] and is almost [2] an amazing solution for mixed-platform projects.
[1] https://github.com/Alexpux/MINGW-packages) [2] The one caveat is that it is still susceptible to the Cygwin BLODA problem whereby under certain conditions and software combinations, Windows becomes dangerously unstable after too many calls to fork.