Slashdot Mirror


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

4 of 668 comments (clear)

  1. Re: No Thanks by torpor · · Score: 5, Informative

    Ok, but does bash or ksh run on windows? This is for their own OS, not unix.


    Of course it does, silly.

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  2. Re: No Thanks (not UNIX, VMS!) by Ingolfke · · Score: 4, Informative

    Those who do not understand Unix are condemned to reinvent it, poorly

    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 .NET class derived from our base class and tag it with a NOUN and VERB. The properties of that class become PARAMETERS.

  3. Re:First impressions by Ravatar · · Score: 4, Informative
    Then use ps, it's a built-in alias for get-process.
    MSH>help ps

    NAME
    get-process

    SYNOPSIS
    get-process -Id id | -ProcessName name

    SHORT DESCRIPTION
    Lists processes currently running

    DETAILED DESCRIPTION

    -Id id
    [int[]]
    [pipeline input allowed]
    Comma separated list of process identifiers that specify the processes to ge
    t

    -ProcessName name
    [string[]]
    [pipeline input allowed]
    Comma separated list of process names that specify the processes to get

    -Exclude name
    [ArrayList]
    Comma separated list of process names to be excluded from the output.

    ---
    The Command will enumerate processes from local machine and output System.Di
    agnostics.Process object(s). The command will write the process object to th
    e output pipeline one by one. The Command will take parameters like ID(Proce
    ss Identifier) or Process Name from command line. The Command will return th
    e corresponding system.diagnostics.process for the supplied ID or ProcessNam
    e parameter(s).

    This command also supports the ubiquitous parameters:
    -Debug (-db), -ErrorAction (-ea), -ErrorVariable (-ev)
    -OutputBuffer (-ob), -OutputVariable (-ov), and -Verbose (-vb)

    NOTES
    Exclude only works for process name.

    EXAMPLES
    get-process
    Returns all running processes

    get-process svc*
    Returns all processes with names starting with svc

    PROVIDER SPECIFIC

    DYNAMIC PARAMETERS
  4. Re:Drop the marketing jargon for a minute! by moonbender · · Score: 4, Informative
    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? [...] Everything must interact with the GUI, leaving only limited functionality to the shell.

    Actually, I think I have heard/read that since Windows 2000 (and maybe earlier for the NTs), every administration task in Windows was required to be manageable via command line, as well. Something like that, at least - there certainly are a lot of command line apps in /system32 that I never ever came close to using.
    I don't know what exactly makes cmd.exe anemic - it's perfectly fine, in my opinion. It's not as powerful as bash or the other Unix shells, and the scripting is terrible, but it's just fine for basic interactive file management and the execution of command line apps. It does name completion (command.com didn't), which is basically THE killer feature for me.

    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.
    C:\Documents and Settings\ms>taskkill
    ERROR: Invalid Syntax. Neither /FI nor /PID nor /IM are specified.
    Type "TASKKILL /?" for usage.
    Ships with every Windows post 2000, I think.

    As for other interfaces with the systems, like I said, there is a lot more than what you expect. The NET command certainly is well-known and used for about a thousand things, notable starting and stopping services. It certainly beats the rc.d scripts from my point of view, although I guess that's just because I'm used to it.

    That said, one of the first things I do in a fresh Windows install is get Cygwin along with some Unix essentials - grep, wget, etc. And ls for the pretty colors. ;)
    --
    Switch back to Slashdot's D1 system.