Linux-ähnliches Terminal für Windows

Ich suche nach einer Anwendung, die als integriertes Linux-ähnliches Terminal für meinen Windows-PC fungieren kann. Zum Beispiel könnte ich im Dateisystem herumlaufen, Anwendungen wie vi installieren usw. Ich möchte, dass diese Anwendung die folgenden Anforderungen erfüllt:

  • Gratis
  • Verwendet Bash
  • Kein Emulator (ich kann tatsächlich meine Dateien auf dem C-Laufwerk sehen und mit ihnen interagieren)
  • Einfach zu installieren
  • Kompatibel mit Windows 10
Wenn Sie bereit sind, auf die Bash-Anforderung zu verzichten, können Sie sich auch Powershell ansehen, das skriptfähig ist und sich in mehr Windows-Dienste integrieren lässt – en.wikipedia.org/wiki/Windows_PowerShell
^ In diesem Fall, warum nicht Python? Es ist auch plattformübergreifend und wirklich eine voll funktionsfähige Allzweck-Programmiersprache.
Es gibt immer PuTTY. Dies würde irgendwo im Netzwerk eine Linux-Box erfordern (z. B. Himbeer-Pi, dedizierter PC, virtuelle Maschine, EC2). Auf diese Weise werden Sie viele der Schmerzen von Cygwin nicht erleben. Dies wurde als Kommentar hinzugefügt, da dies eine ziemlich lockere Interpretation Ihrer Kriterien ist. Allerdings bevorzuge ich für mich echtes Linux gegenüber Cygwin.
Fragen Sie nach einer Befehlsshell oder einem anderen Terminal als der Windows-Konsole?
ConsoleZ mit nativen GNU-Tools ist eine gute Alternative
Und vergessen Sie nicht, sich die neueste Version von ConEmu zu besorgen, um die Standard-CMD-Eingabeaufforderung von Windows oder CygWins zu ersetzen ...

Antworten (10)

Ich benutze Cygwin jetzt seit einiger Zeit und es scheint zu funktionieren. Es war sehr einfach zu installieren und ich konnte aus vielen verschiedenen zu installierenden Paketen wie vim, wget usw. auswählen.

Cygwin

Holen Sie sich das Linux-Feeling - auf Windows

Cygwin ist eine Unix-ähnliche Umgebung und Befehlszeilenschnittstelle für Microsoft Windows. Cygwin bietet native Integration von Windows-basierten Anwendungen, Daten und anderen Systemressourcen mit Anwendungen, Softwaretools und Daten der Unix-ähnlichen Umgebung.

Cygwin-Terminals, die unter Windows 7 ausgeführt werden

Ich benutze Cygwin seit über einem Jahrzehnt. Es ist mein Standard-Befehlszeilenterminal (mintty) und ich muss cmd.exe fast nie verwenden.
Warum hast du ein Bild von Hamilton C Shell?
Babun ist sehr schön als rechthaberische Cygwin-Konfiguration mit Paketmanager und Autoupdate.
@JimGarrison Hat sich die Leistung in diesem Jahrzehnt verbessert? 2006 hatte ich auch Cygwin für ein paar Monate benutzt. Die Verwendung von fork, exec und Pipes war so langsam, dass Shell-Skripte unter Linux mindestens 100-mal schneller ausgeführt wurden als unter Windows.
@kasperd Ich habe noch nie ein Leistungsproblem bemerkt. Ich erwarte nicht, dass es der nativen Linux-Leistung entspricht, aber es gab noch nie einen Punkt, an dem ich von schlechter Leistung frustriert war.
@JimGarrison Ich denke, das kann nur bedeuten, dass Sie die langsamen Funktionen nicht ausgiebig genutzt haben, da die Langsamkeit für die von mir benötigten Shell-Skripte nicht zu bemerken war. Nicht, dass es frustrierend gewesen wäre, da ich einfach eine SSH-Verbindung zu einem Linux-Server herstellen und dort meine Skripte ausführen konnte. Cygwin war für mich nie eine Quelle der Frustration – ich würde stattdessen Windows die Schuld geben und anerkennen, dass Windows mit Cygwin eine bessere Arbeitsumgebung war als Windows ohne Cygwin.
@Boggin babunwird nicht mehr gepflegt und sollte nicht mehr empfohlen werden.

CMDer

