Unterschied zwischen UnxUtils und GnuWin32?

12178
Stormshadow

Ich bin ein Windows-Benutzer, der Programme wie grep und sed zusammen mit anderen Dienstprogrammen wie ls, cut usw. in meiner Eingabeaufforderung wünscht. Ich bin auf zwei Pakete gestoßen, die das schaffen würden

Ich würde gerne wissen, was der Unterschied zwischen den beiden Funktionen ist, und vor allem was die Leistung betrifft, bevor ich mich für sie entscheide. Von dem, was ich gesehen habe, ist GnuWin32 ein super Satz von UnxUtils. Ist das richtig ?

Anmerkung von Barlop
war die Frage nach Coreutils und Unxutils, aber da er über Grep und Sed sprach, wollte er natürlich nach Gnuwin32 und Unxutils fragen, und das ist eine viel nützlichere und wichtigere Frage als die falsche. Wenn die Leute es zu coreutils und unxutils umwandeln möchten, dann würde ich gerne damit einverstanden sein und eine weitere Frage für gnuwin32 und unxutils posten. Jede richtige Antwort auf seine ursprüngliche Frage würde den Fehler korrigieren oder beantworten, aber auch beantworten, was er meinte. Es gibt also keinen Verlust bei der Korrektur seiner Frage.

17

3 Antworten auf die Frage

15
barlop

Unxutils hat wirklich alte Versionen einer Reihe von nützlichen Dienstprogrammen. einschließlich grep zum beispiel.

gnuwin32-Versionen sind ebenfalls viele Jahre veraltet, obwohl sie noch lange nicht alt sind. Gnuwin32 hat eine viel größere Anzahl von Dienstprogrammen. Das ist natürlich ein großer Vorteil.

Denken Sie daran, dass gnuwin32 diesen großen Vorteil gegenüber Unxutils bietet.

Als Beispiel..

Die extrem alten Ungereimtheiten

C:\unxutils>grep -V grep (GNU grep) 2.4.2  Copyright 1988... 

Der ziemlich alte gnuwin32

C:\blah>"c:\Program Files (x86)\GnuWin32\bin\grep.exe" -V GNU grep 2.5.4  Copyright (C) 2009 ... 

Im Gegensatz zu Software, die aktueller ist als gnuwin32, z. B. cygwin

$ grep --version grep (GNU grep) 2.21 Copyright (C) 2014 Free Software Foundation, Inc. 

Mit unxutils können Sie auf Probleme stoßen, da sie wirklich alte Versionen verwenden. Wenn Sie nach Hilfe suchen, erwarten die Leute, dass Sie die neueste Version dieses oder jenes Befehls haben.

Es gibt einige kleinere Vorteile, die Unxutils bietet, was Unxutils sehr nützlich macht.

  • Unxutils hat xxd, gnuwin32 nicht. (Hinweis, VIM 7 hat auch xxd, auch cygwin)
  • gnuwin32 wie schriftlich (2014) hat einen gebrochenen Schwanz -f, der Schwanz von unxutils -f ist älter, funktioniert aber. ( hier erwähnt Cygwins Schwanz funktioniert auch). Bei zwei verschiedenen Anlässen bin ich auf Fehler in gnuwin32 grep gestoßen, die in späteren Versionen von grep behoben wurden. Cypwins grep war viel später und in Ordnung (und kann direkt von cmd.exe ausgeführt werden und muss nicht von der Cygwin-Hülle).

  • Das Folgende ist ein kleinerer Vorteil, aber wenn Sie sehr faul sind oder es nur schnell nutzen wollen, dann ist Unxutils nur ein Zip, und Sie können die ausführbaren Dateien extrahieren und loslegen. Gnuwin32 beinhaltet einen Assistenten, der verschiedene Bits installiert, und sogar einige einzelne Dienstprogramme müssen separat installiert werden, z. B. eine für grep ausführbare Setup-Datei für wget (grep-xxxx-bin.exe). Mit Unxutils extrahieren Sie einfach aus dem Wbin-Verzeichnis innerhalb der ZIP-Datei. Denken Sie daran, dass es sich um ältere Versionen handelt. Wenn Sie also nicht zu faul sind, würden Sie im Allgemeinen sehen, ob gnuwin32 es hat.

  • Unxutils kann eigenständig arbeiten, wo viele der entsprechenden gnuwin32-Binärdateien nicht funktionieren. Wenn Sie gnuwin32 nicht installieren möchten oder können, können Sie einen eigenständigen Befehl von unxutils verwenden. Zum Beispiel erfordert die Datei tr.exe von gnuwin32 zwei dll-Dateien in ihrem Verzeichnis oder besagt, dass sie nicht vorhanden sind und nicht ausgeführt werden. gnuwin32s sed funktioniert nicht eigenständig, wohingegen unxutils tr.exe und sed.exe eigenständig funktionieren.
  • unxutils hat gclip.exe und pclip.exe. Sie sind Befehle zum Kopieren in die Zwischenablage und Einfügen aus der Zwischenablage. gnuwin32 scheint nichts dergleichen zu haben, und Windows hat nativ Clip.exe (zum Kopieren in die Zwischenablage), aber keinen Befehl zum Einfügen wie pclip.

