Existe uma linha de comando do Windows com preenchimentos automáticos inteligentes / histórico de comandos semelhantes a bash?

21

Recentemente, comecei a usar o bash e descobri alguns recursos realmente maravilhosos (não necessariamente saindo da caixa, mas podem ser configurados):

  • As setas para cima / para baixo suportam a conclusão parcial: digite "git", pressione a seta para cima e você poderá navegar pelos comandos recentes que começam com "git" (mesmo nas sessões anteriores!)
  • Ctrl-R pesquisará seu histórico de comandos (chamado pesquisa-reversa-i por algum motivo)
  • Muitos, muitos mais dos quais não estou ciente, tenho certeza.

Existe uma boa alternativa do cmd.exe para o Windows que suporte esses recursos? Pesquisei as principais respostas para esta pergunta , mas não encontrei nenhuma alternativa popular que a suporte.

ripper234
fonte
2
Você já tentou o F7 no prompt de comando?
William Hilsum
Eu não tenho. E o primeiro resultado do Google (de 2005 não menos!) É um horror de codificação! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Agora responda a outra parte da minha pergunta e ficarei ainda mais emocionado.
ripper234
11
Infelizmente, os usuários do Windows geralmente usam o que o sistema vem e não há substituição popular do cmd.exe. O Cygwin é amplamente usado como um "emulador" do Linux para Windows, você pode tentar. @ William: bom não sabia disso, mas você já tentou bash ? O Bash se lembra dos comandos de sessões antigas, não apenas da sessão atual. E também filtra os resultados como estados ripper234, para não falar sobre a conversão de links em URLs válidas, rolagem com o mouse em aplicativos de terminal e uma lista longa ... E, por que você ainda não pode redimensionar horizontalmente a janela do prompt de comando? Esta será sempre confundir-me ...
m0skit0
Duas cmdsubstituições populares são discutidas abaixo (por paradroide RedGrittyBrick) e nas respostas com hiperlink para cima, e sua última pergunta é baseada em uma premissa notavelmente incorreta. Eu apenas usei o mouse para redimensionar horizontalmente uma janela do console.
JdeBP

Respostas:

22

Baixe e instale o console do Powershell 2.0 (se você estiver usando o Windows 7, ele já está instalado).

Ele suporta todos os comandos herdados, além de alias, macros e muito mais ...

Aqui estão algumas dicas básicas .

caixa de diálogo shell do poder

get-history: Exibe uma lista de comandos inseridos anteriormente.

invoke-history 35:Executa o comando # 35 na lista de histórico de obtenção