cmder

Es kombiniert ConEmu , einen Windows-Konsolenemulator, der mit Bash-ähnlichen Funktionen von Clink und msysgit erweitert wurde . Einige bemerkenswerte Merkmale sind:

  • Bash-Shell über msysGit
  • GNU-C-Compiler und GNU-Make
  • Perl
  • cURL
  • Eingebauter SSH-Agent
  • Automatische Vervollständigung des Befehls
  • Aliasse (mit derselben Syntax wie bash)
  • Einfügen von der Tastatur mitCTRLV

apt-getWenn Sie nach einem Paketmanager (z. B. oder yum) suchen , ist Chocolatey eine mögliche Windows-Alternative. Es enthält nicht alle Pakete und einige sind gelegentlich veraltet, aber es hat eine ziemlich beeindruckende Verbreitung.

choco install googlechrome
+1 für die einfache Erwähnung von Cmder, ich liebe diese Software. Es ist auch tragbar, sodass Sie es auf Ihrem USB-Stick haben und unterwegs haben können, was ich tue, um die abscheuliche cmd-Schnittstelle zu vermeiden.
Es ist interessant, dass es Git Bash verwendet. Ich benutze es selbst, aber ist es wirklich der bessere Ansatz gegenüber Cygwin? Es gibt keinen Paketmanager. Chocolatey scheint nur Windows-Apps zu installieren.
Im Kontext der Frage (die nach einer Bash-Shell fragte) denke ich, dass es so gut ist wie Cygwin. Manchmal brauchen Sie kein vollständiges Linux-System mit Paketmanager, sondern nur eine Bash-Shell für schnelle und schmutzige Arbeit.
+1. cmder ist wahrscheinlich so gut wie es nur geht. Ich werde es erwähnen, obwohl es eine Reihe von Problemen mit dem Neuzeichnen gibt. (zB wenn Sie Menüs haben, die in vim ein- und ausgehen).

Cygwin , bereits aufgeführt, ist eine gute Lösung.

Es gibt jedoch eine andere Alternative: MSYS .

MSYS ist viel leichter als Cygwin, hat aber möglicherweise nicht alles, was Sie brauchen. Das musst du natürlich selbst einschätzen. Es erfüllt definitiv alle 5 Ihrer Aufzählungspunkte. Es ist kostenlos, hat eine Bash-Shell, Sie können mit Ihren aktuellen Laufwerken interagieren, es ist einfach zu installieren und es funktioniert unter Win10.

Ich würde MSYS2 dem alten MSYS vorziehen.

Babun

Ein Screenshot von mir, wie ich mit Nant durch Babun herumalbere.  Dies ist ein solarisiertes Lichtthema

Ich bin überrascht, dass niemand Babun erwähnt hat, "eine Windows-Shell, die Sie lieben werden". Es ist ein vorkonfigurierter Cygwin, der "einfach funktioniert", im Allgemeinen ziemlich großartig, wenn er sofort einsatzbereit ist.

Ich habe lange Zeit Git Bash (verschönert mit Console2) verwendet, aber ich fand es ziemlich mangelhaft. Ich wollte mehr, aber ich war ziemlich eingeschüchtert von Cygwin: Ich hatte Angst, vielleicht unangemessen, vor dem Aufblähen und der Schwierigkeit, das Ding zu konfigurieren. Ich wollte auch ein einigermaßen gut aussehendes Terminal, und Cygwin ist sofort einsatzbereit und nicht sehr hübsch. Ich fürchte, ich werde wie eine Werbung klingen, aber Babun hat wirklich nur funktioniert.

Nun zu den Anforderungen:

  • es ist kostenlos und Open-Source.
  • standardmäßig verwendet es zsh anstelle von Bash, aber ehrlich gesagt ist das für Gelegenheitsbenutzer fast dasselbe. Es kann neu konfiguriert werden, um die richtige Bash zu verwenden.
  • Mit den eigentlichen Windows-Dateien kann perfekt interagiert werden, die Laufwerke sind unter erreichbar /cygdrive/, werden aber auch unter root auf ihre Laufwerksbuchstaben umbenannt.
  • Die Installation führt nur eine install.bat aus.
  • Die Windows 10-Kompatibilität ist nicht perfekt, aber die Lösung sieht einfach genug aus .

