7 ms·
First off: command prompt (cmd.exe) and powershell are commandline client applications. They are shells just the same as bash is. All commandline clients run a
by zadjii 8y ago
First off: command prompt (cmd.exe) and powershell are commandline client applications. They are shells just the same as bash is.
All commandline clients run attached to a console server, and that server is conhost.exe. Conhost is responsible not only for being the console server, but drawing the actual terminal window these apps run in. So when you alunch cmd or powershell, what you're seeing is conhost.exe "hosting" these console applications.
What we're exposing here is the "master side" of conhost, which will the other applications act as Terminals, like how there is gnome-terminal, xterm, terminator, etc on linux.
- paulie_a 8y agoIs there any chance cmd and powershell will improve from a user interface perspective? And perhaps become usable? Cmd has been garbage since it's inception.
- zadjii 8y agocmd is parked for pretty much everything except for major issues. It's a scary codebase that has a LOT of code that's dependent on it, and we can't really add any new features there without the possibility of breaking someone. This feature is mostly focused on the other end of the communication, on being able to create new Terminal windows to run shells inside of them.
- paulie_a 8y agoIs there a chance this will be connected to a functional shell interface. I get your point that cmd cannot be upgraded because of legacy issues and that is understandable and unfortunate, but windows needs a proper shell. This is obviously a great start for one side of the equation. But until there is a decent terminal app, windows will continue to be a nonstarter.
- zadjii 8y agoIt sounds like you're asking for two different things here: cmd.exe is a shell, and that's the guy that's parked. conhost.exe is a terminal, and that's under active development, though it's slower than something like VsCode, because we can't just go adding features as we see fit, we have a LOT of back compat we still need to support. Fortunately, conpty will allow for the creation of new terminal applications on Windows. If you're looking for a better shell experience on windows, I can point you to powershell or even [yori](http://www.malsmith.net/yori/ http://www.malsmith.net/yori/), which looks pretty cool
- cryptonector 8y agoI think u/paulie_a is just asking for a better shell. If cmd can't be made better, then make a new one.
- paulie_a 8y agoExactly, I understand there are different underlying concepts and systems to the front end and what it interacts with. It just seem incredible that windows is basically stuck with a windows 95 interface for a shell.
- nailer 8y agoPowershell is open source, the 6.1 preview 4 is nice and fast, and you get real objects with keys rather than scraping for regexs all the time like bash.
- cwyers 8y agoThat's Powershell.
- AnIdiotOnTheNet 8y agoWindows has a proper shell, it's called PowerShell and it is by far the most discoverable and consistent shell that exists.
- wtallis 8y agoIt's also the most absurdly verbose shell that exists, which means it sucks as a shell even if it's a half-decent scripting language.
- AnIdiotOnTheNet 8y agoWhat is with all you people who used PowerShell for a grand total of 10 seconds, gave up because it wasn't bash, then go on to complain about completely false things? PowerShell has aliases. It has shortened aliases for all the common commandlets. You can create your own aliases if you want. PowerShell has tab completion on commandlets, arguments, flags, and variable names. FFS... Every time I run into another one of you it gets increasingly harder to be polite about telling you how wrong you are.
- wtallis 8y agoPowershell doesn't get any credit for the tab completion when the default behavior for it just makes the verbosity even more of a nuisance. Having tab completion scroll through all the possible completions one at a time doesn't save keystrokes in most cases, especially when there are dozens or hundreds of options that are really long so when you give up on tab completion and decide to type it out manually in full, you have to erase 10-20 characters. The bash-style completion behavior of completing any unambiguous characters then giving you a list of the possibilities would be even more useful for powershell than it is for bash. But Microsoft once again had to throw in gratuitous differences at the cost of usability.
- AnIdiotOnTheNet 8y agoThat's subjective opinion. I much prefer the Windows way because I can either specify additional characters or keep hitting tab to until what I want comes up. "Display all 1026 possibilities? (y or n)" certainly isn't an improvement. Not to mention of course that it tab completes things bash can't and doesn't, and all the other reasons your initial comment was wrong.
- elFarto 8y agoAny chance that you could just fork it? Create cmd2.exe, hell you could even open-source it.
- tokyodude 8y agosome other HN thread recommended cmder. I haven't touched cmd since http://cmder.net/ http://cmder.net/
- zadjii 8y agoAh but see, now you're conflating two different things: cmd.exe is a shell conhost and cmder are terminals. I believe cmder can come with git bash as well, which is also a shell. The confusion comes from when you launch cmd, the window that appears by default is conhost, with cmd running attached to it. When you launch cmder, it's also running attached to cmd.