Esiste una riga di comando di Windows con completamenti automatici / cronologia dei comandi simili a bash?


21

Di recente ho iniziato a utilizzare bash e ho scoperto alcune funzionalità davvero meravigliose (non necessariamente disponibili, ma possono essere configurate):

  • Le frecce su / giù supportano il completamento parziale: digita "git", premi la freccia SU e potrai sfogliare i comandi recenti che iniziano con "git" (anche nelle sessioni precedenti!)
  • Ctrl-R cercherà la cronologia dei tuoi comandi (per alcuni motivi chiamato reverse-i-search)
  • Molti, molti altri di cui non sono a conoscenza, ne sono sicuro.

Esiste una buona alternativa a cmd.exe per Windows che supporta tali funzionalità? Ho sfogliato le risposte migliori a questa domanda , ma non ho trovato nessuna delle alternative popolari che la supportano.


2
Hai mai provato F7 nel prompt dei comandi?
William Hilsum,

Non ho. E il primo risultato di Google (dal 2005 non meno!) È un horror di programmazione! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Ora rispondi all'altra parte della mia domanda e sarò ancora più elettrizzato.
ripper234,

1
Sfortunatamente, gli utenti Windows generalmente usano ciò che viene fornito con il sistema e non esiste una popolare sostituzione cmd.exe. Cygwin è ampiamente usato come "emulatore" di Linux per Windows, potresti provarlo. @William: bello non lo sapevo, ma hai mai provato bash ? Bash ricorda i comandi delle vecchie sessioni, non solo della sessione corrente. E filtra anche i risultati come afferma ripper234, per non parlare di convertire i collegamenti in URL validi, scorrere con il mouse su applicazioni terminali e un lungo elenco ... E a proposito, perché non riesci ancora a ridimensionare orizzontalmente la finestra del prompt dei comandi? Questo mi
scuoterà

Due cmdsostituti popolari sono discussi sia sotto (da paradroide RedGrittyBrick) sia nelle risposte con collegamenti ipertestuali sopra, e quest'ultima domanda si basa su una premessa osservabilmente errata. Ho appena usato il mouse per ridimensionare orizzontalmente una finestra della console.
JdeBP,

Risposte:


22

Scarica e installa la console Powershell 2.0 (se stai utilizzando Windows 7, è già installato).

Supporta tutti i comandi legacy, nonché alias, macro e altro ...

Ecco alcuni consigli di base .

power-shell-finestra

get-history: Visualizza un elenco di comandi precedentemente immessi.

invoke-history 35:Esegue il comando # 35 nel get-history list