Es hat Probleme:

  • Symlinks sind ein bisschen Mist , das ist ein Cygwin-Problem.
  • Es gibt einen berechtigungsbezogenen Fehler , der mir etwas Kummer bereitet hat.
  • Sein Platzbedarf ist nicht zu vernachlässigen (bei etwa 800 MB auf meinem Computer mit Dingen, die ich für die Arbeit benötige), was Nicht-Cygwin-Lösungen (Git-bash oder cmder) geeigneter macht, wenn Festplattenspeicher ein Problem ist (ja, Leute, Festplattenspeicher ist manchmal immer noch ein Problem).
  • Die automatische Vervollständigung von oh-my-zsh kann langsam sein. Aber du wirst es trotzdem lieben.
  • In einigen Grenzfällen gibt es einige Schluckauf bei der Interaktion mit Windows-Dateien und -Anwendungen, hauptsächlich bei Dateien mit Leerzeichen im Namen. Diese können leicht genug vermieden werden, aber es ist immer noch ein bisschen schmerzhaft. Das Aufrufen von ausführbaren Windows-Dateien mit Windows-Dateien als Argumente erfordert die Verwendung von cygpath.
  • Windows erkennt Babun nicht als interaktive Shell, sondern hält es für eine Pipe. Dies verursacht alle möglichen Probleme mit interaktiven Programmen für native Knoten. Es ist ein kleines Problem , das verbessert werden kann

Im Allgemeinen ist Babun einfach perfekt, wenn Sie nur eine gut aussehende Hülle mit Funktionen wünschen, ohne Zeit damit zu verbringen, das Ding zu optimieren und zu konfigurieren. Es gibt nervige Probleme, aber ich mag es :)

