Ars Technica has posted a lengthy article on the new promising Microsoft Command Shell. It looks at MSH from the point of view of both coders and Windows admins.
Ars Technica has posted a lengthy article on the new promising Microsoft Command Shell. It looks at MSH from the point of view of both coders and Windows admins.
What exactly is the point of investing time and effort for a non-standard command shell?
The computing world is rapidly standardizing on open source unix variants. The Microsoft Command Shell is a deadend technology.
“What exactly is the point of investing time and effort for a non-standard command shell? ”
This isn’t for you.
I’m glad to see that they’re NOT abandoning the CLI. Who knows? There just might be some interesting things for the Unices to learn from.
can i boot vista into a pure shell mode? and access said shell over a ssh connection?`
allso, can i issue a command inside the shell and have vista continue to boot into the gui? and can i exit the gui and come back to said shell without having to reboot the whole system?
if not then windows still have much to learn from unix eviroment…
“can i exit the gui and come back to said shell without having to reboot the whole system?”
This is actually generally considered to be a bad thing by X developers. Because you actually have two drivers for the display loaded at all times, one gets halted and the other takes over. Apparently it causes some odd complications. Although, I’ve found occasional use for multiple X Servers, I’ve never found use for using the virtual terminals while I have an X session (except to kill the one that’s broken because of the mediocre nvidia driver).
I think this shell is just another .net language, which expains how they threw it together in under a year.
I honestly don’t think this shell is intended for users at all. It’s for scripters.
“I honestly don’t think this shell is intended for users at all. It’s for scripters.”
And scripters aren’t users nor users, scripters.
Correct. I know you were being sarcastic, but you’re wrong. Scripters are not users, they’re more aptly named administrators; especially in the Windows world.
Makeing a 6 line script does not make you a “scripter,” it makes you a power user. Power users also aren’t “users”, they’re a subset/superclass of users.
When you say “user” in this context, you mean Joe Schmoe using Joe Blow’s Office Program. Not, Joe Power fixing Joe Blow’s Office Program .
actually monad (the codename) has been under development for about 3 years now, and thankfully its finally being brought to the forefront
…just in time to face its GNU equivalent.
Yes, you know what it will be called.
Expect it any moment now..
It’s like a cross between Python and shell, but mostly Python.
I’ll have to give it a whirl when the big release comes. It looks like I won’t get to make fun of them for their lack of a shell anymore; now I’ll have to make comments about their incompatible shell .
Yes, I’m insatiable.
If you haven’t already, consider giving Services for UNIX (SFU) a try. To me, it’s one of the best, free as in beer downloads Microsoft offers. While it doesn’t doesn’t allow you to leverage Windows specifics (although I use VIM to write VBScript with syntax highlighting , it will give you a very nice shell in Windows (not to mention well integrated access to standard UNIX commands). Especially after a quick visit to http://www.interopsystems.com. From there you can add BASH, TCSH, ZSH and/or even an OpenSSH server. Crave an X Windows Server with that? http://freedesktop.org/wiki/Xming can help with that too. SFU includes CSH and KSH. If you do a custom install, you can add a complete GNU development environment and perl as well.
Yes, I’m aware of it. But for me, it’d be a hindrance as my main uses for Windows these days are:
a.) Games
b.) Porting to Windows
It messes up b because then I forget things like the lack of pthreads without SFU.
I end up installing ming though, which also gives you bash and a few development utilities. Usually ming plus emacs (when I can get it to work and don’t have to use the inferior xemacs) is good enough for a lite workload.
I do know now to avoid Cygwin though, heh. If it installs, yay. If the install fails, there goes an hour of your life.
I’m happy Microsoft is replacing the old DOS shell with something substantial, but I don’t like the idea of them getting all this hype by comparing their implementation to things like bash. Microsoft may call MSH a “shell”, but it’s really a full .NET runtime with [some] shell syntax.
bash doesn’t behave like MSH by design, not by deficiency. You want to connect to a full object system, and have access to lots of different API calls? Sure, then use Python, or Perl, or Ruby, take your pick. Interfacing these scripting languages with bash is quite easy–just use what every UNIX tool does, stdout.
The idea behind bash is that developers will always have to at least read input files and write output to stdout or to files. bash allows the user to control where the input comes from and where the output goes to, in the form of pipes and redirects. Other than that, bash’s only purposes is to fork off processes quickly, allow them to be backgrounded and foregrounded, and support niceties like globbing. For that reason, bash can be a lightweight C program.
Someone had similar ideas about Python, since coding a Python shell would just involve figuring out when to invoke os.system(“…”) instead of interpreting some input as Python code. I think the project was called PySh when I was looking at it.
Anyway, I guess we should be happy when we have to admin Microsoft systems, we’ll at least have a bit more control.
“This is actually generally considered to be a bad thing by X developers. Because you actually have two drivers for the display loaded at all times, one gets halted and the other takes over. Apparently it causes some odd complications. Although, I’ve found occasional use for multiple X Servers, I’ve never found use for using the virtual terminals while I have an X session (except to kill the one that’s broken because of the mediocre nvidia driver).”
It’s not considered to be a bad thing by X developers. It’s just that some X driver writers don’t code the routines that will handle VT switching.
Virtual Terminals are a very nice feature. They allow you to still control your system even if all modes of input on one VT are kaput. Mouse driver crashes? Switch to a VT. XOrg caught in an infinite loop? Switch to a VT. Etc.
Sure, VTs + Xorg may introduce complexity over Microsoft’s model (which is to have a lot of graphics code sitting right near the kernel), but we also gain something from that.
The MSH syntax looks kind of funky. Not that it matters .. And yes, I this really is more of an interpreter shell.
Come to think of it, this must be one of those “full circles”: First there were home computers and their embedded interpreter shells (mostly BASIC), than you had CLI, then GUI without CLI (an anomaly in certain OS’s), now the CLI is back in a form of a interpreter shell …
… whatever.
Why not just use a scripting or compilative language to access this data via libraries and function calls in native format. MSH is bluring the lines between the shell and the lib/syscall in the programmer’s eye.
… bash is “standard command shell” ?
A sh-like command line interpreter is required for POSIX-compliance, I think. See http://www.opengroup.org/onlinepubs/009695399/
Not that it matters – it only matters if its good, there’s no point of using a “standard” if the standard is old and not so great as other alternatives (like bash vs msh)
bash is a standard command shell since the day it could execute a script compatible with sh (which usually means compatible with Korn Shell), when you call it with the name ‘sh’.
A shell must be standard to be useful. That’s thanks to this that autotools can work on any POSIX system for example. More important, that’s thanks to this that Unix boot scripts are so easily adaptable between Unixes.
All this to say that another shell incompatible with the standard can’t be compared to the others, as it lacks one of the major feature of shells.
Worse, the MSH is full of customizable stuff and can access lots of API of lower levels than itself. For a shell, this is IMHO a recipe for disaster, even/specially for scripters. I think the disaster of csh shells is bound to repeat itself in MSH.
“A shell must be standard to be useful”
Sorry, but that’s not true. Standars are nice but a good shell is a GOOD shell regardless of being standard or not. Also, the sh “standard” was not “created”, when sh was born there was not “standard”. There’s no technical reason why MSH can’t become a new “standard”
Plus, there’re tons of linux shells that won’t work in BSDs or even between distributions. How useful are standars when you can’t use your script in two different computers, which is one of the objectives of being a standard?
“Worse, the MSH is full of customizable stuff and can access lots of API of lower levels than itself. For a shell, this is IMHO a recipe for disaster, even/specially for scripters.”
Read the artocle. He covers this complaint. Anytime you have power, you have the capacity to do damage.
I actually think it is a quite promising language.
[dangerous statement]
I hope mono will implement it too.
[/dangerous statement]
Who makes these standards and why? OMG ITS NOT BASH ITS NOT STANDARD!! I AM GOING TO HAVE A HEART ATTACK!! And KDE isn’t GNOME and pie isn’t cake and who the f–k cares. It’s pretty cool in it’s own right as is Bash.
Okay, so what do we have here. A shell with a new syntax to learn, no problem. Doesn’t have subtantially more juice than one of the linux/unix shells steroitized [gee, not a good day to make new words I guess ] with kdialogs, still it’s nice to see MS providing people with an alternative to bash-over-cygwin-with-perl-for-windows, which is my combo of choice under windows for a time now.
That said [and I’m not good for making nice statements about MS, so that was quite an achievement], what we see here is yet another very-very-very late follower effect so very typical of MS. But, in the end, it won’t matter for the MS-hearted masses how or why they implemented a usable shell [finally], only that they did.
Its almost 6am EST as I look at this article. One thing I’d like to point out is the term Linux shell technologies. I’m having a problem with that term. “Unix” shell techology, even ‘shell tradition’ might fit. Sh, ksh, csh are Unix shells, and have been standardized across the platforms, its simply how its been done, and how it is done. Being a Linux user of 9yrs about, I still find myself on the defensive when a comparision and if given input in said article I’d wish that alittle change in the language be made. Otherwise it sound like “Microsoft takes on the Linux commandline, lets show you how better We can do it” or something along those lines.
As for the product itself, I haven’t looked at the pdf, but I have tried my hand at WMI Scripting , and its shell (I was bored and I found it while digging around) and it was horrible. I like bash, and zsh, and python, I love python, but I wouldn’t use it everyday for my shell. Adding the 2 together will be klugey at best, and if MS has any hand in it, I’ve a feeling that I won’t be impressed. However, if its intergration is sufficiant I look forward to it helping in carring out exploits on the platform. I’m a security guy whatdoyawant?
so do we want to go pysh or full monoized now ;à
Now Microsoft has a shell.. Well better than the old DOS prompt at least, but to me it looks more like a little toy you can play around with, not like a serious computing environment
Hey…Microsoft, the 1980’s called..
Unix want’s its Shell superior administration interface back.
What does this say for time spent learning WSH, cmd.exe or just what will be the flavor of next month? Microsofts problem with shells is it has no central core whatsoever to draw on, just whores to whatever fad that comes by next.
Prefix: All of this is coming from a GNU user, and somebody who uses tcsh as his day-to-day shell.
On standards: If Apple didn’t include an sh-compliant interpreter on OS X, I would complain, but only because they plaster the word “UNIX” all over their advertisements. Windows is not a Unix. It never was. There’s no reason they should have to include sh.
Having sh on all Unixes is useful. It means we can develop portable shell scripts. It means we can build things like make on top of sh. It doesn’t mean nobody should ever try to make any other interpreted languages. csh added some nice features for interactive use. bash then got all those features and added a few more. tcsh grabbed some of the new stuff in bash. zsh does everything.
I use tcsh every day. I like it, but mostly, I’m used to it. I also maintain highly portable build utilites, and that means I regularly write portable sh, which isn’t as trivial as you may think. I also regularly use python.
Microsoft has made an interpreted environment for .Net. Will many people start using it for day-to-day work? Probably not. Will people find it useful as a better scripting language than DOS batch files? It seems likely. Does it matter that those scripts aren’t compatible with sh? Not one bit, just like it doesn’t matter that python isn’t compatible.
I’m sure if you actually looked at the technical merits of MSH, you could find something worthwhile to complain about.
When will MS cease to surprise me? Just when I thought MS was doing something out of the ordinary with Open source licenses… Now a command shell of sorts?
Seems like Microsoft is trying to lean over to linux/unix like….. Although i don’t think it’s ever gonna happen. Don’t get me wrong, having a new shell in Vista seems nice, but somehow i don’t think it’s gonna happen…. First they try to KILL the DOS interface with XP (although it’s still somewhat there, it’s not as functional as in win9x and the likes). Now they are trying to revamp their command shell? I’m so confused, but thats just me.
I’m guessing it’s not for off before MS starts advertising how their new shell is so much better (usable and easier) than any *nix shell….. typical of MS advertisisements. But who knows, maybe they will surprise me and openly admit that Linux is better? lol
–ZaNkY
I’m guessing it’s not for off before MS starts advertising how their new shell is so much better (usable and easier) than any *nix shell….. typical of MS advertisisements.
I’m guessing it’s not for off before MS starts advertising how their new shell is so much better (usable and easier) than any *nix shell….. typical of MS advertisisements.
Wow, shock. You mean, a company advertising that their product is better? Good gosh.
for some reason my comment posted before I finished it, sorry
First they try to KILL the DOS interface with XP (although it’s still somewhat there, it’s not as functional as in win9x and the likes). Now they are trying to revamp their command shell? I’m so confused, but thats just me.
DOS was “killed” by XP because it was the first OS for corporate and home users built on the NT kernel. DOS in emulated in all versions of NT which is part of the reason for the functional differences.
one of the things which catches my attention, is that monad pipes objects, not just text / binary streams. the object oriented behaviour can prove to be a very strong design.
the weakness of monad is the current GUI culture of the windows world; bash was born out of a console culture, while monad has not that support from the environment