Windows to Have Better CLI
MickyJ writes "The command line interface to the Windows Server OS will be changed to the new Monad Shell (MSH), in a phased implementation to take place over the next three to five years. 'It will exceed what has been delivered in Linux and Unix for many years', so says Bob Muglia, a Senior VP at Microsoft." More from the Tom's Hardware article: "The language in Muglia's comment offers the first clear indication that WMI may be yet one more component being left behind, as Microsoft moves away from portions of Windows architecture that have historically been vulnerable to malicious attack."
It's not "vaporware"; It actually exists. You can get in on the beta for free.
l 9.MSHWiki - How to sign up
http://channel9.msdn.com/wiki/default.aspx/Channe
Free of Flash! Free of Flash!
It exists. Unfortunately, it is nasty to use. Commands are long and it makes heavy use of COM (So much for .NET). I have no doubt that it will be heavily exploited by virii and phishers. So I don't think bash is in any danger of being replaced.
Sorry my bullshit sensor overloaded.
For all the 13-year olds on /. who think they're funny, here's where the word monad really comes from.
Go somewhere random
From dictionary.com:
mo-nad n.
1. Philosophy. An indivisible, impenetrable unit of substance viewed as the basic constituent element of physical reality in the metaphysics of Leibnitz.
So it's a real word, and I can kinda sorta see why they chose it. I agree that it's unfortunate, though, and I think "MSH" (pronounced the obvious way) is a perfectly reasonable name.
The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
You can already copy from/ paste to Window's default CLI (highlight text and press ENTER to copy; right-click to paste - same with cygwin). I don't know about cutting, though.
From someone I know who uses it:
A quick list of functions and examples, looks very Bourne.
l 9.MSHQuickStart
http://channel9.msdn.com/wiki/default.aspx/Channe
Its about bloody time.
VBS is a peice of crap, and is way to complicated for what should be simple tasks, MSH looks pretty damn promising.
I'd suggest you take of your Microsoft bashing hat and come out side, Monad has been in public beta for nearly a year now, want to take a look?
1. You will need need a passport account. If you do not have one yet, you can sign-up for one at the beta website listed below.
2. Goto http://beta.microsoft.com/
3. Log into the site using the following guest ID: mshPDC
4. Select Microsoft Command Shell
5. Select Survey in the left column
6. Register with a valid email address.
7. Wait for the information to be sent to you through email. (May take a day or two)
8. Once you receive your confirmation email, log back into http://beta.microsoft.com/ for the content
Help Brendan pay off his student loans
unlike Perl/Python which are screenscrapers, Monad scripts can pipe out and pipe in objects
I'm sure a Python app can send serialized (pickled) objects to a stdio pipe.
Off-topic, but...
xorg now has support.
Still is rather buggy.
http://www.kdedevelopers.org/node/view/611
Googled for transset
i see that some brilliant person modded me as "troll". nice :/
.net objects which can be reflected, you get intellisense on the commandline, like working in visual studio. you dont necessarily have to remember properties and what not from object streams - it infers them for you.
:)
anyway, heres what i thought was cool
- entirely object based. objects are pased via pipeline composition. that means you can do something like
ls | pick name, size | tableout
ls is going to return you a collection of "file" objects. the file object has properties "name" and "size" (and lots of others). the pick command takes each incoming object, and looks for properties called name and size. it then passes down a "new" object that is a bag of the name/size combos (or, it may pass along the original file objects.. i dont remember precisely). finally, tableout is a generic formatter that takes objects and formats them one per row, where each property in the object is displayed in a column.
note that you could replace tableout with say, csvout, or maybe "Excelout"
so the pipe paradigm changes in a way thats pretty cool.
Also, because you're working with
(note that a problem i asked them about when i saw the demo - if you have a pipeline where you want tab completion in stage 3, but stage 1 "modifies" state (i.e. in stage 3 you are reporting on what you deleted in stage 1) how do you get the tab complete info without doing the state change in stage one?.. they were aware of this problem and were thinking about it.. but that was years ago
finally, what was cool is that across MS people are buying into the idea that a commandline shell that manipulated object representations of data in a generic way was going to be the path forward for adminsterting windows. Consider that the IIS metabase is now xml instead of what it used to be.. and that msh is a shell that works on structured objects... its not coincidental.
My opinions are my own, and do not necessarily represent those of my employer.
Monad is the usual bloated, overly complicated "me too" product Microsoft comes up with. In fact, Monad isn't really even a shell, it's more like Tcl/Tk or perlsh. Linux has nothing to fear from this sort of thing; there are good reasons why everybody still uses the sh family of shells after 30 years despite lots of attempts at "improving" on it.
If Microsoft wanted to come up with a decent shell, they should carefully look at bash and rc, and figure out a minimal set of changes to make it compatible with their non-standard parameter and pathname syntax, and leave it at that. Or they should make careful, incremental changes to the current command interpreter.
MSH supports both \ and / for directory separators, and uses - for command options, maybe also / if you want to, don't quite remember, but definitely -.
Beware: In C++, your friends can see your privates!
It's a spoof based on the (true) story about Microsoft and the Korn shell: ... when Microsoft reality collides with everybody elses...
cat /etc/passwd | awk -F: '{printf("%s\t%s\n",$1,$5)}'
/etc/passwd
>>> awk -F: '{printf("%s\t%s\n",$1,$5)}'
Another useless cat...
Apologizes for the lack of updates. We've been heads down getting things things finished up for some deadlines. We'll be dropping a new version on betapace sometime next week. It is about 95+% language complete and interop with existing external programs has greatly improved. We'd love you (and everyone else) to give it a try and let us know what you don't like or how we can make it better. jps
The article is completely correct when it states that Monad started with the ideas from WMIC and then applied those ideas to .NET. It is however, incorrect to think that this means that WMI is in any way being "left behind".
Of the issues Admins had with WMIC is that to do non-trival processing of WMI object, you had to use XSLT or use WSH (e.g. VBSCRIPT). With Monad, Admins get full, admin-focused, command-oriented, language to manipulate WMI (as well
as .NET, ADO, ADSI, XML and OLE Automation objects).
It might be appropriate to compare and contrast the capabilities of Monad and WMIC but not Monad and WMI. WMI is a management infrastructure, Monad is an environment to present those capabilities via command line scripting.
Said another way, the value of writing new WMI providers (and the value of existing WMI providers) increases with the availability of Monad.
Jeffrey Snover
Monad Architect
At least on Win2k and XP if you just type the name of the file, and its a registered type, it will open in the default application. So its actually easier than on OSX apparently.
I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O