Könnten Sie bitte Ihre Antwort bearbeiten und angeben, wie Babun die einzelnen Anforderungen des OP erfüllt? Einen Leitfaden zu Antworten finden Sie in unserer Diskussion darüber, was eine Antwort von hoher Qualität ausmacht . Vielen Dank!
+1, zumal es eine sofort einsatzbereite zsh-Implementierung hat
Das babunProjekt ist nun offiziell tot. Dies sollte nicht mehr empfohlen werden.
Ja, leider wurde Babun eingestellt :(. Es funktioniert immer noch irgendwie!

Windows 10 bietet mit dem Jubiläumsupdate 2016 jetzt eine Bash-Linux-Binärdatei, die auf Windows selbst ausgeführt wird. Es kann über jede Eingabeaufforderung aufgerufen werden und kann Befehle im UNIX-Stil (wie ls) wie jeden anderen Befehl ausführen. Weitere Informationen hierzu finden Sie in den MSDN-Beiträgen auf der Seite „ Windows-Subsystem für Linux “.

Bildschirmfoto

Das sieht wirklich spannend aus.
Dies sollte jetzt die Antwort sein, da es sich um tatsächliche Linux-Distributionen handelt, die unter Windows 10 ausgeführt werden und extrem einfach einzurichten sind.
noch einige fehlende Features wpdev.uservoice.com/forums/…
@StevenPenny danke für den Link und für die Erwähnung der Einschränkungen.
Wie führen Sie das aus?

Was ich verwende, ist eine Kombination aus Git Bash, das kommt, wenn Sie Git installieren , und ConEmu . Git Bash verwendet MinGW, und ConEmu bietet die Option, mehrere Registerkarten und gute Farbschemata zu haben, die Option, ein Vollbild-Terminal zu haben, und mehr.

...und für diejenigen, die sich für Softwarearchäologie interessieren, kommt Git Bash für Windows mit Perl v5.8.8 . Es ist schwer, eine veraltetere Version von Perl unter Windows zu finden.
@tjd perl --version meldet v5.22.0 (neueste stabile) mit meiner Installation von Git-2.5.2.2.
@Boggin Ich hatte es aufgegeben, unter Windows nach einem Update für Git 1.9.5 zu suchen. Es ist schön zu sehen, dass sie endlich geliefert haben!
Ich muss sagen, ich bevorzuge Git Bash gegenüber Cygwin, nur weil ich, wenn ich wirklich eine vollständige Linux-ähnliche Umgebung auf meinem Computer haben möchte, dann in Linux boote. Cygwin ist eine großartige Sache, aber es ist übertrieben, wenn Sie nur eine Muschel wollen!

MSYS2 ist ein Fork von Cygwin, der mit der Absicht erstellt wurde, eine aktualisierte Umgebung zu sein, um das Bauen mit MinGW zu unterstützen. (Das heißt, es soll als besser gewartete Alternative zum immer veralteteren MSYS dienen. Siehe hier für einige Details.) Es funktioniert gut als Bash-Shell mit Linux-Tools auf einem Windows-Rechner.

Anforderungen

  • Frei
  • bash ist die Standard-Shell
  • Wird auf Ihrem Computer installiert und funktioniert auf Ihrer lokalen Festplatte, nicht auf einem emulierten System

    Beachten Sie, dass Sie Ihre Pfade entweder in Anführungszeichen setzen müssen ( cd 'C:\') oder eine alternative absolute Angabe verwenden ( cd /c). Ich glaube, dass Cygwin, MSYS und andere verwandte Varianten in dieser Hinsicht ähnlich sind.

  • Verwendet ein standardmäßiges, ausführbares Windows-Installationsprogramm

  • Ich habe Windows 10 nicht persönlich getestet, aber da es ein Fork von Cygwin ist und es genau verfolgt, bin ich zuversichtlich, dass es mit Windows 10 genauso kompatibel ist wie Cygwin.

Sonstiges

Der größte Vorteil von MSYS2 ist meiner Meinung nach die vergleichsweise saubere Paketverwaltung. Die Paketmanager von Cygwin und MSYS sind meiner Meinung nach verwirrend und schwierig zu bedienen. Sie sind grafisch und nicht sehr gut in das System selbst integriert. Im Gegensatz dazu hat MSYS2 Pacman von Arch Linux portiert, und die gesamte Paketverwaltung erfolgt über die Befehlszeile. Es gibt eine Fülle von Paketen, die leicht zu installieren sind, von Python über Perl und vim bis hin zu SVN und Git für die MinGW-Compiler. Es gibt einen kleinen Schluckauf beim Aktualisieren bestimmter "Kern"-Pakete: Sie müssen Ihre Shell neu starten und das Update erneut ausführen, aber meiner Meinung nach ist dies weitaus besser, als ein externes Grafiktool starten zu müssen.

Siehe die Einführung und den Vergleich zu Cygwin für MSYS2s eigene Aussage über die Unterschiede zu Cygwin und was ihre Ziele waren.

Ich stimme zu! Außerdem ist ConEmu ein netter Konsolen-Emulator. Ich verwende täglich zsh oder fish als Shells, aber mit MSYS2 in ConEmu.
@Josef Ich finde, ich bin im Allgemeinen zufrieden mit der Konsole, die standardmäßig verwendet wird. Es ist definitiv viel besser als das Eingabeaufforderungsfenster.
ConEmu hat den Vorteil, dass es auch für native Windows-Konsolenanwendungen und PuTTY/Kitty verwendet werden kann, sodass ich alle meine Konsolen, lokal und remote, Windows und MSYS2 in einem Fenster habe.

MobaXTerm

Bildschirmfoto

  • Kostenlos: ja . Es hat Personal und Professional Edition. Die Professional Edition fügt meistens nur einen Supportvertrag und Bereitstellungstools hinzu (AFAICT). Sie können die Personal Edition an Ihrem Arbeitsplatz nutzen
  • Verwendet Bash: Ja. Ich verwende MobaXTerm 8.6 und das verwendet Bash 4.1.17(0)-Release. Neuere Versionen von MobaXTerm verwenden möglicherweise neue Bash
  • Kein Emulator: Ja, es ist kein Emulator . Es startet Sie in einer Seite, die wie eine Unix-Dateistruktur aussieht (siehe ls /), aber wenn Sie zu /mnt/cIhrem Laufwerk C navigieren, fahren Sie es dort.
  • Einfach zu installieren: ja . Kommt sowohl als einfaches Installationsprogramm als auch als portable Exe
  • Kompatibel mit Windows 10: Ja und Vista und 7

Es kann Dinge wie Vi installieren. Es hat sein eigenes apt-getMobApt, das auf apt-cyg basiert (Version 0.59 für mich). Sie tun einfach den normalen Debian-Stil apt-get install viusw.

Ich glaube, MobaXterm bündelt Cygwin im Grunde, aber ich bevorzuge es, da es das letzte Mal, als ich Cygwin benutzte, mein ganzes Betriebssystem durchdrang und sich selbst zu verschiedenen Menüs hinzufügte. MobaXterm hält alles unter Kontrolle.

Die Hauptmerkmale von MoboXTerm sind jedoch nicht wirklich sein lokales Terminal. Es ist wahrscheinlich am bekanntesten für seinen SSH-Client mit integriertem SFTP und X11. Und noch ein paar andere Dinge

Dies ist ein sehr empfehlenswertes Programm, insbesondere die X11-Integration, die es unter anderen Alternativen in den Antworten hier einzigartig macht.
Bitte beachten Sie , dass Sie bei dieser Lösung deren Terminal-Emulator verwenden müssen! :-( Es gibt kein separates bash.exeResidieren auf dem externen normalen Dateisystem, das Sie in einer Terminalanwendung Ihrer Wahl starten könnten. (Aber ich stimme @krishnakumarG zu, der bereitgestellte X11-Server ist ausgezeichnet.)

Ab 2015 und der Veröffentlichung von Python 3.4 gibt es jetzt eine einigermaßen vollständige benutzerinteraktive Shell, die unter http://xon.sh/ verfügbar ist.

Das Demonstrationsvideo zeigt keine verwendeten Pipes, aber sie WERDEN im Standard-Shell-Modus unterstützt.

Xonsh ('Muschel') versucht sehr hart, Bash zu emulieren, also Dinge, für die Sie bereits ein Muskelgedächtnis gewonnen haben, wie z

env | uniq | sort -r | grep PATH

oder

my-web-server 2>&1 | my-log-sorter

wird noch gut funktionieren. Möglicherweise benötigen Sie cygwin oder msys, um Zugriff auf die GNU-Coreutils wie grep und uniq zu haben. Windows hat einige seiner eigenen Builtins unter Unix-ähnlichen Namen, die Dinge in die Luft jagen können, seien Sie also vorsichtig mit der Reihenfolge Ihrer PATH-Variablen.

Das xonsh-Tutorial ist ziemlich lang und scheint einen erheblichen Teil der Funktionalität abzudecken, die jemand im Allgemeinen an einer Ash- oder Bash-Eingabeaufforderung erwarten würde:

  • Kompiliert, wertet aus und führt aus!
  • Befehlsverlauf und Tab-Vervollständigung
  • Hilfe & Superhilfe mit ? & ??
  • Aliasse und benutzerdefinierte Eingabeaufforderungen
  • Führt Befehle und/oder *.xsh-Skripte aus, die auch importiert werden können
  • Umgebungsvariablen einschließlich Lookup mit ${}
  • Input/Output Redirection und Kombinieren
  • Hintergrundjobs & Jobsteuerung
  • Unterprozesse, Pipes und Coprozesse verschachteln
  • Unterprozess-Modus, wenn ein Befehl vorhanden ist, sonst Python-Modus
  • Erfasster Teilprozess mit $(), nicht erfasster Teilprozess mit $[], Python-Auswertung mit @()
  • Globbing von Dateinamen mit * oder Globbing von Dateinamen mit regulären Ausdrücken mit Backticks

Windows-Terminal

Beispiel Terminals

Obwohl es standardmäßig keine echte Bash-Shell enthält, habe ich festgestellt, dass Windows Terminal das beste von Microsoft erstellte, offiziell von Windows unterstützte Terminal für Windows 10 ist.

Anforderungen

  • Kostenlos - Ja
  • Verwendet Bash - Es kann Bash, Powershell, Eingabeaufforderung, Ubuntu-Shell mit Windows-Subsystem für Linux oder eine beliebige Shell ausführen
  • Kein Emulator - Es ist so echt wie es nur geht
  • Einfach zu installieren - Super einfach , Installation über Microsoft Store
  • Kompatibel mit Windows 10 – Erstklassiger Bürger von Win 10

Gerade mit den Powerline-Features sieht es einfach so schön aus. Wenn Sie eine Linux-Umgebung zum Erkunden Ihres tatsächlichen Winodws-PCs wünschen, können Sie sich das Windows-Subsystem für Linux über Windows Terminal ansehen.

Ich fand die Dokumentation exzellent, also sollten Sie all diese Dinge relativ einfach tun können, indem Sie einfach die Microsoft-Dokumentation lesen.