Gibt es eine Windows-Befehlszeile mit intelligenten Bash-ähnlichen Autovervollständigungen / Befehlsverlauf?

21

Ich habe kürzlich mit der Verwendung von bash begonnen und einige wirklich wunderbare Funktionen entdeckt (die nicht unbedingt sofort verfügbar sind, aber konfiguriert werden können):

  • Auf- / Abwärtspfeile unterstützen die teilweise Vervollständigung: Geben Sie "git" ein, drücken Sie den Aufwärtspfeil, und Sie können die letzten Befehle durchsuchen, die mit "git" beginnen (auch in früheren Sitzungen!).
  • Strg-R durchsucht Ihren Befehlsverlauf (wird aus irgendeinem Grund als umgekehrte Suche bezeichnet)
  • Viele, viele mehr sind mir nicht bewusst, da bin ich mir sicher.

Gibt es eine gute cmd.exe-Alternative für Windows, die solche Funktionen unterstützt? Ich habe die häufigsten Antworten auf diese Frage durchgesehen , aber keine der gängigen Alternativen gefunden, die dies unterstützen.

ripper234
quelle
2
Haben Sie jemals F7 in der Eingabeaufforderung ausprobiert?
William Hilsum
Ich habe nicht. Und das erste Google-Ergebnis (seit 2005 nicht weniger!) Ist ein Coding Horror! Beantworten Sie jetzt nur den anderen Teil meiner Frage, und ich werde noch mehr begeistert sein.
Ripper234
1
Leider verwenden Windows-Benutzer im Allgemeinen das System, mit dem sie geliefert wurden, und es gibt keinen beliebten Ersatz für cmd.exe. Cygwin wird häufig als Linux- "Emulator" für Windows verwendet. Probieren Sie es aus. @William: nice wusste das nicht, aber hast du schon mal Bash probiert ? Bash merkt sich Befehle aus alten Sitzungen, nicht nur aus der aktuellen Sitzung. Und filtert auch die Ergebnisse, wie in ripper234 angegeben, um nicht über das Konvertieren von Links in gültige URLs, das Scrollen mit der Maus in Terminalanwendungen und eine lange Liste zu reden ... Und übrigens, warum können Sie die Größe des Eingabeaufforderungsfensters immer noch nicht horizontal ändern? Dies wird mich immer
rätseln
Zwei beliebte cmdErsetzungen werden sowohl unten (von paradroidund RedGrittyBrick) als auch in den oben verlinkten Antworten erörtert , und Ihre letztere Frage basiert auf einer beobachtbar falschen Prämisse. Ich habe gerade die Maus verwendet, um die Größe eines Konsolenfensters horizontal zu ändern.
JdeBP

Antworten:

22

Laden Sie die Powershell 2.0-Konsole herunter und installieren Sie sie (wenn Sie Windows 7 verwenden, ist sie bereits installiert).

Es unterstützt alle Legacy-Befehle sowie Alias, Makros und mehr ...

Hier sind einige grundlegende Tipps .

Power-Shell-Dialog

get-history: Zeigt eine Liste der zuvor eingegebenen Befehle an.

invoke-history 35:Führt den Befehl # 35 in der Get-History- Liste aus

