Babun – A new Windows shell
babun.github.io
babun.github.io
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.
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.
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).
MSYS/Mingw are native ports of the GNU software tools and friends.
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.
Some answers I have written on SO that exemplify that:
• http://stackoverflow.com/a/7394766/73070
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.
Really appreciate the information!
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.
Your mileage may vary, of course.
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.
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.
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'd love nothing more than run Linux as my main OS, but I hate having to reboot whenever I feel like playing a game.
Yes Cygwin brings some unix goodness, but it has enough warts that I avoid it.
(not really Cygwin's "fault" per se, but it is what it is)
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.
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.
(Or alongside if you want to say it that way.)
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.
alt-space > e > p becomes pure muscle memory.
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).
Turning on tab completion requires some fiddling though (and I have no idea if it survives in newer version of Windows).
(I anyway wouldn't try to defend them as solutions, just clarifications of what is possible)
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!
1. Command-line shell (cmd, PowerShell, bash, whatnot)
2. GUI shell / desktop environment (Explorer, Gnome, KDE)
3. Console host / terminal emulator (conhost, console2, conemu, xterm, ...)
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.
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.
Surprise: It's not!
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 %*"
I also have this in the Startup folder: startxwin - 1>nul 2>nul
Tig is also awesome for git browsing.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.
sadly, i'm in the second group.
https://github.com/babun/babun/issues/74
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.
This seems to stem from Cygwin.
2. Because their company has standardized on Windows desktops and/or hardware.
3. Because some people might actually believe and have good evidence that Windows is a more "developer friendly" operating system for their needs.
OS X just doesn't cut it when it comes to keyboard shortcuts and window management... Linux is nice but lacking in stuff not related to development.
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.
I prefer Apple hardware, but I'm not exactly a fan of being bound to it.
It seems a little arrogant to assume your specific hardware requirements are everyone's hardware requirements.
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.
Thank you so much, that's pretty awesome.
s/fuzz/fuss ?
> There's also a rich syntax highlighting
> invokes vim
Durrrrr