Der unxutils sourceforge-Link hat unxutils.zip und unxupdates.zip (letzteres ist eine Untergruppe von unxutils.zip, jedoch mit späteren, aber noch älteren Versionen). zB unxutils hat sed von 1998 und unxupdates hat einen von 2003. Das kann helfen, zB die 1998er sed hat keine \ d- oder \ x-Notation egeg \ d34 oder \ x22, um Anführungszeichen anzugeben (einfacher als Anführungszeichen zu zitieren). Das unxupdates ist von 2003 und tut.

Der gnuwin32 sed stammt wie geschrieben aus dem Jahr 2009. (Gnuwin32 ist immer noch veraltet, da es sogar für 2014 eine grep-Version gibt, http://ftp.gnu.org/gnu/grep/), aber gnuwin32 ist viel weniger veraltet als unxutils (auch wenn unxutils mit 'unxupdates' betrachtet wird).

Die http://unxutils.sourceforge.net/ unxutils.zip Website ist unten aber ist verfügbar https://archive.org/details/UnxUtils und offiziell https://sourceforge.net/projects/unxutils/ und wenn Sie werde es bekommen und dann unxupdates herunterladen

Wenn Sie gnuwin32 mit unxutils vergleichen, schauen Sie im Allgemeinen nach Gnuwin32, wissen jedoch, dass unxutils einige Vorteile hat. Gnuwin32 hat fast alle Befehle, die unxutils hat, und vieles mehr.

Und außerdem, sehen Sie sich Cygwin an, es hat eine riesige Sammlung von Dienstprogrammen, die viel aktueller als gnuwin32 gehalten werden (sie sollten von cygwins bash-Shell ausgeführt werden, was für mich in Ordnung ist), die Sie im Allgemeinen nicht wirklich betrachten müssen etwas Uraltes und nicht wie Unxutils aktualisiert, obwohl es Pclip und Gclip hat.

Neben gnuwin32 und unxutils gibt es auch MinGW und cygwin und Windows SUA (was MS weiterhin schreibt und auf dem neuesten Stand halten würde) und GOW (was klein ist, obwohl die GOW-Github-Seite es als letztes aktualisiertes 2014 anzeigt) und noch kleiner, BusyBox (bekannt für Android, ist aber für Windows verfügbar und hier noch sehr klein. Die zwei beeindruckendsten Funktionen für mich sind gnuwin32 und cygwin (und cygwin hat xxd und ein funktionierendes Tail -f. Ich muss also nicht auf Unxutils zurückgreifen.) Mit cygwin sollten Programme wirklich von der cygwin-Shell aus ausgeführt werden, aber es ist ein Linux shell zB bash shell und bash und andere linuxshells sind mächtig, also kein Verlust. Bedenken Sie auch, dass heutzutage viele Leute virtuelle Maschinen von Linux anstelle von cygwin oder gnuwin32 verwenden, wodurch die richtigen Versionen der Befehle aktualisiert werden, anstatt Windows-Ports, die älter sein können und sich mit Anführungszeichen anders verhalten.

Note- hinzugefügtcoreutils aka gnu coreutils, ist eine Reihe von Befehlen, die unter Linux (..) ausgeführt werden, und zweifellos das GNU OS mit Herd (ein weniger verbreitetes Betriebssystem!), und hat wahrscheinlich einige anständige Implementierungen für andere * nix Betriebssysteme. GNU Coreutils ist bekannt und äußerst verbreitet und nützlich und aktualisiert. Auf der anderen Seite ist unxutils eine sehr alte Implementierung / Portierung einiger Befehle, die Leute unter Linux oder Unix verwenden (was sicherlich einige coreutils-Befehle enthalten würde), die für das Windows-Betriebssystem ausgeführt wurden. Die beiden würden normalerweise nicht einmal in demselben Satz erwähnt und der einzige Grund, warum sie in der Ausgangsfrage standen, lag in der Verwirrung der Ausgangsfrage. GnuWin32 verfügt über eine Implementierung von coreutils für Windows, die als Gnuwin32 coreutils bezeichnet wird. Wie bereits erwähnt, ist Gnuwin32 alt / nicht aktualisiert, nur nicht so alt / nicht aktualisiert wie Unxutils.

Neben gnuwin32 und unxutils gibt es auch MinGW und cygwin und Windows SUA und GOW. Die zwei beeindruckendsten für mich sind gnuwin32 und cygwin (und cygwin hat xxd und einen funktionierenden tail -f. Ich muss also nicht auf unxutils zurückgreifen.) Mit cygwin sollten Programme wirklich von der cygwin-Shell aus laufen, aber es ist eine Linux-Shell zB bash shell und bash und andere Linux-Shells sind mächtig, also kein Verlust. barlop vor 8 Jahren 3
Ein bisher noch überlebter Vorteil von unxutils ist der Befehl "pclip", um den Inhalt der Zwischenablage einzufügen. barlop vor 8 Jahren 0
wahrscheinlich auch gut, eine * nix-VM einrichten und gut integrieren zu können, damit sie sich gegenseitig lesen und schreiben können, dann können Sie die neuesten * nix-Befehle und barlop vor 7 Jahren 0
6
Journeyman Geek

Unxutils sind Windows-native und haben keine Abhängigkeiten. Sie wurden jedoch seit einiger Zeit nicht aktualisiert und sind eine Teilmenge von coreutils. Sie benötigen eine * nix-Umgebung für coreutils, daher müssen Sie sie in cygwin oder ähnlichem ausführen

Das Installationsprogramm für coreutils für Windows sollte alle Abhängigkeiten http://gnuwin32.sourceforge.net/packages/coreutils.htm berücksichtigen Nifle vor 13 Jahren 3
Unxutils sind technisch keine Untermenge von Coreutils. außerdem Versionen von Befehlen. unxutils hat xxd was coreutils und sogar gnuwin32 nicht haben. Gnuwin32 hat zwar ein defektes tail -f, aber tailx -f von unxutils funktioniert einwandfrei. gnuwin32 hat auch eigene coreutils: http://gnuwin32.sourceforge.net/packages/coreutils.htm barlop vor 10 Jahren 1
UnxUtils funktioniert gut in der einfachen alten Windows-Befehlszeile, Cygwin ist nicht erforderlich (was wahrscheinlich ohnehin mit eigenen Unix-Befehlszeilen-Dienstprogrammen aufwartet). PhiLho vor 8 Jahren 2
@Nifle gut, ja, aber die unxutils haben keine Abhängigkeiten und [ich würde hinzufügen, dass der Installer damit umgeht] die gnuwin32-EXE-Dateien müssen in demselben Verzeichnis laufen wie die wenigen DLLs, auf die sie angewiesen sind, also Das Installationsprogramm speichert eine Reihe von DLL-Dateien im Verzeichnis bin. barlop vor 8 Jahren 1
You write "You'd need a *nix style environment for coreutils, so you'd need to run them in cygwin or similar" <-- Not sure what you mean. Unxutils run in a windows environment, no *nix shell. And they have things not in coreutils such as wget and xxd so they're not a subset of coreutils. Also, even cygwin commands can technically be run straight from cmd, outside of cygwin. barlop vor 8 Jahren 1
@PhiLho unxutils does work in "plain old windows command line" as you call it. But I wouldn't say it works "fine....no need for cygwin" since it has many old versions See my answer comparing them. barlop vor 8 Jahren 0
Coreutils, soweit ich mich erinnere, sind eine * spezifische * Implementierung grundlegender Unix-Utils, die Teil des GNU-Benutzerlandes sind. Unxutils sind Builds spezifischer Anwendungen, die innerhalb dieses Bereichs passieren. Natürlich war es 5 Jahre her, seit ich das gepostet habe, und ich musste zurückgehen, was ich damals dachte. Journeyman Geek vor 8 Jahren 0
@JourneymanGeek ah ok. There is a windows implementation of gnu coreutils, That being, gnuwin32 coreutils. That doesn't require a *nix shell. http://gnuwin32.sourceforge.net/packages/coreutils.htm barlop vor 8 Jahren 0
1
GnuWIn32

Coreutils von GnuWin32 hat 'cut'; Siehe http://gnuwin32.sourceforge.net/packages/coreutils.htm