`: Drücken Sie die rückwärtige Apostroph-Taste, um einen Zeilenumbruch einzufügen, oder als Escape-Zeichen, um ein Literal-Zeichen zu erstellen. Sie können auch eine Zeile am Pipe-Zeichen (|) umbrechen.

Alt+ Leertaste + E: Zeigt ein Bearbeitungs-Kontextmenü mit den Optionen Markieren, Kopieren, Einfügen, Alle auswählen, Blättern und Suchen an . Sie können dann Kfür Markieren, Yfür Kopieren, Pfür Einfügen, Sfür Alle auswählen drücken , Lum durch den Bildschirmpuffer zu scrollen oder Fum nach Text im Bildschirmpuffer zu suchen. Um den Bildschirmpuffer in die Zwischenablage zu kopieren, drücken Sie Alt+ Leertaste + E+ Sund anschließend Alt+ Leertaste + E+ Y.

Alt+ F7: Löscht den Befehlsverlauf.

Ctrl+ C: Unterbrechen Sie den Subprompt oder beenden Sie die Ausführung.

Ctrl+ End: Alle Zeichen in der Zeile nach dem Cursor löschen.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Bewegen Sie sich jeweils ein Wort nach links oder rechts.

Ctrl+ S: Pause || setzt die Anzeige der Ausgabe fort.

Esc Löschen Sie die aktuelle Zeile.

F1Bewegt den Cursor in der Befehlszeile um ein Zeichen nach rechts. Fügt am Ende der Zeile ein Zeichen aus dem Text Ihres letzten Befehls ein.

F2 Erstellt eine neue Befehlszeile, indem Sie die letzte Befehlszeile bis zu dem von Ihnen eingegebenen Zeichen kopieren.

F3 Vervollständigt die Befehlszeile mit dem Inhalt Ihrer letzten Befehlszeile, beginnend von der aktuellen Cursorposition bis zum Ende der Zeile.

F4 Löscht Zeichen aus Ihrer aktuellen Befehlszeile, beginnend von der aktuellen Cursorposition bis zu dem von Ihnen eingegebenen Zeichen.

F5 Durchsucht den Befehlsverlauf rückwärts.

F7: Ähnlich wie get-history. Zeigt ein Popup-Fenster mit Ihrem Befehlsverlauf an und ermöglicht Ihnen die Auswahl eines Befehls. Verwenden Sie die Pfeiltasten, um durch die Liste zu scrollen. Drücken Sie Entereinen Befehl zur Auswahl auszuführen, oder drücken Sie die Right arrowden Text auf der Kommandozeile zu platzieren.

F8 Verwendet von Ihnen eingegebenen Text, um den Befehlsverlauf rückwärts nach Befehlen zu durchsuchen, die dem Text entsprechen, den Sie bisher in der Befehlszeile eingegeben haben.

F9Führt einen bestimmten nummerierten Befehl aus dem Befehlsverlauf aus. Befehlsnummern werden aufgelistet, wenn Sie F7oder drücken get-history.

Page Up/ Page Down: Ruft den ersten / letzten Befehl im Befehlsverlauf ab.

Klicken Sie mit der rechten Maustaste. Wenn QuickEdit deaktiviert ist, wird ein Kontextmenü mit den Optionen Markieren, Kopieren, Einfügen, Alle auswählen, Blättern und Suchen angezeigt. Um den Bildschirmpuffer in die Zwischenablage zu kopieren, klicken Sie mit der rechten Maustaste, wählen Sie Auswählen und drücken Sie die Eingabetaste.

Tab/ Shift+ Tab: Drücken Sie die Tabulatortaste oder Umschalt + Tab, um auf die Tabulatorerweiterungsfunktion zuzugreifen, die die automatische Vervollständigung von Ordnern oder Dateinamen umfasst.

surfasb
quelle
Unterstützt es die Suche nach Teilhistorien?
Ripper234
1
Ja, geben Sie die Zeichenfolge ein, nach der Sie suchen möchten, und drücken Sie F8.
Surfasb
Dies ist eine sehr umfassende Übersicht über die PowerShell-Tastatursteuerelemente.
Paradroid
Ich werde später eine Liste der Powershell-Module zusammenstellen. . .
Surfasb
1
@surfasb: Sie sollten PowerTab einbinden, da dies für diese Antwort relevant ist. Das Tabulieren ist wie mit IntelliSense.
Paradroid
11

Sie müssen die Eingabeaufforderung nicht ersetzen! Windows verfügt über viele dieser Funktionen, die in die Eingabeaufforderung integriert sind, z.

  • Befehlsverlauf: F7undF9

  • Fügen Sie jeweils einen Buchstaben aus dem vorherigen Befehl hinzu: F1

  • Automatische Vervollständigung von Verzeichnissen und Dateinamen: Tab

Es gibt noch mehr Tricks, aber Sie müssen weiter auf Google suchen, da ich keine Website mit einer umfassenden Liste finden konnte.

Keltari
quelle
11

Clink erweitert die Windows-Befehlszeile und fügt die folgenden Funktionen hinzu

  • Leistungsstarke Bash-ähnliche Zeilenbearbeitung aus der Readline-Bibliothek von GNU
  • Überlegene Pfadvervollständigung (TAB)
  • Einfügen aus der Zwischenablage (Strg-V)
  • Unterstützung für die Vervollständigung von ausführbaren Dateien / Befehlen und Umgebungsvariablen
  • Rückgängig / Wiederherstellen (Strg-_ oder Strg-X, Strg-U) Verbesserter Befehlszeilenverlauf. Bleibt sitzungsübergreifend bestehen
  • Durchsuchbar (Strg-R und Strg-S). Verlaufserweiterung (zB !!,! Und! $). Skriptfähige Vervollständigung mit Lua.
thegreendroid
quelle
Perfekt. Es macht cmd.exe so viel nützlicher.
Beta
5

Win-Bash ?

Eine eigenständige Bash für Windows

win-bash ist eine Windows-Portierung der berühmten GNU-bash (siehe GNU Bash-Homepage).

Anders als andere Bash-Ports für Windows (z. B. die Cygwin-Bash) benötigt die Win-Bash keine spezielle Umgebung oder DLLs. Es gibt nur eine Binärdatei und das wars.

Ich bin mir nicht sicher, wie funktional und zuverlässig dies ist.


Es gibt auch den Befehl take von jpsoftware - aber hoppla, der wurde in dem anderen Q erwähnt, das Sie erwähnt haben, also macht er vermutlich nicht das, was Sie wollen.

RedGrittyBrick
quelle
Eigentlich Take Command nicht tun , was xe will. Der globale Befehlsverlauf kann auch dann gespeichert werden, wenn kein Befehlsinterpreter ausgeführt wird. Es hat Verlaufslistenfilterung und -bearbeitung . Meine Vermutung ist, dass "die besten Antworten" sich nicht auf Antwort 5 ausdehnen. ☺
JdeBP
@JdeBP - Take Command steht ungefähr auf Platz 12 der Liste.
Ripper234
SuperUser listet es als fünfte Antwort auf, wenn es hier angezeigt wird.
JdeBP
1
Sie können die Antworten nach "aktiv", "ältesten" oder "Stimmen" sortieren. Durch "Stimmen" ist Standard und SuperUser scheint dann die Antworten mit gleichen Stimmen zufällig zu ordnen - Ich finde, die Aktualisierung der Seite ändert die Reihenfolge ..
RedGrittyBrick
1
@ Ripper234: Worüber sprichst du? Win-Bash wurde im März letzten Jahres aktualisiert.
Paradroid
3

Take Command wurde bereits erwähnt, aber TCC / LE (eine Teilmenge) ist ein kostenloser CMD Ersatz mit viel mehr Funktionen, Befehlen und Anpassbarkeit. Es geht in gewisser Weise darum, ein bashartiges Erlebnis zu bieten, was Tastaturkürzel, Aliase und Farben angeht.

Es kann die wenigen Dinge tun, die Sie erwähnen, einschließlich der teilweisen Vervollständigung des Verlaufs mit Up/DownPfeilen. CTRL-BWiederholt den Pfad vom vorherigen Befehl. Versuchen Sie es mit der Eingabe option, um eine ganze Reihe von Optionen anzuzeigen.

TCC/LEfunktioniert auch sehr gut in Console2 .

Natürlich können Sie bash auch unter Windows mit Cygwin verwenden .

paradroid
quelle
1

Die Open-Source- Erweiterung PyCmd Command Prompt macht das meiste, wonach Sie fragen.

Sein Zweck ist es, einige Power-Features von UNIX-Shells zu emulieren (ordentliche Tab-Vervollständigung, persistenter Verlauf usw.).

Bild

Harrymc
quelle