`: Premere il tasto apostrofo all'indietro per inserire un'interruzione di riga o come carattere di escape per creare un carattere letterale. Puoi anche spezzare una linea sul carattere pipe (|).

Alt+ Spazio + E: visualizza un menu di scelta rapida di modifica con le opzioni Seleziona, Copia, Incolla, Seleziona tutto, Scorri e Trova . È quindi possibile premere Kper Contrassegna, Yper Copia, Pper Incolla, Sper Seleziona tutto, Lper scorrere il buffer dello schermo o Fper cercare del testo nel buffer dello schermo. Per copiare il buffer dello schermo negli Appunti, premere Alt+ Spazio + E+, Squindi premere Alt+ Spazio + E+ Y.

Alt+ F7: Cancella la cronologia dei comandi.

Ctrl+ C: Interrompe il sottoprocesso o termina l'esecuzione.

Ctrl+ End: Elimina tutti i caratteri nella riga dopo il cursore.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Sposta a sinistra o a destra di una parola alla volta.

Ctrl+ S: Pausa || riprende la visualizzazione dell'output.

Esc Cancella la riga corrente.

F1Sposta il cursore di un carattere a destra sulla riga di comando. Alla fine della riga, inserisce un carattere dal testo dell'ultimo comando.

F2 Crea una nuova riga di comando copiando l'ultima riga di comando sul carattere digitato.

F3 Completa la riga di comando con il contenuto dell'ultima riga di comando, a partire dalla posizione corrente del cursore fino alla fine della riga.

F4 Elimina i caratteri dalla riga di comando corrente, a partire dalla posizione corrente del cursore fino al carattere digitato.

F5 Esegue la scansione all'indietro nella cronologia dei comandi.

F7: Simile a get-history. Visualizza una finestra pop-up con la cronologia dei comandi e consente di selezionare un comando. Utilizzare i tasti freccia per scorrere l'elenco. Premere Enterper selezionare un comando da eseguire o premere Right arrowper posizionare il testo sulla riga di comando.

F8 Utilizza il testo immesso per eseguire la scansione all'indietro nella cronologia dei comandi alla ricerca di comandi corrispondenti al testo digitato finora sulla riga di comando.

F9Esegue un comando numerato specifico dalla cronologia dei comandi. I numeri di comando sono elencati quando si preme F7o get-history.

Page Up/ Page Down: Ottiene il primo / ultimo comando nella cronologia dei comandi.

Fare clic con il tasto destro del mouse Se QuickEdit è disabilitato, visualizza un menu di scelta rapida di modifica con le opzioni Seleziona, Copia, Incolla, Seleziona tutto, Scorri e Trova. Per copiare il buffer dello schermo negli Appunti, fare clic con il pulsante destro del mouse, selezionare Seleziona, quindi premere Invio.

Tab/ Shift+ Tab: Premi il tasto Tab o premi Maiusc + Tab per accedere alla funzione di espansione della scheda, che include il completamento automatico di cartella o nome file.


Supporta la ricerca cronologica parziale?
ripper234,

1
Sì, digita la stringa che desideri cercare e premi F8.
surfasb,

Questa è una panoramica molto completa dei controlli da tastiera di PowerShell.
paradroid

Scriverò un elenco di moduli Powershell indispensabili in seguito. . .
surfasb,

1
@surfasb: dovresti includere PowerTab, poiché è rilevante per questa risposta. La tabulazione con esso è come IntelliSense.
paradroid

11

Non è necessario sostituire il prompt dei comandi! Windows ha molte di queste funzionalità integrate nel prompt dei comandi, come ad esempio:

  • Cronologia dei comandi: F7eF9

  • Aggiungi 1 lettera alla volta dal comando precedente: F1

  • Completamento automatico di directory e nomi di file: Tab

Ci sono ancora più trucchi, ma dovrai cercare ulteriormente su Google in quanto non sono riuscito a trovare un sito Web con un elenco completo.


11

Il clink estende la riga di comando di Windows e aggiunge le seguenti funzionalità

  • Potente modifica delle linee simile a Bash dalla libreria Readline di GNU
  • Completamento percorso superiore (TAB)
  • Incolla dagli Appunti (Ctrl-V)
  • Supporto per il completamento di eseguibili / comandi e variabili di ambiente
  • Annulla / Ripeti (Ctrl-_ o Ctrl-X, Ctrl-U) Cronologia della riga di comando migliorata. Persiste per tutte le sessioni
  • Ricercabile (Ctrl-R e Ctrl-S). Espansione della cronologia (ad es. !!,! E! $). Completamento tramite script tramite Lua.

Perfetto. Rende cmd.exe molto più utile.
beta,

5

Win-Bash ?

Un bash autonomo per Windows

win-bash è una porta di Windows della famosa GNU bash (vedi la homepage di GNU Bash).

A differenza di altre porte bash per Windows (ad esempio cygwin bash), win-bash non ha bisogno di ambienti speciali o DLL. C'è solo un binario e basta.

Non sono sicuro di quanto sia funzionale e affidabile.


C'è anche il comando take di jpsoftware - ma, oops, è stato menzionato nell'altra Q che hai citato, quindi presumibilmente non fa quello che vuoi.


In realtà, Take Command fa ciò che vuole xe. Ha una cronologia dei comandi globale che può essere ricordata anche quando nessun interprete dei comandi è in esecuzione. Ha il filtro e la modifica dell'elenco cronologico . La mia ipotesi è che "le risposte migliori" non si estendono alla risposta n. 5. ☺
JdeBP,

@JdeBP - Take Command è circa # 12 nell'elenco.
ripper234,

SuperUser lo sta elencando come quinta risposta quando visualizzato qui.
JdeBP,

1
Puoi ordinare le risposte per "attivo", "più vecchio" o "voti". Per "voti" è l'impostazione predefinita e SuperUser sembra quindi randomizzare le risposte con uguali voti - Trovo che l'aggiornamento della pagina cambi l'ordine.
RedGrittyBrick

1
@ ripper234: di cosa stai parlando? Win-Bash è stato aggiornato lo scorso marzo.
paradroid

3

Take Command è già stato menzionato, ma TCC / LE (un sottoinsieme) è unsostituto gratuito CMD con molte più funzioni, comandi e personalizzazione. Va in qualche modo a regalare un'esperienza simile a quella di un bash, per quanto riguarda le scorciatoie da tastiera, gli alias e la colorazione.

Può fare le poche cose che menzioni, incluso il completamento parziale della cronologia con le Up/Downfrecce. CTRL-Bripete il percorso dal comando precedente. Prova a digitare optionper vedere un intero carico di opzioni.

TCC/LEfunziona anche molto bene con Console2 .

Inoltre, puoi ovviamente usare bash su Windows con Cygwin .


1

L' estensione del prompt dei comandi PyCmd open source fa la maggior parte di ciò che chiedi.

Il suo scopo è emulare alcune funzionalità di potenza delle shell UNIX (discreto completamento con Tab, cronologia persistente, ecc.).

Immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.