Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Microsoft IT

Microsoft To Make Windows Terminal the Default Windows 11 Command Line Experience (theverge.com) 113

Microsoft is planning to make its Windows Terminal the default command line experience in Windows 11 next year. From a report: While Windows 11 currently supports setting Windows Terminal as default, the default terminal emulator has always been the Windows Console Host. Microsoft hasn't ever officially supported replacing this console host, meaning that command prompt and PowerShell always open in Windows Console Host. "Over the course of 2022, we are planning to make Windows Terminal the default experience on Windows 11 devices," explains Kayla Cinnamon, a program manager for Windows Terminal at Microsoft. "We will start with the Windows Insider Program and start moving through rings until we reach everyone on Windows 11."
This discussion has been archived. No new comments can be posted.

Microsoft To Make Windows Terminal the Default Windows 11 Command Line Experience

Comments Filter:
  • by Baconsmoke ( 6186954 ) on Wednesday December 15, 2021 @11:21AM (#62083077)
    And that's a huge compliment from me. Microsoft has been very poor at keeping up with a lot of their Windows apps like notepad amongst others. The fact they're making an effort on some of these is a mild positive in my book.
    • Most recent update aside, I find when I'm restarting my system, notepad is almost always the app that prevents shutdown. It clearly has pervasive use cases for me, even though I have Notepad++ installed.

      • by Anonymous Coward

        Notepad, notepad++, pspad.

        On a Unix it's a screen with many many many nvi instances. That works. On windows I need three different programs and none, individually nor collectively, do the job as well.

        I don't know about "windows terminal" so I can't comment on its "experience" except that I hate that terminology. The 'web getting infested by "user experience engineers" didn't improve anything, on the contrary.

        cmd.exe wasn't the first, though. command.com was a different "experience" when windowed, IIRC.

        O

        • Get a faster computer. ANSI text coloring is incredibly useful.

          I just started using ansicon in DOS boxes a couple of years ago after dealing with monochrome text for 20 years prior. Almost nothing actually uses color but when it does, it's a massive advantage.

        • "windows terminal" - people with knowledge and a higher than average IQ

            "experience" - Lowest common denominator window licking idiots.

            These two terms don't go together.

        • On dos I most never used it. 4dos (on DR-dos, thanks) was what I used most. Others may recognise its rebranding as ndos better. I don't think microsoft ever managed to get close to that. In all those years.

          Still exists as TCC, formerly 4NT. And yes, it's still better than anything Microsoft ships even though it's over thirty years old.

      • by e3m4n ( 947977 )
        I switched to editpad just for the autosave aspect. Autosave has been a feature of ms office applications forever. There is no valid reason they could not make notepad save a temp file and relaunch that file on reboot. I bet its even been suggested by developers dozens of times and squashed by corporate because they could not find a way to monetize the software change.
        • I'm pretty sure that "notepad is almost always the app that prevents shutdown" is supposed to be a plus in this scenario.

          • I like Notepad++ just fine... except that when I launch I'm presented with the fleeting ghosts of moments past.

            With notepad I'm forced to either deal with it or let it go forever. I appreciate that.

            • If you are referring to the default behavior of Notepad++ where it reopens files when the application is launched, this can be toggled off in the application settings. I, too, don't like this feature.

      • Google for notepad replacer. It'll force windows to use notepad++ always.

        Made by binary fortress, the really good dual monitor app which name escapes me.

        Sorry I'm on my phone, so no links

    • Yes, a very mild positive. And it only took them about 30 years.

    • by El Lobo ( 994537 )

      People never got the thing about Notepad. Notepad is MEANT to be barebones. It's not even a program: its a wrap for the native edit control, that it's meant to work even when the system is f**** up. There are other editors available from everywhere for bells and whistles. Even WordPad is included with all its overblow. Notepad is NOT meant to have anything else than what it has. People trying to use Notepad as the next WordStar are just...stupid.

  • by Tablizer ( 95088 ) on Wednesday December 15, 2021 @11:28AM (#62083103) Journal

    For example, the PowerShell scripting language is only marginally better than DOS. It's like the worst of Perl, Ruby, and JavaScript had a drunk love child. Why not just extend DOS rather than throw it out and start over with something hardly better? Don't replace something unless the replacement is truly and clearly better, not marginally better. Otherwise we are throwing out our existing tool knowledge and files for no good reason. If you can't find something truly better, then enhance the existing tool/language instead. I can go on about other MS gizmos that did this.

    Change it for real progress, not change for change's sake.

    (They could also have improved the C# OS api's and IDE for higher-end OS scripting and leave DOS for quick and dirty jobs. C# is a far better language than PowerShell Script.)

    • Re: (Score:2, Insightful)

      by nevermindme ( 912672 )
      Your kidding right.

      Crunchy DOS
      cmd.exe interacts with the user through a command-line interface. On Windows, this interface is implemented through the Win32 console. cmd.exe may take advantage of features available to native programs of its own platform.

      Windows 11 Terminal
      https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-12-release/

      By blowing away some legacy support a quantum leap of usablity features can be included. For 99.9% of users the color coding and

      Your saying why change the fi
      • Terminal emulators are not the same thing as languages running in them. I see him criticizing the latter, so I'm not sure why you defend the former.
        • Yes, Windows terminal has nothing to do with CMD.exe, other than it is one of the possible interpreters you can run inside of it.

    • Oh come on. I assume by "DOS" you mean batch files? Powershell is far from perfect, but its a *vast* improvement over DOS batch files.

      • by Gabest ( 852807 ) on Wednesday December 15, 2021 @11:57AM (#62083207)

        I could never get friends with PS. It has bad discoveribility. The command line switches are long and the arguments are cryptic. The output is an excel table where all the important fields are usually hidden.

        • by mjwx ( 966435 )

          I could never get friends with PS. It has bad discoveribility. The command line switches are long and the arguments are cryptic. The output is an excel table where all the important fields are usually hidden.

          I agree... however PS was a hell of a lot better than DOS by a long margin despite all of it's many flaws.

          Hopefully MS has continued to improve it's CLIs given how many of it's products (and other people's products) are now reliant on it. MS can do things right occasionally like intelisense for SQL, PowershellISE has a kind of intelisense for PS, but like everything else it doesn't work quite right.

        • by benjymouse ( 756774 ) on Wednesday December 15, 2021 @01:08PM (#62083437)

          > It has bad discoveribility. The command line switches are long and the arguments are cryptic. The output is an excel table where all the important fields are usually hidden.

          Discoverability: Powershell has *eminent* discoverability. Want to list all available commands? do 'get-command' or (short form alias) 'gcm'. Cannot quite remember the command know that it has something to do with "net"? do 'gcm *net*'. Want help with a command? do 'help gcm' or 'gcm -?'.

          Long command line switches: Any switch can be shortened as long as it is unambiguous. The 'ls' command (alias for get-childitem) accepts an '-Exclude' switch. Want to list anything but .ps1 files? do 'ls -e *.ps1'

          Table output: Only some types are formatted as tables. Contrary to bash and other *sh, Powershell separates formatting from the output of the command. Which means that *you* control the output. See, in Powershell the cmdlets do only one thing and they do it well. In other words, a command does not *both* retrieve the data/objects *and* format them. In powershell one command retrieves the objects, and another formats them.

          • Discoverability: Powershell has *eminent* discoverability. Want to list all available commands? do 'get-command' or (short form alias) 'gcm'. Cannot quite remember the command know that it has something to do with "net"? do 'gcm *net*'. Want help with a command? do 'help gcm' or 'gcm -?'.

            Is it at least comparable to something like Fish shell, which had existed for many years? It doesn't seem to me that you can run these help-obtaining commands in the middle of editing the command you want to get a help with, unless you do it from a different terminal. With Fish shell's completions, this for example is not a problem.

            The 'ls' command (alias for get-childitem)

            Yes, that's very intuitive to me. I'm sure it's very intuitive to many others as well.

            • Is it at least comparable to something like Fish shell, which had existed for many years? It doesn't seem to me that you can run these help-obtaining commands in the middle of editing the command you want to get a help with, unless you do it from a different terminal. With Fish shell's completions, this for example is not a problem.

              In addition to the ability to list and get documentation for commands, Powershell supports tab-completions of both commands and switches. Because powershell commands carry meta-information about parameters within them, the shell can interrogate any command for its variations and command line switches and use it for tab completion.

              Powershell commands (called cmdlets) are constructed so that they instruct the *shell* about which parameters are supported (and their types). It is *the shell* that does the parsi

              • So what am I doing wrong that I only get one completion at a time in Powershell and not a list?
                • So what am I doing wrong that I only get one completion at a time in Powershell and not a list?

                  It really depends on the shell host (Powershell separates the runtime and the host. The host may be a simple CLI or a language server within vscode or emacs). Powershell ISE, for instance, will list all available options in a dropdown list.

                  But in the standard shell, TAB completes a single command, parameter name or parameter value at a time and `ctrl-space` lists available completions and lets you choose which one to complete.

                  • and `ctrl-space` lists available completions and lets you choose which one to complete.

                    Aaaaah, THAT is what I needed to know! But whether I'd call this fact "discoverable"...I don't know. Also, I got this after typing <l> <s> <Space> <Ctrl>+<Space> <y>:

                    Oops, something went wrong. Please report this bug with the details below.
                    Report on GitHub: https://github.com/lzybkr/PSRe... [github.com]
                    Last 5 Keys:
                    l s Space Ctrl+Space y
                    Exception: System.ArgumentOutOfRange Exception: The value must be greater than or equal to zero and less than the console's buffer size in th

                    • If you want to auto-complete parameters, then type a dash *before* hitting ctrl+space. That way the powershell host will know that you are only interested in parameter names.

                      I don't know what type of host process you are running powershell in. It seems that it may have to little buffer space for displaying a large completion list. It works fine in Windows Terminal, ISE or VSCode.

                    • More information:

                      It appears that you have indeed run into a current issue: https://github.com/PowerShell/... [github.com]

                    • It fails for me in Windows Terminal. In any case, I don't see how an uncaught exception is a sane response to any input.
              • by tlhIngan ( 30335 )

                In addition to the ability to list and get documentation for commands, Powershell supports tab-completions of both commands and switches. Because powershell commands carry meta-information about parameters within them, the shell can interrogate any command for its variations and command line switches and use it for tab completion.

                Powershell commands (called cmdlets) are constructed so that they instruct the *shell* about which parameters are supported (and their types). It is *the shell* that does the parsi

          • See, in Powershell the cmdlets do only one thing and they do it well. In other words, a command does not *both* retrieve the data/objects *and* format them. In powershell one command retrieves the objects, and another formats them.

            Which sounds great until you try it, and find yourself always writing a novel in PS to replicate what would be a haiku in bash.

            • Which sounds great until you try it, and find yourself always writing a novel in PS to replicate what would be a haiku in bash.

              Want to provide an example?

        • If you treat powershell as being more of a programming language (think python) than just a scripting language, then it becomes a lot more useful. I pretty much exclusively use .Net calls with powershell, rarely ever using cmdlets because their performance is usually bad, and you can do basically anything with .Net. The syntax gets wonky in some situations, like calling a generic method:

          https://stackoverflow.com/ques... [stackoverflow.com]

          Or trying to use closures (aka lambda functions):

          https://stackoverflow.com/ques... [stackoverflow.com]

          But othe

    • by drolli ( 522659 ) on Wednesday December 15, 2021 @12:01PM (#62083233) Journal

      Excuse me. I programmed a lot of Perl. Powershell does not feel like perl to me, but maybe i am using it wrong.

      I programmed a lot of languages and powershell is really good for its purpose.

      • by e3m4n ( 947977 )
        I bet if it was more like python people would take to it like a duck to water. I havent used it very much, only following some online examples of making changes to users of their office365 product, or the Teams subset.
        • by drolli ( 522659 )

          yes, it's feeling more pythonish than perlish

        • Well, Python sucks as a command line shell. PowerShell is supposed to do both scripting and be a shell. Consider bash or Korn shell; they are great command line shells, and the scripting is good enough for complex scripting as necessary. Yes, they're not as good at scripting as Python ir Perl or Ruby, but that's where you can use bash+python, bash+perl, etc.

          • Yes. I found bash useful, but limited when processing data grids like csv files or key/value pairs. awk/gawk was really the only workaround, whereas python use of dictionaries game me a lot more utility. The same can be said for doing mysql queries without piping through awk. Bash is still great for stdio redirections piped to other commands.
            • Yup, Python and Perl simplified a lot of sh+awk+sed scripts into a single file. However for off-the-cuff scripting at the command line, the sh family can't be beat. Avoid csh like the plague for scripting though, it's got some strange rules and has turned some people into lifelong opponents of shell scripting.

              • At one time someone had to choose csh as their default shell. The default on Sun/Solaris was ksh for the most part. Its been forever since I touched SCO or AIX, but I believe they defaulted to Bournshell (sh). DEC was bournshell. I only worked on an Alpha once. Thing was built like a tank. Unsure what HP-UX defaulted to. I once gained access to a university server running SunOS 4 after convincing someone to put + + in their ~/.rlogin file and ran unshad.c and crackerjack on their password file. That system
                • Yes, it was default login shell a lot, because the original Bourne sh was pretty bare as a command line shell. But if you're putting "#!/bin/csh" at the start of a script then one is in for a lot of hurt. Bash cleaned this up with the niceness of csh with the sane scripting of Bourne shell. The Korn ksh shell also tried to combine the two.

                • csh was the default in SunOS 4. In SunOS 5 it was ksh, but later became bash. I can't remember what SCO defaulted to, I want to say sh in Xenix and ksh in Unix but I may be misremembering.

                • Bourne shell was basically the original. Csh was BSD's response to Bourne shell's limitations. So if a UNIXen was more AT&T then you got /bin/sh, and if you were lucky they tagged on csh as an option. If your UNIXen was BSD based, you probably got csh, but you still used sh for scripting. Then AT&T finally answered the csh challenge with ksh, but it was proprietry, so you didn't get it unless your Unix was an AT&T version. What happened next was zsh and bash to fix that. Now csh is pretty much

                • by jabuzz ( 182671 )

                  The default on SunOS at was csh as I recall. It was sh on at least early versions of Solaris, and well here is a reference from the Solaris Advanced User guide from 2010 to back that up.

                  https://docs.oracle.com/cd/E19... [oracle.com]

                  Commercial Unixes have always in my experience had god dam awful default shells. If I can't use the up arrow key to get the last command prompt and there is no tab completion it is not fit to be a default shell IMHO

            • Bash does have dictionaries...
              declare -A animals
              animals=( [moo]=cow [woof]=dog)
              echo ${animals[moo]}
              cow

      • I've done both, and I can't stress enough just how shitty perl is.

      • PHP is a better CLI scripting language than Perl. Or Python for that matter.

        • No. Any language that you have to escape to not simply echo your code is a terrible CLI language.

          PHP is good at templates. That's it.

      • by Tablizer ( 95088 )

        > I programmed a lot of Perl. Powershell does not feel like perl to me,

        I said the "worst of", not all of.

        > I programmed a lot of languages and powershell is really good for its purpose.

        Example?

    • Totally agree, don't adjust it if it isn't broken. But they have to continually change everything because they think customers won't think their products are new shiny and cool if they don't look different every two years, when in fact customers just want things to stop changing so that they can use them. Could you imagine if every time you went to your garage or tools were in different spots? Because every Microsoft software engineer has a garage like that

      • So in this case I've been using windows terminal for the past year or so, and honestly my biggest gripe is it is not supported on windows server. The article fails to also list other quality of life features:

        1. Finally have a tabbed UX for multiple console windows
        2. You can also define additional console types (for instance I can bring up new tabs for powershell 6, powershell 7, WSL console, standard cmd shell etc)
        3. Finally has non broken copy/paste
        4. Syntax Highlighting

        I won't argue the fact that many of

        • by Bert64 ( 520050 )

          You're not supposed to run a graphical terminal on a server, you're supposed to run it on a workstation and use that to access the server remotely over SSH. That's why you don't get gnome-terminal or similar when you perform a server installation of Linux.

          Glad to see that MS have finally caught up with this simple concept.

    • My goto shell in Windows is cygwin bash these days. I couldn't live on Windows without cygwin. Powershell took me a while to take a liking to: it is more of an admin automation engine than a command line replacement for DOS. Some tasks become easy with PS. The things it is good at, it is good at, being a dos/bash replacement is not one of those things.

    • Change it for real progress, not change for change's sake.

      Stop your whining. New is always better [youtube.com].
    • by e3m4n ( 947977 )
      did you mean command shell? DOS has not existed in a very long time.
    • I can't help but notice that Microsoft has;

      Embraced the console by making it an app in Windows in the first place.

      Extended the console by adding PowerShell scripting.

      And now they are Extinguishing the console.

      I say this mostly in jest but this does seem standard operating procedure for Microsoft. :)

    • by VAXcat ( 674775 )
      "It's like the worst of Perl, Ruby, and JavaScript had a drunk love child" I couldn't agree more. PowerShell constantly wants you to type commands like "DissAssemBle thecomplPicated Dictionary using ImpossibleSyntax". Fortunately for me, I got out of my Window job just as PowerShell was coming in. Haven't missed it a millisecond since.
    • I think the point of PowerShell is the ability to send commands to COM objects, or services, etc? Not sure, I don't use it, I'm not really a windows guy anymore. But just that ability alone is a huge boost from raw cmd.exe. But from what I have seen of PowerShell it's gotten more inspiration from the mainframe era than from Unix. Maybe it's a not-invented-here syndrome, or a need to not look like a competitor, or a need to have a solution that locks developers and admins into Windows, but PowerShell doe

    • I haven't looked deeply at powershell, but at least it has some decent iteration, control structures, functions etc. whereas CMD.exe is one of the worst abortions ever to come out of computer science. Even if one could extend CMD.exe.... why? There's nothing of interest there to extend. It can only barely do more than set environment variables, and execute commands.

  • Does Windows 11 come with telnet? I was trying to help a non-technical coworker diagnose connectivity issues after a botched OS update and I hit a wall when I realized that Windows didn't come with telnet. The only options I could think of were to walk a non-technical person through the process of installing Cygwin/WSL or temporarily disable the firewall and hope that it was the culprit (it turns out it was). Another fun aspect of Windows is that System Restore is no longer enabled by default, so botched
    • And this can be googled in seconds. It is an optional feature which requires a click to enable.

      • This is good to know. Never in my life would I have imagined a command line tool needs to be "enabled". If that's the case, why doesn't Windows say that the command needs to be enabled rather than it saying the command doesn't exist?
        • Never in my life would I have imagined a command line tool needs to be "enabled".

          There is good reason for not enabling telnet by default. Telnet is inherently insecure due to lack of encryption. Specifically, anytime you log in to a device using telnet, you are sending your password across the network as plain text, which can be captured by someone else running a packet sniffer.

          What Microsoft should be doing is providing a secure alternative to telnet, such as ssh. Luckily one can download a good ssh client for Windows [putty.org] without much hassle.

          • by GumphMaster ( 772693 ) on Wednesday December 15, 2021 @04:26PM (#62084165)

            What Microsoft should be doing is providing a secure alternative to telnet, such as ssh.

            Like the ssh client that is included in Windows 10, and enabled by default since circa 2018, with an equivalent command line interface experience to telnet.

          • by Bert64 ( 520050 )

            That's a good reason not to enable the telnet *server* by default...
            But the client is extremely useful for troubleshooting since you can telnet to any address/port combination and check quickly wether you get a connection, or if the connection is refused or times out etc.

        • by Rhipf ( 525263 )

          It probably says it doesn't exist because it doesn't exist until it is enabled?

      • Also, the other developers on the call do use Windows and use telnet, albeit via WSL, and they didn't know the native version of telnet needed to be enabled either.
    • Search for 'Turn Windows features on and off' and click the Telnet client box and click OK
    • Re: (Score:1, Insightful)

      by Anonymous Coward

      > I don't know how anyone is able to be productive with that OS.

      And yet over 90% of the world uses Windows on their desktop and has for 20+ years and remains productive. Maybe your problem is a bit closer to home my friend.

      • by PPH ( 736903 )

        And yet over 90% of the world uses Windows on their desktop

        For that small minority of 'the world' that actually has a desktop. Most have nothing or a feature phone.

        For that small fraction of people that use a desktop for other than standard 'productivity apps', maybe 10% do anything which might require command line access of any kind. For system administration or software development. Out of this small group, there is a huge productivity spread between the top 10% and the rest. Maybe an order of magnitude or two. The majority just get by with cut and paste from St

    • I'd be surprised if Linux even has telnet anymore. Useful tools like nslookup are no longer included.

      • Not sure what you mean. nslookup is provided by the bind9-dnsutils package. Should be available on all distros. telnet is provided by the telnet package, also should be available on all distros out there. The only reason why nslookup is not installed by default is that most people use the dig application instead as recommended by the Internet Systems Consortium since dig uses the OS resolver so shows how your applications will resolved names while nslookup uses it's own custom resolver that only nslookup us
      • by gweihir ( 88907 )

        nslookup -> dig on many distros.

      • by flink ( 18449 )

        nslookup has been warning that it is deprecated and to use dig or host instead for ages.

      • Since there are dozens of Linux distros, you should mention what you're talking about... nothing wrong with a bare bones distro as the starting point to adding more stuff.

    • by Anonymous Coward

      > Does Windows 11 come with telnet?

      Yes, but it's not the 1980s anymore, so it's not enabled by default, because encouraging use of something as insecure as Telnet by default in this day and age would be really, really dumb. It does however come with a built in SSH client by default, like any modern OS and as used by people who understand why no one uses Telnet anymore.

      For what it's worth, out of curiosity I actually just checked my MacBook, it's not available on that by default either with the same error

    • I agree, I'm usually reaching for telnet and finding it not there. I think most people these days use some combination of ping and/or curl to figure out if something is there. But it's not quite the same as telnet. But nobody, but nobody actually uses telnet anymore for it's real purpose... to remote to another machine, thus it has mostly disappeared.

  • From what I have used of it, it's a pretty good replacement for cmd. It's more akin to the Mac terminal app with more flexibility and customizations. I like being able to open a new cmd, PS or any other setup I put in it with a quick key combo.
  • ... an X11 client?

  • I'll stick to ConEmu, thank you very much.
    Still a subpar terminal by Linux standards.

  • So after kicking everyone out of their sandbox they want to tell all the other kids how to play.

    After looking at default browser stuff, it's pretty clear where this is going.

  • So... the CLI is being replaced with a CLE? Even command prompts are not immune from this "experience" marketing nonsense?

Single tasking: Just Say No.

Working...