Slashdot Mirror


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

18 of 742 comments (clear)

  1. Re:vaporware by HyperChicken · · Score: 5, Informative

    It's not "vaporware"; It actually exists. You can get in on the beta for free.

    http://channel9.msdn.com/wiki/default.aspx/Channel 9.MSHWiki - How to sign up

    --
    Free of Flash! Free of Flash!
  2. I beta tested this thing by stormcoder · · Score: 2, Informative

    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.
  3. About all these monad/gonad jokes... by bheer · · Score: 3, Informative

    For all the 13-year olds on /. who think they're funny, here's where the word monad really comes from.

  4. Re:Monad .. Gonad by Daniel+Dvorkin · · Score: 3, Informative

    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.
  5. Re:Cut/Copy/Paste by ssj_195 · · Score: 2, Informative

    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.

  6. Re:ooooh by metlin · · Score: 5, Informative
    The beta has been available for sometime now - apparently you need Win2003 or .Net v2 for it to be installed.

    From someone I know who uses it:
    • Very slow, but the scripting was sweet, though not as compact as unix
    • Reminds you of a bastard child of unix+VMS
    • You can write commands in C#, kinda like servlets where you can extend a base class
    • It's an OO way of doing things, but unlike Perl/Python which are screenscrapers, Monad scripts can pipe out and pipe in objects - and everything happens through typed vars, not screenscraping.
  7. MSH: QuickRef by nighty5 · · Score: 4, Informative

    A quick list of functions and examples, looks very Bourne.

    http://channel9.msdn.com/wiki/default.aspx/Channel 9.MSHQuickStart

    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.

  8. Re:WTF? by DaHat · · Score: 4, Informative

    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

  9. Re:ooooh by ByteSlicer · · Score: 2, Informative

    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.

  10. Re:I refuse to use it! by Anonymous Coward · · Score: 0, Informative

    Off-topic, but...
    xorg now has support.
    Still is rather buggy.
    http://www.kdedevelopers.org/node/view/611
    Googled for transset

  11. well.. by bmajik · · Score: 5, Informative

    i see that some brilliant person modded me as "troll". nice :/

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

    (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.
  12. as usual, Microsoft doesn't get it by cahiha · · Score: 2, Informative

    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.

  13. Re:Yes yes language blah by Jugalator · · Score: 3, Informative

    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!
  14. Re:Magical Microsoft Moments by ArsenneLupin · · Score: 3, Informative
    Where did you get this?

    It's a spoof based on the (true) story about Microsoft and the Korn shell: ... when Microsoft reality collides with everybody elses...

  15. Re:probably.. by Anonymous Coward · · Score: 1, Informative

    cat /etc/passwd | awk -F: '{printf("%s\t%s\n",$1,$5)}'

    >>> awk -F: '{printf("%s\t%s\n",$1,$5)}' /etc/passwd

    Another useless cat...

  16. Re:Been testing MSH since october..... by jsnover · · Score: 3, Informative

    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

  17. Monad leverages WMI by jsnover · · Score: 3, Informative

    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

  18. Re:It's about time by Raistlin99 · · Score: 2, Informative

    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