Next-gen Windows Command Line Shell Now in Beta
Suddenly_Dead writes "Microsoft's new command line shell, MSH or Monad, has entered the beta phase. Channel9 Wiki has information on how to download this (complete with Guest ID), and other related info."
I'll stick with bash or ksh, thanks very much. But thanks for trying.
Here's a Screenshot:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>
A command line. How innovative!
Windows gets more and more like Linix every day. At this rate, I soon won't be able to cut-n-paste between applications! Bring it on. Have they ported xcdplayer yet?
What kind of name is that? Sounds like a command shell that had one testicle removed.
It is , I beleive, the fist object oriented shell.
All the others use strings for piping.
Most *nix users i've seen writing online that tried it for a good while to really get used to it thoguht it was really good.
Well, Windows network admins? Say what you will about Windows, most of it's true. But lot's of serious companies use it, and some of them even hire smart people to admin their systems. Could be usful for something like that, maybe.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
... doesn't have a web interface...
Server Error in '/' Application. Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "Off". Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's configuration tag to point to a custom error page URL.
I've had it since yesterday.
My first impression - well, it will be fine for scripting, but as it stands it's appaling as an interactive shell - possibly slightly worse than cmd.exe as an interactive shell, and falling far short of bash/tcsh et al. The defaults for the commands seem way too verbose. If you're just passing objects around in a script that's fine - but for interactive use, it's just awful.
Oolite: Elite-like game. For Mac, Linux and Windows
That was the sound of the point, flying past Microsoft's Collective brain.
The Unix shell is the implementation of the Unix philosophy of small parts working together. It's the antithsesis of Windows' philosophy of providing everything possible through DLLs distributed with the OS.
For a shell to be useful, you need lots of little tools. Otherwise you're just trying to provide an isomorphism to the GUI, with command line switches and arguments taking the place of check boxes.
On the other hand, I suppose it's better than nothing.
Raise your children as if you were teaching them to raise your grandchildren, because you are.
What's wrong with just running the Perl debugger, for an interactive shell? If the *nix shells were as limited in their reach into the OS APIs as the Windows commandline UIs have been, I'd use "perl -de 1" instead of bash or sh. As it is, I use that Perl shell for most commandline programming, especially for any data processing tasks. And a Perl shell has thousands of existing scripts, most of which work on Windows as well as any other platform, and are easily customized to script Windows apps. Even more, the Perl platform has lots of modules that embed programmable clients to Windows apps into scripts, and lots of scripts that bundle them together. Why not use old all-encompassing Perl, rather than the new, strictly limited Monad?
--
make install -not war
.. it won't be so startling when you get the blue screen of death, seeing that you're already in a text screen mode.
Actually, I think something like Applescript for Windows would be awesome. It's a very Unix-like way to get apps to work together, it could make Windows a lot more flexible for many people's needs.
It's a strange world -- let's keep it that way
Trying to script using cmd, vbscript, wsh, wmi, adsi technologies compared to the userland in Unix systems for core system administration is a complete hassle. I have ended using Perl w/ Win32::* extensions and a lot of backticking and substitutions to get the job done. I will be looking forward to any improvements that Monad provides. I really hope that Microsoft looks toward BSD (Mac OS X) and Linux systems and takes to heart the ease that shell scripting in these systems provides. And for God's sake, make it easier to determine the IP address associated to a printer in a clustered virtual print queue! (Hint: you have to use an undocumented DLL that can only be found in a locked filing cabinet stuck in a disused lavatory in an unlit cellar with a sign on the door saying 'beware of the leopard' section of the Resource Kit).
Strange women lying in ponds distributing swords is no basis for a system of government.
Does this new shell have a 'ln -s' command? I guess not, since no reports (I've heard) of the filesystem have mentioned symlinks.
Did I mention how much I hate not having symlinks in Windows? A new usuable shell is all dandy, but I'd like symlinks as well.
Not Buzzword 2.0 compliant. Please speak english.
Here
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
We've had two recent articles on it, and I know there was at least a third in the distant past.
And with as verbose as it is, you might as well use a compiled program, or go with Perl or Python.
how MS bashes linux, and yet is trying to become more and more like it...
Probably a very common business tactic, bash the competition and at the same time assimilate its best features, but still, poor style.
I work for the Department of Redundancy Department.
One spyware infested crazy windows zombie machine botnet to rule them all!
Microsoft will continue to make unsecure software but this time with a way for the botnet controllers to actually do something with the botnets.
Hitler's in the fridge.
People who uses windows, obviously. Most of Microsoft users do not analize what they use - they just use it, and they've though that buttons are better than scripting just because Microsoft has been telling them that for years. Now that microsoft says scripting is useful, they'll think it's useful. They don't know if scripting is "good" or "bad", they're not CS people (and even if they are they may be clueless) so they think whatever they're told to think
A windows shell, without the various limitations of the DOS shell, would be very useful in more ways than I can count. For example, DOS .bat files are still used a lot, especially in cases where you want to run an application, like a Java based program, with it's own system environment setup.
Lots of people are "bashing" this up agianst various Unix shells, but what does it matter? Windows needs something like this, period.
Windows network admins?
/me shrugs, got bash and perl for scripting.
How about Windows users? Some of us work non-IT specific jobs that still heavily involve computers. Whether the IT department supports it or the company, Windows is often the only option for power users without IT priviledges to run something like CYGWIN while at work. If Monad scripting is half as powerful as even Slashdot readers think, it would be a great improvement over current Windows working conditions.
As for home...
I8-D
Not really based off the same ideas and comcepts. You should really try reading the wiki to better understand what Monad is about. Instead of building scrips through Perl or Python or whatever you use this is going to be centered around building "scripts" in .NET. I would encourage you to look more into this before you start opening your big mouth and downplaying something you know nothing about.
that's gnu/tar buddy =)
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Those who do not understand MacOS are condemned... no, hang on, those who do not understand Xerox Alto are condemned..., etc.
Windows Script Host (often with VBScript) is "something like AppleScript". Almost exactly alike.
Personally I don't think that either WSH or AppleScript are very Unix-like -- both rely on higher-level IPC and complex datatypes, not text and pipes.
It seems like Monad is trying to be a halfway point between a Unix-like shell and a scripting language. This might have something to do with the programming ability (or lack thereof) of those who admin Windows systems.
Whenever I hear the word 'Innovation', I reach for my pistol.
Instead of building scrips through Perl or Python or whatever you use this is going to be centered around building "scripts" in .NET.
Aha.
"Scripts".
Well this changes everything.
I've read up on monad, thanks.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
While they are on their way to being more Unix-like how about fixes their broken backslashes. It would be nice to be able to do:
cd '/Program Files/Mozilla Firefox'
This is just more proof that the GPL is a viral licence! Microsoft just had to look at open-source software, and all the features suddenly spread to the Microsoft products! :)
Guy asked me for a quarter for a cup of coffee. So I bit him.
"What should we name it?"
"Let's combine 'Microsoft' and 'Gonad'. It'll make Unix jealous."
fellows, does it really matter? i hear Monad is quite good. but then so is bash. so is emacs shell. or perl/python/lisp interpreter of the day...
honestly, the shell is just another language, the utility and efficiency of which depends on the environment, the use, the user, and a million other things.
so stop bashing Monad as a unix wannabe. unix didn't invent the commandline anyway. this is like a blind man making fun of a deaf man.
A CLI might be usfull to non-admin type "power" users, but almost certainly is going to be a server / network admin tool.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I didn't write this but I wish I had been there.
e s.html
" I've been attending the USENIX NT and LISA NT (Large Installation Systems Administration for NT) conference in downtown Seattle this week.
One of those magical Microsoft moments(tm) happened yesterday and I thought that I'd share. Non-geeks may not find this funny at all, but those in geekdom (particularly UNIX geekdom) will appreciate it.
Greg Sullivan, a Microsoft product manager (henceforth MPM), was holding forth on a forthcoming product that will provide Unix style scripting and shell services on NT for compatibility and to leverage UNIX expertise that moves to the NT platform. The product suite includes the MKS (Mortise Kern Systems) windowing Korn shell, a windowing PERL, and lots of goodies like awk, sed and grep. It actually fills a nice niche for which other products (like the MKS suite) have either been too highly priced or not well enough integrated.
An older man, probably mid-50s, stands up in the back of the room and asserts that Microsoft could have done better with their choice of Korn shell. He asks if they had considered others that are more compatible with existing UNIX versions of KSH.
The MPM said that the MKS shell was pretty compatible and should be able to run all UNIX scripts.
The questioner again asserted that the MKS shell was not very compatible and didn't do a lot of things right that are defined in the KSH language spec.
The MPM asserted again that the shell was pretty compatible and should work quite well.
This assertion and counter assertion went back and forth for a bit, when another fellow member of the audience announced to the MPM that the questioner was, in fact David Korn of AT&T (now Lucent) Bell Labs. (David Korn is the author of the Korn shell)
Uproarious laughter burst forth from the audience, and it was one of the only times that I have seen a (by then pink cheeked) MPM lost for words or momentarily lacking the usual unflappable confidence. So, what's a body to do when Microsoft reality collides with everyone elses?"
source = http://www.flutterby.com/archives/1998_Sep/quicki
Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
This is all very interesting, but where do I get a copy? The blog that the poster linked to is seriously slashdotted.
Easy enough to hardlink files. I do wish there were real symlinks, rather than 'shortcuts', though.
Some bits about the shell:
Natively, both forwardslash and backslash are allowable as separators. You can use both and even intermix them. So 'C:/program files/Mozilla/' should work just fine.
The verbosity is a bit annoying, but that can be taken care of via aliasing. Also, all options are shortenable as long as they're disambiguous. Furthermore, you can alias everything just like you can in unix, so if you don't like get-process as a name you can just alias it to gp or ps or whatever you like.
Why it's better than using Perl: because it has built-in OS hooks. You don't get the list of processes back when you run get-process: you get a streamed list of processInfo objects. If you want to store them and use them later, you can. If you want to kill a specific process, you can run process.kill on it. Want to browse the registry or AD the same way that you browse the filesystem? You can do that too. Want to format anything in a certain way? You can pick and choose what columns to display and how to display them easily, and you can set these as the defaults for these objects.
I'd strongly recommend trying it. As a linux user and a windows user, it has a lot to recommend it. It has much of the good parts of unix-style ideals - small parts, working together and all that is where the name comes from (it's a Leibniz idea, in case you were wondering). It's very composable and mixable. It works quite a bit better than any other scripting language in exposing the native APIs. It almost allows lamdba closures; it is a lot closer to lisp than to perl or bash.
Try it.
In MSH, drive letters become a bit more complex, as they provide mapping for filesystems, the registry, and more.
( set-location / cd)
sl HKLM:\Software\Microsoft\Windows\CurrentVersion
gci
(get-childitem / dir)
If Microsoft wasn't so arrogant / sufferring from 'not invented here' / needing to own every aspect of the OS so they can figure out new and innovative ways to exploit it once you rely on it, they could just include cygwin and a shell like bash.
Cygwin/bash is there, does everything people want out out of a shell, is under a license that would allow Microsoft to redistribute it, and Microsoft might get some positive points from the geek crowd.
When I first read this, I too thought MS was just retooling some form of CMD to compete with the new-found craze in command lines. But then I read about it on Wikipedia.org. It's considerably more than most of you are thinking. I'm not going to point out what it does here, go read about it(if you don't know what it is.). But how much of this is Microsoft bashing and how much of this is a legitimate analysis of the quality of computer user tools? I think we're seeing a world where things are starting to settle in to what they should be. Windows are going to be desktop machines, *nix are going to run servers(not IIS) and Macs will continue to win the hearts and minds of artists, universities and affluent kids. MS is not reinventing UNIX. They're simply providing *NIX-like tool for "Windows" developers'. It's called competition and it's good for us. It gives me yet another option to choose from. Welcome it! you don't have to use it if you don't like it.
- nightcrawler "Reality is an illusion, albeit a ver persistent one..." -A.Einstein
You'd be amazed hoe much of windows's functionality "hidden" in DLLs is actualy available through rundll.exe, you just need to know how to access it. (which is where the Windows Resource Kit comes in, I believe)
I can only imagine this is because the people that write these DLLs like testing them before the GUI is implemented by another team. Kinda like how many Java developers like to put main() methods in every other class to quickly test it's functioning on it's own.
Everyone who does anything computer/OS-related is just "reinventing Unix poorly". Why, even those newfangled *BSDs are just ripoffs of the original. In fact, if you aren't using punchcards and a PDP-11 to run your OS, you are just a no-talent assmonkey.
Seriously though. It would be interesting if M$ implemented their shells on other platforms to expand the number of people knowledgable with them (Since Windows is mainly GUI based, I'm guessing more people know *nix shells then Windows shells). And I'd give it a try if I didn't have to go over to Windows....
In undeveloped countries, the consumer controls the market. In capitalist America, the market controls you.
Right: they're byte strings. Strings aren't just text.
su -c "rm -rf c:"
Sweet!
How Can I get MSH?
To get MSH, first navigate to http://beta.microsoft.com/ and logon using Passport. Then, click where indicated just after the text "If you were issued a guest ID by Microsoft you can sign in" then enter the guest id of mshPDC (this is case sensitive!). You the need to enter your details and you should get beta details back within a couple of days with site access to the MSH bits.
It'll be ported to *nix in not time :)
if not by microsoft then by enterprising OS advocates.
Yeah, GNU/Monad... gonad for short.
Burn the land and boil the sea, you can't take the sky from me
http://www.tech-recipes.com/windows_monad_msh_tips 629.html
What the fuck where you trying to say?.
Not to be pedantic about your pedantry, but I think you meant were, not where.
...this.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
Seems to be able to do a somewhat decent task, but for reasons not given junction points do not, unlike the rest of the FS, support Unicode-characters.
Arrg!
Not Buzzword 2.0 compliant. Please speak english.
See the new Star Wars movie - success /. MSDN - check
Kiss the hottest babe in school - failure
Stay up all night to script - check
Slashdot just saved my day!
It's neat. The idea is neat.
However it does clearly miss the point of the Unix shell. Monad needs commands written for it to do everything. The Unix shell's entire point was to build upon the existing commands and provide a way to chain them together. This lets you say "if somebody provided a program, we can script with it". This includes all programs that are not GUI on a Unix distribution. Everything.
Monad however has to have everything written for it. You can't take your existing command line apps, or GUI apps, and intermix them to create new programs or script with what you have. This means right out of the gate, Monad is going to be pretty useless to a real administrator.
It has potential to eventually give you a scriptable interface for everything present in the GUI, but only when the developers of those interfaces make equivilent Monad commands... if they even do!
In Unix, we simply have commands for everything. Period.
The idea of turning a pipe into an object stream is sort of neat though, I'll admit that.
Does this mean that tracert will become traceroute and dir become ls? Good god the implecations are huge.
Those who do not understand Unix are condemned to reinvent it, poorly
.NET class derived from our base class and tag it with a NOUN and VERB. The properties of that class become PARAMETERS.
Actually, in this case it should read...
Those who do not understadn VMS are condemned to reinvent it, poorly
Monad is heavily influenced by VMS, not the UNIX shell.
From an interview w/ the Monad developers.
MSFT Jeffrey Snover (Expert):
Q: I've heard Monad has VMS roots... will we have a utility or functionality similar to VERB to create our own verb commands and parameters?
A: We are very influenced by the VMS (and AS400) environments. That said, we don't have the same set of utilities. Do define you own command, you write a
Look at the Wiki's date guys. The Channel 9 page was updated late last year.
Since then, it's been revealed that Monad will not be in Longhorn--whenever the heck that will come out--but will show up in Exchange 12 say sometime in 2007.
Don't ask me what a command shell will be doing in an e-mail server.
For the details see the following article from: Mary Jo Foley's Microsoft Watch
From where I sit, Monad was a decent idea. With it gone, I see even less reason than before to upgrade to XP SP3, excuse me, Longhorn.
Steven
I'm sure WinXP won't delete itself. DOS would easily fit into ram (from floppy disk even) so it was easier to do things like wipe out the C: drive. (it was a Disk Operating System, after all) It might be interesting to list the ways NT protects against such old script-kiddie (batchfile-kiddie?) pranks.
http://en.wikipedia.org/wiki/Signature_bloc
Gonad
Aww, just trying to lighten the mood. Microsoft can write anything they want for their OS and for their customers. I applaud their recognition that a command line is worth having.
In doing so, I think Microsoft is admitting that wizards cannot do everything, that a command line is worth having. It's the only way under windows I've ever known to get the information from "C:\route print"
Bob-
The Ludwig von Mises Institute. The reasoning individuals economics
all your monad are ./
(warning, broken english ahead)
Personally, I'm glad to see this.
I don't undersand the critics, it seems a nice and useful and expressive tool for "power users" (yes, I presently run cygwin on every win-pc i have access to...), with the chance of being pretty elegant, too.
shame on us "advanced" linux/unix users, the object-scripting tecnology is available now in several incarnations (my preference goes to Ruby) but we refuse to introduce new standards, we rely costantly on what has been decided at least a decade ago. we joke about the so called "microsoft boldness", but i think we don't have a much better attitude if we prefer to act a bit too much as if we were a bunch of uncoordinated people lacking trust on ourselves....
it's obvious that this way our "environment of choice" can't be appealing to most of the new developers, both at individual level and company level...
and for what concern a cross-language vm, parrot isn't finished yet.
better wake up NOW, or our preferred environment is going to die quite quickly.
as for microsoft latest advances, i praise them, as i would do if the company name was different. it's nice to see that some company is still making investments in the server and desktop market.
It's rather sad to see people dismissing this so quickly. I can guarantee if this was an Objective-C based shell from Apple people would be slobbering all over it by now, and saying how innovative Apple were, probably with some jabs at Linux too. I remember seeing an initial presentation about MSH a while back and the thinking behind it impressed me then, I'll be keen to try this when it's fully released.
The fact that the Unix command line has stood the test of time when virtually everything else has been redesigned and redesigned and redesigned is an amazing testament to the thinking which went into it.
They basically got it right.
They must have, otherwise it *would* have been redesigned or have fallen by the wayside decades ago. Decades, in IT. *Decades*. Think about it.
Sure, something may well come along which is "a better way" but I doubt it'll be MS who come up with it, they don't have a philosophy so I don't see how they could.
Government of the people, by corporate executives, for corporate profits.
"Server Error in '/' Application."
Is computing really becoming pervasive ?
At least it has a sense of humor 8)
'Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "Off".
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's configuration tag to point to a custom error page URL.
'
It takes 40+ muscles to frown, but only four to extend your arm and bitchslap the motherfucker
I don't think many of us care that the command names are a little hard to remember. I have just as much trouble remembering stuff from APIs with nice names like Java.
No, this highlights a weakness in UNIX shells: we have to parse things. It's slow and it's a huge pain. It seriously limits what we can do. grep, sed etc can be used to manipulate streams but nobody ever implements the complete grammar of the input they can get. They implement some subset that's good enough for the job at hand and tweak it when it screws up. It's worked well for decades, but that doesn't mean we can't do better.
Having a data structure passed along a pipe like MSH does is a huge advantage and very efficient, but I think most UNIX people can agree that it's not worth it to bring everything into the same process. What's an alternative? Serialize the data structure (in some human readable form to stay true to UNIX tradition) and pass that down the pipe, from one process to another. That would work with the pipes we have now and the shells we have now, we just need new tools and a serialization protocol.
I rarely criticize things I don't care about.
WTF?
I need sleep...
Microsoft programmers should look up "second system effect": they keep making the same mistake again and again.
If you want to see some good (or at least interesting) directions people have taken shells into, there are Plan 9 rc (same idea as sh, but cleaned up), fish (better interactive features), and Tcl/Tk (shell-like programming for a full scripting language, including the ability to embed Java and C#/CLR objects). And if you want a full scripting language, Perl, Python, and Ruby fit the bill.
A note to FOSS programmers: if you are really itching to clone Monad, please do yourself and everybody else a favor, implement your clone in Perl or Python: a Monad-like shell becomes almost trivial in those languages because they have all the reflection capabilities you need, and because they already have all the hookups to Java, C#, and COM that you might want.
Why do the unix zealots always dismiss ANY attempt to make the user experience more high-level / semantic-oriented (especially if it comes from Microsoft) ?
Extracting the Microsoft-centric marketing jargon from your post (computing isn't a job, it's an experience!) so that I can get to the meat of the issue might be a bit difficult but here goes.
For about ten years since the dawn of Windows 95, Microsoft has spent a fortune downplaying the power of a CLI in favor of the all-powerful GUI. After all, why is it that cmd.exe and family are so incredibly anemic? There is no clear way to interface with the system, such as with kill -SIG PID (granted, this is because Windows is void of a kill binary); the intent behind this is likely the design philosophy of Windows. Everything must interact with the GUI, leaving only limited functionality to the shell.
So the upshot is that Microsoft is taking a step forward by moving a few steps back. Now that they're implementing a shell with something vaguely resembling real scripting, they have to somehow correct all of the marketing they have done over the years to mitigate the impact a lack of any decent shell in their operating systems. I know what will happen, too--Windows zealots will praise Microsoft for inventing the shell... never mind the fact that scriptable shells are older than I am.
Now for my next question. Why do you seem to believe this is innovative? The notion of a shell that interfaces with the system by way of core userland utilities (ps, ls, kill, et al) has been around since the inception of Unix. The fact that Microsoft has just now caught on to the usefulness of a powerful CLI is nothing innovative. Like the topmost post suggested, perhaps they are reinventing Unix--poorly. Perhaps, too, they should save themselves the headache and scrap the entire Windows source and start with something covered by a BSD license. They left the copyright in ftp.exe, after all--why not borrow the rest of the system?
Ultimately, I think MSH is just going to be a rotten hack, hyped up by Windows administrators who probably have no real understanding of what a powerful CLI can do. The shell is one thing--but what about all the other userland binaries that really make the shell useful? All the scriptable support in the world isn't going to save them no matter how bash-like it is--because without simple commands that can interact with running processes, the file system, and generally everything else (not those implemented within the shell, but ENTIRELY SEPARATE, which I don't think MS will do since they have a strange affinity for monolithic applications) what good is it really? Or is this innovation in the traditional Microsoft-marketing-department sense, where innovation is the capacity to strip all usefulness from an application to limit potential confusion, thereby increasing the end user's experience in a positive, fluffy-bunny environment?
</rant>
He who has no
Firstly, you're name speaks volumes about old FUD. Secondly, although Unix might be getting steamrolled, Free Software un*x wasn't, isn't, and will never be. Thirdly, I think its a funny story whether you're a fan of unix or not. On topic, it sounds like MS had finally figure out that they have to work harder to undermine the un*x installation base- nothing else
http://en.wikipedia.org/wiki/Signature_bloc
Monad works substantially differently than the Unix tools.
Very cool shell; if you don't know anything about it, don't assume it's just a bash or ksh clone.. it's actually something fairly unique.
(sorry, couldn't think of a better subject line).
After reading the link, and the meta-links, I'm not surprised. And, I'm not overly impressed. It's an okay CLI they've put together (though when they start bragging on themselves, they would do well not to put a link to "sample" cmdlets, and have no samples on the referenced page.)
The sample scripts are pretty lame, certainly easy examples to do quickly and more tersely even in the lowly Bourne Shell.
I've posted about this development before, and I'll restate... I wonder why Microsoft would come out with their own "version" of scripting when other good examples exist, and more standard ones exist. And, why for heaven's sake would they build so much into the shell? Isn't the shell supposed to be just that? I know this is essentially a philosophical nit, but again, lots of shells derived and fairly faithful to the Bourne/Ksh standard exist, have evolved (for interactive enhancements) and serve well...
Hmmmmmmmmm, maybe Microsoft is preparing to jettison MKS? (That would be a shame.)
We fixed this in the latest drop. We want Monad to be useful for Admins. That means that it has to address the problems they have today and provide them a substantial value proposition above and beyond that.
In addition to being an interactive Shell, Monad supports 3 styles of scripting: .NET style scripting (stitch together Cmdlets which produce/consume objects and provide a set of object processing utilities).
1) *NIX style scripting (stitch together existing executables and provide a set of text processing utilities),
2) VBScript style scripting (Manipulate OLE Automation objects),
3)
You are right about the strength of UNIX - it has commands for everything (hats off to you). This is a weakness of the Windows world. Addressing this was one of the primary design centers for Monad. I believe economics talks and BS walks. Monad is designed to provide a maximal return on investment for Cmdlet developers. Monad is architected to make developing cmds very cheap and easy and once you do it, it provides a ton of functions.
Please, since SCO, please type un*x or some other variation, not "Unix." Are you a big supporter of VMS? Z-OS? Os9? I think its clear where the accusation of bigotry is coming from. Would the story be more funny if D. Cutler made a similar criticism to an non-MS marketing dweeb? or problems with Apple's marketing reality? I think it would be exactly as funny, and maybe just as appropriate. I think you're thinned-skinned at best, more probably sold-out.
http://en.wikipedia.org/wiki/Signature_bloc
Their bad (as in both -- nasty and foolish) ways of doing things are catching up with them all the time.
In Soviet Washington the swamp drains you.
One of the main goals of Longhorn is to require that any configuration in the UI has a CLI equivalent.
Sounds to me, like somebody (or a whole lot of somebody's in this thread) seem a bit too agitated over a single new product. I think it's very obvious what's going on here, but everybody's afraid to say it, lest they become less 'l33t' in the future. Windows is filling in the gaps. Quickly. W2K has incredible stability. Security it rapidly increasing. Add a good command line interface (they already do have a scripting language, but *nix zealots like to ignore that), and there's not a whole hell of a lot of reason left why somebody would subject themselves to any *nix on the desktop any more. and, the onyl real innovation that has been done anywhere near the *nix camp in the past to years has come out of Apple. In the immortal words of David Spade: Unix: buh-bye.
I wanted to expand on your comment about how MSH could prove to be fairly useless because there's going to be no standard userland tools to go with it.
.conf files and a standard system image, you've got your system back and running in minutes. This is just an example of how powerful the CLI is - and you don't have to be a career programmer to make extremely useful and powerful scripts.
It's not just the normal userland tools that will be a setback. It's everything else, too.
In a Unix-style system, almost everything is ASCII text based. While there's GUI interfaces for a lot of stuff now a days, most configuration, logging, etc are done with text. This makes a powerful shell the perfect companion to those applications - you can process the text and do whatever you want with things so incredibly easy.
You can practically backup the entire configuration of a system to a floppy disk. A few
So, without the same methodology as a Unix system, a powerful CLI on windows will probably have minimal impact to the system at large. Hey, I'll be glad to have it as a standard feature, but it won't change my life.
- It's not the Macs I hate. It's Digg users. -
You never used the thing did you?
I encourage you all to download the beta and let us know how we are doing
Thanks. We might be able to help more if access to the beta was easier; many people here are cautious about giving their personal details to anyone, and the idea of a two day wait before we can start looking at it is a little offputting. Is there a faster and easier way of getting it?
The entire .NET class library is exposed to MSH. And the class library almost entirely wraps all Win32's functionality. So yes, you can do anything. The design philosophy behind Longhorn is that any UI configuration must be exposed in the CLI. On and by the way, you get lossless JPEG rotation in Longhorn.
a port of a similar linux app. already exists for win32
Have you read the article? This is nothing like cygwin/bash.
correcction: all the wp's but the japanese one are down.
I was waiting for someone to do this. Piping to awk is a HACK. You're parsing text and assuming the memory consumption is always the 8th column. Which it isn't always. Not having to parse text is one of the reasons MSH is so great.
update: english has come back up, many others still down
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
I see you are trying to run MSH.exe
Are you sure?
[Abort, Retry, Fail]?
there's no place like ~
But your example is oh so less user-friendly.
Learning Curve: The time it takes to get to various points of being able to use a system (ie, can you change directories, can you do a ps, can you do a ps | grep | awk > file)
Ease of Use: How quickly can you do things once you've been trained. This is the more important thing in my opinion in this case. Since the command line won't be used more than a few times by typical users, it is very much an admin/power tool. Things like ps is preferable to 'get-process' once you know whats going on.
Different tools require a different balance between ease of use and usability. I think shells should tilt towards usability rather than an easy learning curve.
Having tried to use the VMS shell once, if Monad is based on VMS, then Monad and Microsoft deserve each other. :)
"Every man is a mob, a chain gang of idiots." - Jonathan Nolan, Memento Mori
Why, exactly? There are plenty of alternatives for scripting - both by Microsoft (WSH) and of course there's also Python, Perl and everything else. And for interactive usage, the existing cmd.exe is sufficient, to me anyway. Once I figured out how to enable auto-complete I didn't really miss anything from the Unix shells. Hm.
Switch back to Slashdot's D1 system.
Whilst the UNIX style unified directory hierarchy is aesthetically pleasing to computer scientists, I've never been convinced that it's really more usable. On Windows, people can learn a few simple letter to concept mappings "A" is the floppy disk, "C" is the stuff inside the Computer, "D" is the cD-rom drive, "E" is their usbEE kEE. Obviously not all systems will be like that, but it's common enough. On UNIX systems the location of floppy disks, installed programs, mounted USB keys and so on tend to move around unpredictably.
Incidentally, talking of legacy concepts, what do you think "mounting" is? It dates from the time when you had to mount tapes onto their reels!
licensing concerns (like XP workstation allowing only one user at a time);
I don't see how this would affect a command shell designed for personal use. I also don't understand how it only allows one user at a time - in the copies of XP I've seen multiple users can log in at once, then you can rapidly switch between them. If you are thinking of X and terminal servers, well, you can have a command line without that. Look at MacOS.
wide-spread security concerns resulting in the feature being turned off by default on most installations;
There's no evidence I can see that suggests this would be off by default. Actually MSH could be a lot more secure than the UNIX shell as it can be fully controlled by .NET Code Access Security, which is more fine grained than traditional UNIX permissions.
wide-spread fears of accidental and intentional incompatability;
By adding a new end-user feature? That never stopped them adding themes, Media Player, MSN Messenger, etc. Compatibility concerns for something totally new are far less serious.
being only available as part of an expensive (and extensive!) upgrade;
In contrast to what? Microsoft backport far more stuff than Linux vendors do, and Apple basically doesn't backport anything at all. That's $120 per upgrade, thanks very much.
Seriously. The guys working on MSH have blogs, I read a few, and they seemed very sharp to me. The MSH API seems quite lightweight and I suspect you'll be able to create new commandlets very easily - far easier than you can create new command line tools on Linux. Some of the examples they showed would require thousands of lines of code to write on Linux once you take into account the build system, the fact that they're usually written in C, the text parsing with extra checks for buffer overflows etc. Yet using the MSH API they fitted onto a single screen of text.
I'm not too worried, I don't use Linux over Windows just because of bash (surprise), I use it because it's Free (and it has some other neat features I like). Actually, most UNIX shells suck ass. Their builtin programming languages are hideously primitive, unintuitive, and are easy to screw up. Getting basic information out of common tools requires a guru-level knowledge of sed, awk and Perl style regular expressions which are themselves primitive, backwards and unintuitive.
You'd have to work pretty hard to produce a command line worse than the UNIX one (and no, cmd.exe does not count as "working hard", I suspect it's had about a weeks worth of work in the last decade).
I can guarantee if this was an Objective-C based shell from Apple people would be slobbering all over it by now, and saying how innovative Apple were
Yeah, but that wouldn't make it any better either.
One might argue that most innovation in software engineering, program analysis and verification in the past decade has been realized in the OO/formal semantics community. So for instance, since this exciting piece of work is implemented in a framework of OO-like interfaces, it is inamenable to crude pipe-based scripting languages. There has long been a debate between academics and designers of popular scripting languages like perl on which way to go (eg. http://www.ai.mit.edu/projects/dynlangs/ll1/). Although no one side has really won, one conclusion that stands is that scripting defines its own programming paradigm which should not be confused with anything else that comes close. Scripting languages MUST facilitate quick and dirty solutions that just work, or they're not scripting languages anymore. Usually, the more loaded a language gets with type information and rigid control constructs, the less capable it gets of letting you produce results without having to design and debug much.
Instead of building scrips through Perl or Python or whatever you use this is going to be centered around building "scripts" in .NET.
Yes, and that's exactly why bash is beter. If you want something "between" Perl and bash, use Tcl/Tk.
here
Seriously--can anyone read that description and not laugh, given the context of previous posts...?
"My monads experience the world from a particular point of view. It's usually very dark, of course, but sometimes they can come to light."
He who has no
Short, cryptic names hinder usablity by greatly increasing the learning curve.
Just because you think so doesn't make it true.
All I know about Bush is I had a good job when Clinton was president.
Should be interesting to see what security features are builtin to this shell....
will it support vi commands, like ksh?
vi was designed to work over very slow connections.
sometimes, I need to work over very slow modem connections, using vi commands in a Unix shell is the only way to work. I mean a 9600 kbps modem dialing to a customer in another country.
PENAROL: Seras eterno como el tiempo y floreceras en cada primavera.
The GNU Project announces plens to merge KParts into the Bourne-Again Shell. :-D
-1 Redundant?
There is no other suggestion in the entire discussion that bash could merge with KParts.
Did anyone else nearly choke laughing on the word Monad?
Yes, an unsourced claim on Wikipedia must be accurate, no matter how little sense it makes.
No it doesn't. You're confusing an expert command-line interface with every command line interface.
It's also possible to design a beginner's command line interface, which wouldn't necessarily imply anything of the sort.
Microsoft has needed a decent command line since Windows 1.0 and they're just getting around to it now? They were OK in begin graphical and sticking to their guns, actually starting to produce something like this is admitting that they screwed up bigtime
I am very easy to get along with, but I don't have time to waste being nice to people who are being stupid. -Theo
I agree, Microsoft's command-line interface will be like IE. The first release version of a Microsoft program is, in my opinion, more like a pre-pre-alpha than a version that should be released.
Internet Explorer is following this pattern exactly. By version 7, IE will be renamed to make it sound completely new, perhaps, and will actually be Microsoft's first relatively bug-free browser. Version 7.0 of Microsoft Internet Explorer should actually be called version 1.0.
Perhaps 2 years ago I was talking with some top-level Microsoft technical support representatives. I gave them a list of 12 ways Microsoft's command line interface (which everyone calls DOS) did not fully support a 32-bit OS. They agreed and seemed embarrassed.
I also sent a message to a group inside Microsoft about this. I said that the Linux and BSD command-line processors were relatively bug-free, and had far more features. Surprisingly, I got a response indicating that they too thought that Windows should not have a primitive toy command-line interface like DOS.
Apparently having a toy command-line interface has been causing some discomfort inside Microsoft.
Expect Microsoft's new command-line interface to follow the same pattern. It will be very, very buggy. Maybe the U.S. government's spy agencies will direct Microsoft to include security vulnerabilities. In any case, if history is any guide, the new command-line interface will be quite usable about 3 years after release, and by about version 7 will be fairly bug-free and feature-complete.
(Of course, Microsoft Word has not followed this pattern. Even after many versions, it is still extremely quirky. My understanding is that the code in Word is such an extreme mess that there is no corporate will to fix it.)
Want an example of DOS not fully supporting a 32-bit OS? Try this:
SUBST R: C:\
This assigns the drive letter R: to the root folder of the C: drive. This kind of substitution is often very valuable in taking some of the drudgery out of corporate operations.
However, that command also destroys the operation of the Recycle bin. It seems to be reversible, however, so there appears to be no harm in trying it, which I have done on several computers with no ill effects that I was able to detect.
To undo the command, enter:
SUBST R:
After all these years, Slashdot is still quite buggy. It posted my comment under the wrong parent, so I posting it again here, where it will make sense. My comment:
I agree, Microsoft's command-line interface will be like IE. The first release version of a Microsoft program is, in my opinion, more like a pre-pre-alpha than a version that should be released.
Internet Explorer is following this pattern exactly. By version 7, IE will be renamed to make it sound completely new, perhaps, and will actually be Microsoft's first relatively bug-free browser. Version 7.0 of Microsoft Internet Explorer should actually be called version 1.0.
Perhaps 2 years ago I was talking with some top-level Microsoft technical support representatives. I gave them a list of 12 ways Microsoft's command line interface (which everyone calls DOS) did not fully support a 32-bit OS. They agreed and seemed embarrassed.
I also sent a message to a group inside Microsoft about this. I said that the Linux and BSD command-line processors were relatively bug-free, and had far more features. Surprisingly, I got a response indicating that they too thought that Windows should not have a primitive toy command-line interface like DOS.
Apparently having a toy command-line interface has been causing some discomfort inside Microsoft.
Expect Microsoft's new command-line interface to follow the same pattern. It will be very, very buggy. Maybe the U.S. government's spy agencies will direct Microsoft to include security vulnerabilities. In any case, if history is any guide, the new command-line interface will be quite usable about 3 years after release, and by about version 7 will be fairly bug-free and feature-complete.
(Of course, Microsoft Word has not followed this pattern. Even after many versions, it is still extremely quirky. My understanding is that the code in Word is such an extreme mess that there is no corporate will to fix it.)
Want an example of DOS not fully supporting a 32-bit OS? Try this:
SUBST R: C:\
This assigns the drive letter R: to the root folder of the C: drive. This kind of substitution is often very valuable in taking some of the drudgery out of corporate operations.
However, that command also destroys the operation of the Recycle bin. It seems to be reversible, however, so there appears to be no harm in trying it, which I have done on several computers with no ill effects that I was able to detect.
To undo the command, enter:
SUBST R:
Yeah, probably. I've been using the same build for about 4-5 months, guess it's time to update :P
Ditto for OS/400. Ugh.
The main trouble is that a lot of the CLI interfaces are not documented. Even going into the program to find switches for the program is a bit of a nuisance.
You can play around with sendkeys() or keystack to sent keystrokes to a command window, but even this interface might not be as robust as one hopes. This is the sort of interface they wanted to move people off. Lotus for DOS programmed using /FS~ to menu-file-save and press enter.
The OS/2 and Windows implementations of pipes is itself poor. I had pipes run, and then close the window.
The documentation on how to pass parameters to commands is abysmal. Unless you know the magic of putting a * after the association in registry, you won't be able to pass parameters to external scripts (eg myfile.rex 2+3)
OS/2 - because choice is a terrible thing to waste.
Monad is likely to play a different role in Windows than *sh and friends in the *n*x world. No matter how horrible or wonderful Monad (rhymes with gonad) turns out to be, it will just be an accessory. The future of Windows and Redmond doesn't hinge on the success of Monad. But they better come up with something prettier than OSX before 2007. (The server market is pretty much lost to *n*x whether of the BSD, OSX, GNU or Solaris variety.)
I'm a sci-fi vegan: I don't want the aliens to think we have as much right to live as the fried chickens we eat.
Why, did I miss something, does it run on linux. I would not suggest my worst enemy run windows.
Got Code?
Also, the 4DOS wildcard rename feature has unfortunately not been adopted.
What no tabs?!?
That would be hard, MSH leverages .NET quite extensively. You might see a Mono Shell, or a Python Shell using the same concepts though.
I tried writing a object-oriented python shell a few years back. There are certainly a great many improvements to be had over bash or zsh. Nice tab completion was difficult to implement though, because parsing incomplete python commands is tricky and because other strategies (such as building hypothetical constructions and prodding them) are made difficult by python's highly dynamic nature...
Fixing copyright
they put a patent in for command line completion with one special advatage, command line completion while...on the Internet!
Bash and Korn shell do NOT run on Windows; they run under Cygwin and U/WIN, respectively. In all honesty, Monad doesn't run on Windows but on .NET. The only shells that actually run on Windows are COMMAND.COM and CMD.EXE. If you read the available documentation on CMD.EXE, you'd see that it actually can do a lot of the things the Unix shells can. The things it can't do are due to the obvious differences between Unix and Windows.
It's a very dark ride.
The only official Korn shell, ksh93, for Windows is from U/WIN. SFU (as opposed to STFU) comes with pdksh; a clone of ksh88 and absolutely NOT the official ksh.
It's a very dark ride.
if anything I am bigoted against know-nothing jerks who stand on flimsy data. I am writing this from a windows box.
Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_S ignpost/2005-06-13/Server_status
The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
Most Linux GUI software isn't usable from the command line
Oh really? I started this browser (Galeon)--from a terminal shell, e.g Konsole, on KDE.
If you want your life to be different, live it differently.
Okay, so what should we be learning from the fact that "process" is abbreviated "ps?" Apparently, the rule when naming UNIX commands is to take the first and last letters.
Okay, so directory list, should be...dt? Okay, we'll assume we just want "list" so then the command would be..."lt." Oh, I guess it's first and second-to-last letters. That works for both situations. Now, let's use an editor. "eo" does nothing for me. Hmm, my learning device must be broken somehow.
On the other hand, the MSH commands follow a predictable pattern: to get data, you use a command starting with "get-" followed by what it is you want to get. Get-content. Get-process.
Get-a-grip. Next time you claim that learning by wrote equals intuitive knowledge, I reserve the right to kick you in the balls.
± 29 dB
Funny how no post 2000 OS resource kit has Perl anymore...
Sorry, this is just laughable. So, you, consider "D" to be easier to associate with a "cD-rom", than "/cdrom"? You are not even trying to justify the "A" for "floppy disk" :-)
The reaction of computer scientists should be your guide. These people tend to know answers to questions, which you don't know enough to even ask.
Oh, that's easy. You named it yourself: "for personal use". To ensure, it is available for personal use only you may only be allowed to run a single instance of it, unless you purchase the server license. Or it may not be available to telnet sessions. Or something bizarre like that. They better... With sh, csh (or whatever Unix shell rocks your boat) you can do anything. It may not be pretty, but it will work. Witness configure-scripts. With cmd.exe you can't even pass all of your own arguments down (there is no equivalent of "$@") -- forget about procedures, loops, etc. Oh, I'm sure, there are plenty of smart individuals working for Microsoft. However, the firm's organization and its dirty unatoned past (and, likely, present) will continue to weight on the firm's products -- and their reputation -- for some time... And these -- the reputation and perception -- are the subject of the thread.In Soviet Washington the swamp drains you.
It's weird. It jumped around. It was in a different position before.
Want a command language for Windows? Try the free, open source AutoIt, which is amazingly complete and well-developed. AutoIt comes with an autocompletion IDE that automatically displays function usage information. The version that includes the IDE installs easily. AutoIt also has a compiler, which is also free. See AutoIt on Sourceforge.
Want Hotkey macros? Try the related free program, AutoHotKey.
Both are excellent.
They both are here now, with no Microsoft grief.
> Why do the unix zealots always dismiss ANY attempt
...that Windows and his producers are absolutely unsexy and less of style. They have no glory history, no real geeks and hackers as heros.
All they own is the need for money and an ugly guy with stupid visions.
> to make the user experience more high-level /
> semantic-oriented (especially if it comes from
> Microsoft) ?
cmd.com does loops, and passes arguments... You can even build loops that do counting and pass the values as arguements.
-]Phreak Out[-
That would be hard, MSH leverages .NET quite extensively. You might see a Mono Shell, or a Python Shell using the same concepts though.
.NET reflection.
Not really. To implement object pipelining instead of textual output pipelining, they will be utilizing
Reflection is nothing new, obviously. It's the fact that they leverage a fully object-oriented language and the reflection part of its API to implement object-piping scripting language, that's the real innovation in here.
Simply put, it's how you put the wheels together, not the wheels themselves.
Can you post the equivalent of sh's "$@" and some examples of loop syntax? Thanks!
In Soviet Washington the swamp drains you.
The reaction of computer scientists should be your guide. These people tend to know answers to questions, which you don't know enough to even ask.
How arrogant. I've done enough coding, and learned enough about usability, to know when somebody is making excuses about something that may have made sense 20 years ago but no longer does.
Now I'm not saying we should replace the unified heirarchy with driver letters on Linux, rather the way GNOME is going with showing multiple "roots" in the UI labelled by logical device names is a better approach. The UI is basically the same, in the new GTK+ file picker you have "Filesystem", "Home", "Desktop", "CD/DVD Drive" etc and they're mapped behind the scenes to wherever they're mounted.
Bytes that are guaranteed to be formatted in a certain way.
Don't just say there will be viruses, when M$ is so acutely aware of the problem. With it being on top of .Net, what makes you think appropriate security won't be implemented? .Net was built with networking and security in mind, and so is Longhorn. Plus, I doubt that the monad shell will be implemented by default for home users - why would they need it?
Can you explain how this will be a boon for virus writers?
In the meantime, if you're a Windows ADMIN, I'd recommend you get the beta now and start playing with it - it has value today, let alone on a years time!
Don't really mind who does it. Gnome or just a GPL version. I think I read a suggestion on /. regarding a GPL licensed version called Gonad. The splash screen was to announce "GONAD! Microsoft, don't you wish you had one ?!!" Don't care who does the work, but I think the splash screen should be kept. Complementary copy to Bill. Just my idea .. my deux centimes as you chaps say.
How many beans make five, anyhow ?
http://www.cs.ntu.edu.au/homepages/bea/home/subjec ts/ith305/description.html
-]Phreak Out[-
Just in case you don't know, what I'm talking about, "$@" are all the arguments given to the script in one list. For example, the following wrapper can replace any program (which should first be renamed into program.bin):
#!/bin/sh
# Log the invocation of the program:
logger "Executing $0 with the arguments $@"
# Execute the original utility:
exec "$0.bin" "$@"
Can cmd.exe do this?
In Soviet Washington the swamp drains you.
If this shell lets me widen it to more than 80 characters I'll be happy. Nothing, not even cygwin, let's me do that on any Windows.
What was the last law that benefited people but not corporations?
Come on, give them SOME credit -- even cmd.exe can't be so brain-dead as not to get THAT simple thing!
You, OTOH, apparenly are -- how the heck could you NOT figure out that it would be "%*"? (It's freaking obvious, the asterisk wildcard for "all of them". In comparison, the Unix shells' @ is pretty damn non-intuitive. "At?!? At where, and why???")
Christian R. Conrad
mail me at iki.fi ; same user ID as here
...and you now know more than they do. Please tell them how to do it right.
./silly_test.sh A B C D E F G H J A0 A1 A2 A3
In their defense, though: The "no one will ever pass more than 9 arguments" idiocy seems to be alive and well in Unix shells, too.
$cat silly_test.sh
#!/bin/ksh <==[Tested it with "sh" and "csh" too]
echo $@
echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13
$silly_test.sh A B C D E F G H J K L M N O
A B C D E F G H J K L M N O
$
So... All software sucks, it seems.
Christian R. Conrad
mail me at iki.fi ; same user ID as here
Feh! Subject says it all, already -- THIS software sucks extra-bad!
Christian R. Conrad
mail me at iki.fi ; same user ID as here