Um shell de linha de comando decente para o Windows

6

Certamente alguém escreveu um shell decente para o Windows.

Estou procurando

a) algo mais ou menos parecido com o shell linux comum (ou seja, história, conclusão etc.)

b) algo que é uma instalação simples (mais fácil que o Cygwin que não parecia tão bom quando eu tentei.)

Pontos de bônus se for:

c) Grátis (como na fala)

d) Permite barras em vez de barras invertidas nos caminhos

    
por interstar 02.06.2009 / 02:00

11 respostas

25

O Powershell tem uma vantagem SIGNIFICATIVA sobre qualquer um dos outros shells de comando. É ORIENTADO POR OBJETOS.

Em cmd, bash, etc. sua saída de um comando como dir / ls é efetivamente uma matriz de strings. Se você enviar um comando para outro, terá que processar as strings. Em Powershell, o cmdlet dir realmente fornece uma matriz de objetos de arquivo que você pode canalizar para outro comando e agir nesses objetos por meio de propriedades. Powershell é realmente um shell .net interativo. Cada cmdlet é, na verdade, um wrapper em torno de um conjunto de objetos .Net.

Toda a próxima geração de interfaces de gerenciamento provenientes da Microsoft é realmente implementada no Powershell e as interfaces da GUI são um empacotador dos comandos do Powershell, similar ao "modo Unix" de fazer ferramentas de administração da GUI.

Aqui está um exemplo de uma perspectiva do Active Directory ... Você pode usar o shell cmd.exe e um utilitário como o dsquery.exe para fazer consultas LDAP para objetos. Mas você recebe uma lista de nomes distintos de volta. Você pode então processar esses DNs como string, etc. Em Powershell v1 ou v2, você pode instalar e usar um snap de Missão. em que fornece ferramentas como get-QADUser . Quando você consulta o AD com get-QADuser , os valores de retorno são uma coleção de objetos User. Então, um comando como:

$users = get-QADUser svc_*

Retornará uma coleção que você pode processar por propriedade, por exemplo, para classificá-los pelo HomeDirectory que você usaria:

$HmDirs = get-QADUser svc_* | sort-object HomeDirectory

Não há outro shell disponível com esse recurso para o Windows. Powershell é o caminho a seguir, absolutamente.

Atualização: o PowerShell v2 agora é lançado como parte do Windows Management Framework , mas se você quiser obter o Microsoft AD cmdlets, você precisa estar executando o servidor 2008 R2 ou o Windows 7, senão ainda são os cmdlets da Quest.

    
por 02.06.2009 / 02:35
10

Poweshell. Nuf disse. :)

    
por 02.06.2009 / 02:08
4

Tenho certeza que o cmd permite barras.

Você já olhou para o Powershell? As pessoas parecem jurar por isso.

    
por 02.06.2009 / 02:05
3

O PowerShell do Windows é ótimo, fácil de instalar e virá com o Windows 7. Você ainda pode escrever cmdlets que são muito semelhantes aos scripts bash. / p>

Sou usuário do Ubuntu há cerca de três anos e adorei.

    
por 02.06.2009 / 02:18
3

Eu vou ter que me juntar ao refrão PowerHell. Ao contrário de um shell de estilo unix, todos os cmdlets usam um pipeline de objetos que fluem de um cmdlet para outro. Isso significa que você não precisa se preocupar em descobrir como fazer com que um cmdlet funcione com outro. No mundo unix, a maioria dos comandos e scripts de shell gasta um monte de código retirando o "texto extra" com o qual o próximo comando não pode lidar. Isso também significa que quanto mais você aprende sobre isso, mais você pode usá-lo. Ao contrário de um shell típico em que você precisa aprender como cada comando funciona para poder descobrir como transformar o texto canalizado, os cmdlets do powershell funcionam da mesma maneira, independentemente da entrada. Por exemplo, se eu enviar uma lista de diretórios para selecionar objeto (que escolhe propriedades específicas para usar), o objeto selecionado funcionará exatamente da mesma maneira se eu enviar um objeto de usuário do Active Directory, uma classe de gerenciamento SCOM ou uma caixa postal Exchange.

Dê uma olhada em E agora para algo completamente diferente: introduzindo o Windows PowerShell

    
por 02.06.2009 / 06:10
2

