Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Microsoft Operating Systems Software Unix Windows

Microsoft Is Making the Windows Command Line a Lot Better (arstechnica.com) 328

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.

This discussion has been archived. No new comments can be posted.

Microsoft Is Making the Windows Command Line a Lot Better

Comments Filter:
  • Still, it seems MS can eventually recognize what works. This will give all those GUI-only IT "experts" fits, of course.

    • But will there still be any Windows developers left?

      Oh, well. As long as edlin still works.
      • by nazsco ( 695026 )

        There a few IT people that write IT software.

        But honest question: anyone who uses windows at this time, are still using microsoft shells? like cmd and powershell?

        The very first thing I install on windows machines is the nicely packaged git-shell stuff (NOT the github client). It will give me bash native on windows, almost better (or should I say, more practical) than cygwin.

        • RE > But honest question: anyone who uses windows at this time, are still using microsoft shells? like cmd and powershell?

          yes, i live in powershell. its very robust and functional as well as being well supported by microsoft and the windows powershell community. i cannot speak to powershell CORE, which is the cross platform edition. it has a lot of limitations in what is available compared to v5 that I use because it is based on .NET core. the powershell window in win 7 is not great -- i have to still us

    • by mysidia ( 191772 ) on Tuesday July 17, 2018 @04:59PM (#56964600)

      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

      • by Anonymous Coward on Tuesday July 17, 2018 @05:15PM (#56964682)

        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.

        • by Anonymous Coward on Tuesday July 17, 2018 @05:29PM (#56964776)

          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.

          • by jlowery ( 47102 ) on Tuesday July 17, 2018 @05:50PM (#56964880)

            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-...

          • Maybe, but piping objects between scripts is fucking amazing.

      • by Daltorak ( 122403 ) on Tuesday July 17, 2018 @06:46PM (#56965156)

        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 [microsoft.com] 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).

        • there are still some gui tools and powershell components that are not up to part, but really, powershell is where its at. anyone in the *nix world that is complaining about it, or still assuming the windows CLI is garbage, is really not very knowledgeable about what is available. I live in powershell for AD work, reporting events, moving files, monitoring services, manipulating data, comparing data....it can do almost anything these days. some people may not love the syntax, but i like that its verbose (usu

    • by postbigbang ( 761081 ) on Tuesday July 17, 2018 @05:00PM (#56964608)

      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...

      • Now a few UI folks can fix it, having spent decades fixing the rest of their stuff.

        It's more than a UI problem, that's not a normal window. It's like some kind of bizarre DOS emulator, built for windows95 which requires (required) the screen to be a specific width. The source code is so ugly and messed up, no one dared to touch it. But now someone seems to have been working at it for a year or two, and they're cleaning up the code without breaking things (hopefully).

    • by Dutch Gun ( 899105 ) on Tuesday July 17, 2018 @05:51PM (#56964882)

      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.

      • by DamnOregonian ( 963763 ) on Tuesday July 17, 2018 @06:09PM (#56964990)
        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.
        • I don't know Powershell, but when I've encountered it I've been left with the impression that it's designed more as a programming language that you write while in an editor or IDE, with typing commands in from a command line prompt was a very late afterthought.

      • Comment removed based on user account deletion
    • 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.

    • Late for whom? People who cared about the command line didn't use the command line, they used PowerShell. There was zero incentive to change anything, and lots of effort required to do it.

      The commandline is a curious throwback shoehorned into Windows internals via a nonstandard process which is why it is able to be rendered even when the GUI breaks down in safe mode, which is why it is unable to be maximised, or one from TFA I never knew about, the process drawing the window crashing will cause the system t

  • what (Score:5, Interesting)

    by nnet ( 20306 ) on Tuesday July 17, 2018 @04:32PM (#56964406) Journal
    why does a text console need emoji support?
    • Re: what (Score:5, Funny)

      by Anonymous Coward on Tuesday July 17, 2018 @04:41PM (#56964474)

      How the hell else do you expect a millenial to be able to figure it out?

    • Re:what (Score:5, Insightful)

      by DickBreath ( 207180 ) on Tuesday July 17, 2018 @04:42PM (#56964482) Homepage
      Emojis are simply a side effect of supporting Unicode characters -- at long last.

      Now Windows Console will support foreign languages.

      With bigger and bigger Unicode character sets, every font will not only have emojis, and various human languages, it could also eventually have a set of font glyphs for every possible 8x8 cell grid. (That's only 2^64 characters extra in each font!) Then you could use these font characters to display text and graphics like it is 1980 again! That would make Windows Console great (again).
      • Re:what (Score:5, Insightful)

        by Desler ( 1608317 ) on Tuesday July 17, 2018 @04:48PM (#56964526)

        So it can do things that Slashdot still can't. The irony will probably be lost on the people acting smug over this being "late".

    • Re:what (Score:5, Funny)

      by Joe_Dragon ( 2206452 ) on Tuesday July 17, 2018 @05:00PM (#56964604)

      emoji is microsoft's systemd

    • by jdavidb ( 449077 )
      It would actually be helpful for some screen-based readers I'd like to make that would scrape certain forums.
  • by Joe_Dragon ( 2206452 ) on Tuesday July 17, 2018 @04:34PM (#56964416)

    can I fireup putty and login to an windows server? or wait will I need to buy server 2019 to get this server side?

    • Re: (Score:2, Informative)

      by Anonymous Coward

      You've been able to do it through SSH for a year or so. You've been able to do it with PowerShell for quite a while now (a decade?).

    • by jdavidb ( 449077 )
      Judging by the article summary, there's still no distinction made between "the console" and "the command-line," so I am betting no.
    • You can fire up putty and login to any Windows machine providing it is in developer mode. Better* still you don't even need to fire up putty. Just use the built in ssh client in Windows. Get with the times.

      *Actually not better. The built-in ssh client in Windows 10 is quite basic.

    • I installed OpenSSH server on Windows over a decade ago. It was almost painless. Would it be nice to have it installed out of the box like OS X and most Linux distros? Sure. But that's hardly a significant difference between platforms.

  • Did they buy JPSoft? (Score:5, Interesting)

    by qzzpjs ( 1224510 ) on Tuesday July 17, 2018 @04:38PM (#56964448)

    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.

    • Re: (Score:3, Informative)

      by malxau ( 533231 )
      I've been working on a free alternative (see http://www.malsmith.net/yori/ [malsmith.net]). I won't be able to replicate all of bash, but there's plenty of nice things that can be incorporated into a native Windows shell, and it's sure keeping me busy.
    • by Daltorak ( 122403 ) on Tuesday July 17, 2018 @06:53PM (#56965212)

      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.

      Why are you still using CMD in 2018? Why should anyone pay $100 per computer for the closed-source, proprietary Take Command when they could learn Powershell instead? Powershell has full Intellisense nowadays, access to the full .NET Framework library, comprehensive built-in documentation, and thousands of commands that can reach into every part of the system. Plus Powershell is an open-source Github project nowadays. Pair it with the open-source ConEmu for a wicked-good, fully configurable console environment.

      • by phantomfive ( 622387 ) on Tuesday July 17, 2018 @07:49PM (#56965508) Journal

        when they could learn Powershell instead? Powershell has full Intellisense nowadays, access to the full .NET Framework library, comprehensive built-in documentation, and thousands of commands that can reach into every part of the system.

        Powershell redirect < doesn't work and redirect > can corrupt your files. Furthermore creating new CLI programs that integrate into the Powershell system is a pain. Powershell is great for administering Windows tools, but other than that, it's kind of crap.

  • by Camel Pilot ( 78781 ) on Tuesday July 17, 2018 @04:39PM (#56964456) Homepage Journal

    But way too verbose and complex... sorta like a java version of bash.

    • Isn't it already a C# version?
    • by rastos1 ( 601318 )
      Is it still the case, that scripts have to be signed with code signing certificate before they can be run? Some time ago I wrote a small app. It needed an installation that adjusted one text file, copied the binaries and created a registry entry. Those actions depended on the installation path, so I thought "well, let's create a small powershell script that does that" - and I was sorely disappointed that I had to get a code signing certificate in order to get the powershell script working on end-user's syst
    • The Verb-Noun naming convention for your functions is intolerable.

  • by mykepredko ( 40154 ) on Tuesday July 17, 2018 @04:39PM (#56964460) Homepage

    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.

    • by Quarters ( 18322 )

      1) Because users overwhelmingly want it (based on UserVoice)
      2) Apple has stumbled / is stumbling and Microsoft wants to be there with interesting form factor computers and an OS that supports what those people prefer to make jumping ship easier.

      • Which users?

        The users who already use powershell?
        The users who install bash on Windows?

        Certainly not the average user whose interaction with the terminal extends to that black screen that occasionally pops up when the IT administrator runs a script on their computer.

        Maybe the BOFH wanted this so the script could then provide the poor user with a very BOFH emoji: U+1F595

        On a more serious note this is somewhat at odds with the direction Microsoft has been taking of making Windows 10 more user friendly. Even t

    • by f3rret ( 1776822 ) on Wednesday July 18, 2018 @04:24AM (#56966786)

      They're doing it because MS is moving towards GUI less servers, current editions of Windows Server 2016 are "core" by standard, which means they don't install any GUI components.

  • by Rick Schumann ( 4662797 ) on Tuesday July 17, 2018 @04:40PM (#56964462) Journal

    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.

  • wtf (Score:2, Informative)

    by Anonymous Coward

    WHAT YEAR IS IT?!?!

  • by Joshs922 ( 4821899 ) on Tuesday July 17, 2018 @04:46PM (#56964506)
    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.
    • Yep, exactly why I don't like Windows 10 either. It may be a technical marvel but it's ruined by publicity, telemetry, tricking the user into using MS apps and services and so on.
  • I dual boot and because of it my time is off in whatever OS I'm in. DATE and TIME are two commands I use all the time.

    - Lost Linux Mint on a Windows update; didn't fix it for a bit, my time was always right.

  • I know a lot of people regard X11 as a bit of a dinosaur, but for forwarding a single application on a remote system, a native shim to the Windows GUI would make remote administration a whee bit less clunky on slow/high latency links... compared to full RDP session, at least.

    I also know that various remote application services can do similar things (e.g. Citrix), but since we're already talking about a potential B-movie teleporter accident...
    • by wjcofkc ( 964165 )
      I like dinosaurs a whole lot.
    • by Strider- ( 39683 )

      Uh, this is why you have Remote App stuff?

      My experience has been that RDP is far more performant and reliable than X11 over the satellite links I have to deal with compared to X11 or VNC. Not as good as mosh, but we're talking GUI here.

    • In my experience, even a full-blown RDP session outperforms X forwarding in most cases.
      When you think about it, it's not really surprising as to why.
      Forwarding all interaction with the GUI, redraw events, inputs (a lot of events are generated as that mouse moves across that window), is a lot more data than a fixed-rate rasterized product sent with compression.
  • Can we also get them to remove backslashes from paths, the /r from a newline, and add support for other filesystems and shells? That'd be swell.

    • by Quarters ( 18322 )

      cmd.exe has accepted either \ or / for path separators for years. You can even mix/match them within a command.

      C:\Users\jeff>cd ../..\windows
      C:\Windows>

    • I'll take a UNIX kernel option too instead of Windows + Registry. In other words Windows Subsystem for UNIX. To me, Linux Subsystem for Windows is like glueing McLaren parts onto a Ford Fiesta and calling the result a sports car. I'd much rather bolt some Ford Fiesta parts onto a McLaren and take that to the races.
  • Wasn't that supposed to be called Powershell? I guess I'm not the only one who didn't use it, huh?

    • by Quarters ( 18322 )

      No. Powershell is a shell. This is all about improving the console so the various shells (Powershell, cmd, etc...) can gain vastly improved output (amongst others) capabilities.

  • Emoji support? Call me when they include memoji support. That's where it's at!

  • But will this finally, once-and-for-all, end those online instructions to "Open a DOS box?"
  • by NikeHerc ( 694644 ) on Tuesday July 17, 2018 @10:12PM (#56966066)
    "Those who do not understand Unix are condemned to reinvent it, poorly." --Henry Spencer
    • "Those who do not understand Henry Spencers quote are condemned to post it, irrelevantly." --thegarbz

  • Won't happen (Score:5, Interesting)

    by duke_cheetah2003 ( 862933 ) on Wednesday July 18, 2018 @12:04AM (#56966332) Homepage

    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.

  • If you're still on Windows 7 or 8.1 like I am on most of my PCs, check out Clink [github.io] - an extension for the Windows command line that adds bash-style command line functionality to cmd.exe.

    I was only just introduced to this by a colleague and can't believe I only just discovered it. Supports things like CTRL-V copy/paste which is pretty handy.

  • The poop emoji that is. I've waited too long for that ability as-is.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...