Microsoft Is Making the Windows Command Line a Lot Better (arstechnica.com)
An anonymous reader quotes a report from Ars Technica: Over the last few years, Microsoft has been working to improve the Windows console. Console windows now maximize properly, for example. In the olden days, hitting maximize would make the window taller but not wider. Today, the action will fill the whole screen, just like any other window. Especially motivated by the Windows subsystem for Linux, the console in Windows 10 supports 16 million colors and VT escape sequences, enabling much richer console output than has traditionally been possible on Windows.
Microsoft is working to build a better console for Windows, one that we hope will open the door to the same flexibility and capabilities that Unix users have enjoyed for more than 40 years. The APIs seem to be in the latest Windows 10 Insider builds, though documentation is a little scarce for now. The command-line team is publishing a series of blog posts describing the history of the Windows command-line, and how the operating system's console works. The big reveal of the new API is coming soon, and with this, Windows should finally be able to have reliable, effective tabbed consoles, with emoji support, rich Unicode, and all the other things that the Windows console doesn't do... yet.
Microsoft is working to build a better console for Windows, one that we hope will open the door to the same flexibility and capabilities that Unix users have enjoyed for more than 40 years. The APIs seem to be in the latest Windows 10 Insider builds, though documentation is a little scarce for now. The command-line team is publishing a series of blog posts describing the history of the Windows command-line, and how the operating system's console works. The big reveal of the new API is coming soon, and with this, Windows should finally be able to have reliable, effective tabbed consoles, with emoji support, rich Unicode, and all the other things that the Windows console doesn't do... yet.
why does a text console need emoji support?
The best way to make CMD livable is to install Take Command. I've been using it since it was called 4DOS back in the pre-Windows days. It has always provided tab filename completion, history, etc (all those nice things in bash) and a much larger command set.
But way too verbose and complex... sorta like a java version of bash.
As long as it continues to be a SaaS spyware product with forced updates/upgrades, and has an onerous, unacceptable privacy policy that claims the right to access all of my personal data, I don't care if they make it nicer than my favorite desktop Linux distro. I'll never use it.
Next I would like to see Microsoft make CLI versions of all the traditional windows management tools, and
then for legacy GUI tools; Group Policy Editor, Active Directory Users and Computers, Domains And Trusts, Sites and Services.... make the traditional GUIs Read-Only solely for display and reporting
You should really look into PowerShell, doubly so on Server.
Microsoft has something called the Common Engineering Criteria which lays out a set of requirements in order to ship something... as far back as 2011 (I think) there was a requirement that any administrative action you can do with the UI, there must be a cmdline option, with heavy emphasis on PowerShell. The exclusion to this is for pre-existing UI. Add/change a feature, cmdline equivalent is required, leave an older thing untouched in next release, it doesn't require touching.
Of course half of the exposed options were just WMI endpoints, which can be tweaked via PS even if no official cmdlets were created.
Source: Former MS employee.
powershell has some of the worse syntax I've ever seen in scripting. Way too much punctuation, object name lengths are too long, oh, and it's slow as fuck.
Amen, Brother. How on earth do they let such bad ideas percolate to the end user? I still haven't forgiven them for The Registry: want to change an operating system setting? Just remember this simple GUID: 229G-A17B-CC2E-82DD-E1AF-...
If you post it, they will read.
I'm a largely GUI-centric dev on Windows, but I think that's because Windows tends to work that way, and consequently has a lot of really nice GUI-based tools. For instance, there are nice GitHub desktop clients for Mac and Windows. But as for Linux? Nope - command-line only. So, when I work in Linux, I just sort of assume I have to keep various terminal windows open all the time, and that I'll probably be writing more scripts than when using Windows or Mac. It's just sort of the way things are done.
I'm comfortable working either way. However, I will say that I vastly prefer Bash to Powershell for CLI scripting. Bash is simple and fairly easy to pick up, if a bit on the clunky side. Powershell feels a bit over-engineered and overly-complex even when doing fairly simple things, and I've never bothered investing the time to really understand it all that deeply. So, I'm very happy about Linux tools, including Bash and various other CLI utilities, being ported to Windows. Because no matter how complete a GUI-based solution you have, there are almost always going to be times when you need to drop back to CLI tools if you're doing something outside of the GUI tool's expectations.
Irony: Agile development has too much intertia to be abandoned now.
I thought I was a reasonably intelligent human until I encountered PowerShell. 5 minutes with it, and I feel retarded. I haven't determined if it's because I'm too stupid to digest that syntax, if my brain cells are forcefully refusing to, or they're outright committing ritual suicide.
What more needs to be said. It is ... different.
Unix shell works on strings. Powershell works on objects. That is an important difference. Especially if the strings have funny characters in them.
As to speed, it is .net, so I presume compiles down to machine code.
The big caviat though is I'll bet a CLI guy has a better chance of success when GUI is the right tool than a GUI guy does if CLI is the right (or only) tool.
Learning CLI is well worth it.
See, the UNIX paradigm has been something that Microsoft has never been able to swallow. Keep it simple. That's it. That's why all the UNIX commands we know and love have survived through the years, they are simple. They get the job done.
Stuff has been added, sure, but most of the original shell and common system commands have remained the same, decades on. Some 50 years of sameness and simplicity that Microsoft will never understand.
In all my dealings with Microsoft software, they seem to strive to make things as complicated and insane as possible. Even this new powershell, the commands are needlessly long, with long parameters names and very strict syntax. And not to be outdone, a whole new spam of technobabble error messages. Their APIs and programming languages are the same way, sure they are pretty powerful, but the complexity, nothing is simple. Simple isn't something Microsoft does. So they'll never be able to ever be 'unix' like.