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?
can I fireup putty and login to an windows server? or wait will I need to buy server 2019 to get this server side?
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.
Is it to keep up with the Linux's terminals, provide better displaying or Linux apps or establish bragging rights on who has the best console interface?
When I RFTA, they even note that while Unix/Linux is file based (which makes a "terminal" console more appropriate) Windows is object based with dialog based apps providing access to the system and utilities. I do quite a bit of development on Windows (7) and I really don't find that I need to access the system via the "MSDOS Prompt" console and, when I do, it's adequate for my needs.
So, while I would have liked a better console for MS-DOS 3.x and OS/2 1.x, I really don't see the need for revamping it for Windows 10 and beyond.
As for running Linux apps on Windows 10: I would rather suffer the minor inconvenience of turning 45 degrees to my Linux box rather than the major security risk of Windows 10.
Mimetics Inc. Twitter
When we take over and kill Linux as a stand-alone OS and make it available only under Windows, at least you'll have a command line window that won't make you cry -- even though your tears of loss over your silly little free 'open source' OS will still be sweet to us. Mark my words, Slashdotters, Miscreant-o-soft has had Linux in it's sights for a while now. Don't say you weren't warned when they lock it out of booting on your hardware.
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
They're not decades late, they chose to be insular and keep things comparatively stupid. Now a few UI folks can fix it, having spent decades fixing the rest of their stuff.
Microsoft is about revenue, never make a mistake thinking there's an ounce of altruism in what Microsoft is, does, or plans.
If you want pointers to the body count, let me know. Or if the SCO-Linux-Kernel debacle wasn't enough, let's just say that they don't do UX for free...
---- Teach Peace. It's Cheaper Than War.
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.
macOS is a full blown UNIX. How is their CLI an afterthought? There's actually a lot of stuff you can do in Terminal that you can't do via the GUI. Like creating bootable USB stick installers for macOS. Also lots of admin only settings available there.
There are two rules for success:
1. Never tell everything you know.
Next I would like to see Microsoft make CLI versions of all the traditional windows management tools, and then for legacy GUI tools
Your wish has been granted.... like.... nine years ago. Where've you been, dude and/or dudette? As a random example: Microsoft added Managed Service Accounts in 2008 R2, and you can see a "Managed Service Accounts" folder in AD Users and Computers, but you cannot create or edit them there. You -must- do it through Powershell using New-ADServiceAccount. Here's a blog post from 2009 on the subject.
Pretty much the only parts of Windows you can't configure through the command prompt, are some of the GUI elements. For example, there is no way to change what is pinned to the taskbar, nor can you programmatically set whether a tray icon will always be visible or not. Folks at Microsoft have said that this limitation is intended to protect the user from app installers that inject themselves all over the place. Setting crucial visual things like display resolution is also disallowed (except on Server Core, where there is no GUI to do this).
Still, it seems MS can eventually recognize what works. This will give all those GUI-only IT "experts" fits, of course.
As one of those people likely to be maligned as one of those "GUI-only IT 'experts'", I'll throw a few quick thoughts out there for your consideration.
First off, CLI doesn't always scale down. Making a hundred users in a domain environment? Sure, that needs to be scripted. Making just one? in most cases, quicker in a GUI environment.
Next, GUIs make things discoverable. using "/?" and man pages is a start, but the results of things aren't always readily obvious; GUIs can better reflect this. Discoverability is also helpful in scenarios where a task is done once every four months - recently enough to generally-remember it, long ago enough to forget the precise syntax. StackOverflow can help with that, but if lookup time is factored into the time entering the command, it's basically-impossible to make the time saving argument.
Finally, at least for myself personally, I don't administer the same exact set of systems all day, every day. I deal with everybody's systems. Some run Hyper-V, others VMWare, some have Sonicwalls, others have Barracudas or SOHO routers. Supporting end users means I need a functional understanding of their software, meaning I can somewhat-interact with a number of pieces of software specific to law firms, doctor's offices, restaurants, retail establishments, and others. GUIs (well-done ones, anyway) provide cues so I can generally figure things out upon first use if I know the underlying concepts. CLI syntax isn't as easy to pick up, especially in situations where the goal is to pick it up fast.
Sometimes, GUI is the right tool for the job, and the people that administer them are dealing with many, many different kinds of systems. It doesn't make them dumb (though there are PLENTY of dumb ones), any more than knowing how to use a CLI doesn't inherently make one smart.
MacOS became Unix with MacOS X. Up to and including version 9 it was not Unix.
There is nothing wrong with using a GUI when it is efficient for the task at hand. There is a lot wrong with calling yourself an "IT expert" when you cannot use or are severely limited on the command line.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.