`: Pressione a tecla apóstrofo para trás para inserir uma quebra de linha ou como um caractere de escape para criar um caractere literal. Você também pode quebrar uma linha no caractere de barra vertical (|).

Alt+ Espaço + E: exibe um menu de atalho de edição com as opções Marcar, Copiar, Colar, Selecionar tudo, Rolar e Encontrar . Em seguida, você pode pressionar Kpara Marcar, YCopiar, PColar, SSelecionar tudo, Lpara rolar pelo buffer de tela ou Fprocurar texto no buffer de tela. Para copiar o buffer de tela na área de transferência, pressione Alt+ Space + E+ Se, em seguida, pressione Alt+ Space + E+ Y.

Alt+ F7: Limpa o histórico de comandos.

Ctrl+ C: Interrompe o subprompt ou encerra a execução.

Ctrl+ End: Exclua todos os caracteres da linha após o cursor.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Mova para a esquerda ou direita uma palavra de cada vez.

Ctrl+ S: Pausa || retoma a exibição da saída.

Esc Limpe a linha atual.

F1Move o cursor um caractere para a direita na linha de comando. No final da linha, insere um caractere do texto do seu último comando.

F2 Cria uma nova linha de comando, copiando sua última linha de comando para o caractere digitado.

F3 Conclui a linha de comando com o conteúdo da sua última linha de comando, começando da posição atual do cursor até o final da linha.

F4 Exclui caracteres da sua linha de comando atual, iniciando da posição atual do cursor até o caractere digitado.

F5 Digitaliza para trás através do seu histórico de comandos.

F7: Semelhante a get-history. Exibe uma janela pop-up com seu histórico de comandos e permite selecionar um comando. Use as setas do teclado para rolar pela lista. Pressione Enterpara selecionar um comando a ser executado ou pressione Right arrowpara colocar o texto na linha de comando.

F8 Usa o texto digitado para retroceder no histórico de comandos para comandos que correspondem ao texto digitado até agora na linha de comando.

F9Executa um comando numerado específico do seu histórico de comandos. Os números de comando são listados quando você pressiona F7ou get-history.

Page Up/ Page Down: Obtém o primeiro / último comando no histórico de comandos.

Clique com o botão direito do mouse Se o QuickEdit estiver desativado, exibe um menu de atalho de edição com as opções Marcar, Copiar, Colar, Selecionar tudo, Rolar e Encontrar. Para copiar o buffer de tela na área de transferência, clique com o botão direito do mouse, escolha Selecionar e pressione Enter.

Tab/ Shift+ Tab: Pressione a tecla Tab ou pressione Shift + Tab para acessar a função de expansão de guias, que inclui o preenchimento automático de pasta ou nome de arquivo.

surfasb
fonte
Ele suporta a pesquisa parcial do histórico?
precisa saber é o seguinte
11
Sim, digite a sequência que você deseja pesquisar e pressione F8.
surfasb
Essa é uma visão geral muito abrangente dos controles do teclado do PowerShell.
Paradroid 25/08
Depois, rascunho uma lista dos módulos Powershell obrigatórios. . .
surfasb
11
@surfasb: Você deve incluir o PowerTab, pois é relevante para esta resposta. Tabular com ele é como o IntelliSense.
Paradroid 25/08
11

Você não precisa substituir o prompt de comando! O Windows possui muitos desses recursos integrados ao prompt de comando, como:

  • Histórico de comandos: F7eF9

  • Adicione 1 letra de cada vez do comando anterior: F1

  • Preenchimento automático de diretórios e nomes de arquivos: Tab

Existem ainda mais truques, mas você precisará procurar mais no Google, pois não consegui encontrar um site com uma lista abrangente.

Keltari
fonte
11

Clink estende a linha de comando do Windows e adiciona os seguintes recursos

  • Edição poderosa de linhas do tipo Bash da biblioteca Readline do GNU
  • Conclusão de caminho superior (TAB)
  • Colar da área de transferência (Ctrl-V)
  • Suporte para a conclusão de executáveis ​​/ comandos e variáveis ​​de ambiente
  • Desfazer / Refazer (Ctrl-_ ou Ctrl-X, Ctrl-U) Melhor histórico da linha de comando. Persiste nas sessões
  • Pesquisável (Ctrl-R e Ctrl-S). Expansão do histórico (por exemplo, !!,! E! $). Conclusão programável usando Lua.
thegreendroid
fonte
Perfeito. Isso torna o cmd.exe muito mais útil.
beta
5

Win-Bash ?

Uma festança autônoma para Windows

O win-bash é uma porta do Windows do famoso GNU bash (consulte a página inicial do GNU Bash).

Ao contrário de outras portas bash para Windows (por exemplo, o cygwin bash), o win-bash não precisa de um ambiente especial ou DLLs. Existe apenas um binário e é isso.

Não tenho certeza de como isso é funcional e confiável.


Também há o comando take da jpsoftware - mas, opa, isso foi mencionado no outro Q que você mencionou, então presumivelmente não faz o que você deseja.

RedGrittyBrick
fonte
Na verdade, o Take Command faz o que xe deseja. Possui um histórico de comandos global que pode ser lembrado mesmo quando nenhum interpretador de comandos está em execução. Possui lista e filtragem de histórico . Meu palpite é que "as principais respostas" não se estendem à resposta nº 5. ☺
JdeBP
@JdeBP - Take Command é sobre # 12 na lista.
precisa saber é o seguinte
O Superusuário está listando-a como a quinta resposta quando visualizada aqui.
JdeBP
11
Você pode classificar as respostas por "ativo", "mais antigo" ou "votos". Por "votos" é padrão e SuperUser então parece respostas randomise com votos iguais - Acho atualizar a página altera a ordem ..
RedGrittyBrick
11
@ ripper234: Do que você está falando? O Win-Bash foi atualizado em março passado.
Paradroid
3

O comando Take já foi mencionado, mas o TCC / LE (um subconjunto) é umsubstituto gratuito CMD com muito mais recursos, comandos e personalização. Isso ajuda a proporcionar uma experiência semelhante ao bash, no que diz respeito aos atalhos, aliases e cores do teclado.

Ele pode fazer as poucas coisas mencionadas, incluindo a conclusão parcial do histórico com Up/Downsetas. CTRL-Brepete o caminho do comando anterior. Tente digitar optionpara ver um monte de opções.

TCC/LEtambém funciona muito bem no Console2 .

Além disso, é claro que você pode usar o bash no Windows com Cygwin .

paradroid
fonte
1

A extensão de prompt de comando PyCmd de código aberto faz quase tudo o que você solicita.

Seu objetivo é emular alguns recursos de energia dos shells UNIX (conclusão de tabulação decente, histórico persistente etc.).

imagem

harrymc
fonte