Mike está certo, sempre há shell Hamilton C . (Eu escrevi! :) E eu posso alegremente informar que eu lancei uma grande revisão literalmente dias depois da observação de Mike que ela não parece ter sido atualizada recentemente. Esta versão mais recente agora suporta totalmente o Vista e o Win7 e você obtém binários de 32 e 64 bits.

Para responder às suas perguntas específicas:

  1. Sim, inclui todos os suspeitos usuais, histórico, edição de linha de comando, nome do arquivo e conclusão de comandos, aliases, processos em segundo plano, etc., além de muitos aprimoramentos, como procedimentos internos e definidos pelo usuário, variáveis estruturadas, expressões com ponto flutuante e curingas aprimoradas (por exemplo, uma construção "..." para significar zero ou mais níveis de diretório, conforme necessário para fazer a correspondência de padrões.) Também inclui um conjunto bastante completo de todos os e utilitários externos como more, ls, grep, sed, head, tail, diff, xargs, sort, chown, tar, etc. (As únicas coisas importantes que não incluo são awk, perl e vi, para as quais versões autoritativas e gratuitas para o Windows já existem.)

  2. É muito simples de instalar. Basta abrir o arquivo .msi padrão do Windows Installer compatível com XP e Vista e pronto. Todo o guia do usuário é instalado como hipertexto. É completamente bem comportado, então a desinstalação através do painel de controle também funciona exatamente como deveria, removendo tudo. (Você não encontrará nenhum lixo deixado no registro ou em outro lugar).

  3. Desculpe, não é grátis. O preço é de US $ 350 aqui nos EUA, mas dou descontos para estudantes e em outras situações. (Eu realmente não quero que o custo seja um problema, então se for, por favor, fale comigo. Eu sou uma pessoa normal como você não é uma grande corporação.)

  4. Sim, você pode usar barras para frente ou para trás. E você pode definir o caractere de escape para ser um estilo do Windows circunflexo (^) ou uma barra invertida no estilo UNIX ().

Eu sou o único autor. É todo o meu trabalho, tudo escrito do zero para o Windows. Eu vou direto para a API do Win32 para tudo (eu nem me incomodo com o tempo de execução C, exceto para coisas sprintf porque o CRTL esconde coisas como códigos de erro), então é muito rápido e realmente entende o Windows. Internamente, ele é implementado como uma arquitetura de compilador de descendência recursiva verdadeira e multissegmentada de cima para baixo, portanto, embora seja um shell C, você pode ter certeza de que ele não tem nenhum dos problemas frequentemente reclamados no shell UNIX original C.

Se você quiser dar uma olhada mais de perto, eu tenho versões demo gratuitas no meu site para que você possa experimentá-lo antes de comprar. E vem com uma garantia de satisfação incondicional, por isso, se comprar e mudar de idéia, você pode devolvê-lo por qualquer motivo ou até mesmo por nenhuma razão em tudo e ter seu dinheiro de volta.

Se você tiver alguma dúvida ou eu puder ajudar de alguma forma, envie-me um e-mail para [email protected] ou me ligue para 425-497-0102. Como eu disse, sou uma pessoa real e atendo o telefone. Espero que isso tenha sido útil.

    
por 06.07.2009 / 08:08
2

Por que você abandonou o Cygwin? Que tipo de problemas você teve com o Cygwin? Embora eu tenha me envolvido apenas com o powershell, usei o cygwin por vários anos e descobri que os utilitários POSIX são obrigatórios em máquinas wintel, sem mencionar todos os serviços como cliente e servidor SSH e X-windows. Tudo de graça.

    
por 02.06.2009 / 03:30
0

link < - se você já está acostumado a usar o estilo bash.

    
por 02.06.2009 / 02:23
0

Há sempre o Hamilton C Shell , mas parece que ele não foi atualizado ativamente no ano passado ou então.

    
por 02.06.2009 / 03:35
0

Você realmente olhou para cmd.exe recentemente? Pelo menos desde o Windows XP, ele suporta todas as suas necessidades, além de / em vez de \ (portanto, não há pontos de bônus, mas, caso contrário, tudo bem).

    
por 02.06.2009 / 14:52
0

Adicionar o conteúdo de unxutils ao seu caminho é o que funciona melhor para mim.

Por muitos anos agora. Então você ainda está em uma caixa dos dos original, portanto não há strings emulador-ish anexadas.

grep, ls, du, é praticamente tudo lá, você pode ter que procurar alguns extras como um 'curl.exe'.

    
por 27.04.2012 / 12:36

Tags