Ich arbeite an Windows-Maschine und ich benutze Bash-Shell, die mit Git kommt. Aber es gibt viele Dienstprogramme, die in dieser Version der Bash-Shell fehlen.
Wie kann ich weitere Befehle auf dieser Shell installieren?
many utilities are missing in this version of bash shell. Bitte geben Sie an, welche Befehle fehlen, die Sie verwenden möchten.
030
3
Unter serverfault.com/a/872557/212162 finden Sie eine viel aktuellere und einfachere Methode zur Verwendung von Dienstprogrammen, die nicht standardmäßig enthalten sind.
nextgentech
Antworten:
16
Es gibt zwei Versionen von Git, die Sie wahrscheinlich verwenden werden - die msysgit- Distribution oder Cygwin .
Zusätzliche Hilfsprogramme für Cygwin installieren
Obwohl Sie Git möglicherweise nur als Teil Ihrer Cygwin-Installation installiert haben (wenn Sie Cygwin verwendet haben), verfügt Cygwin über ein Programm namens setup.exe, mit dem Sie Pakete hinzufügen können. Im Wesentlichen müssen Sie nur ausführen setup.exeund auswählen, welche Programme installiert werden sollen, wenn Sie zum Fenster Select Packages (Pakete auswählen) gelangen . Die Einführung hier bietet einen guten Überblick mit Bildern, die den Prozess detailliert darstellen.
Cygwins Installationsprogramm ist klug genug, um festzustellen, dass Sie bereits eine Installation haben, und es fügt Ihrer Installation Pakete hinzu (anstatt sie zu vernichten und von vorne zu beginnen).
MSYS
Die andere Version von Git, die Sie wahrscheinlich verwenden (wenn nicht Cygwin), ist msysgit. Da msysgit eine minimale Unix-Umgebung installiert, die nicht wirklich mit MinGW kompatibel ist, müssen Sie die MinGW-Suite neben msysgit installieren. Die MinGW Erste Schritte Seite gibt einen detaillierten Überblick darüber , wie etwa gehen immer MinGW installiert - da ich keine Erfahrung mit MinGW persönlich haben, alles , was ich wirklich tun können Sie ihre Hinweise.
Anschließend müssen Sie Ihre msysgit-Installation in MinGW migrieren. Dies kann folgendermaßen erreicht werden (siehe hier ). Nachdem die folgende Sequenz durchgeführt wurde, sollte MinGW Ihre Git-Installation finden.
cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
Wenn Sie sich fragen, versuchen Sie nicht, das Cygwin-Installationsprogramm für das msysgit-Paket zu verwenden. Es funktioniert teilweise ... aber beim Auflösen von Abhängigkeiten wird sh.exe ersetzt (was Ihre Umgebung erheblich verändert).
Chris Betti
5
Woher weiß ich, ob mein Git-Bash Cygwin oder msys verwendet?
lmo
7
Ich habe von git-scm.com/download/win installiert. Ist das msysgit oder cygwin? EDIT Fand es heraus. Anstatt diesen Kommentar zu löschen, sage ich, dass es msysgit ist.
Eingeschränktes Sühnopfer
3
@LimitedAtonement - Bitte geben Sie auch an, wie Sie es herausgefunden haben, für andere Leser (wie mich), die sich dieselbe Frage gestellt haben.
Ioanna
4
Sie können feststellen, was Sie installiert haben, indem Sie uname -oim Bash-Terminal ausführen.
Cliff Armstrong
5
Mit den neuesten Git für Windows- Installationen ist das Installieren zusätzlicher Shell-Skripte und -Programme ziemlich einfach.
Ich empfehle, git mit chocolatey zu installieren choco install git, da Sie git (und alle anderen mit chocolatey installierten Tools) durch Ausführen von aktualisieren können choco upgrade all.
Fügen Sie einfach die ausführbaren Dateien in C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin) ein.
Wenn Sie msysgit verwenden, können Sie einfach MinGW installieren und dann den MINGW-Pfad zur .bashrc-Datei hinzufügen, die Sie für Ihre Git-Installation verwenden:
PATH=$PATH:/MINGW/msys/1.0/bin
... wo MINGW ist, wo Sie MinGW installiert haben
Auf diese Weise können Sie die MinGW-Tools direkt aus Ihrer Git-Bash-Installation verwenden. Wenn Sie ein anderes Bash-Tool benötigen, können Sie es einfach in MinGW installieren.
Laden Sie die neueste wget-Binärdatei für Windows von eternallybored herunter (sie sind als zip mit Dokumentation oder nur als exe verfügbar).
Wenn Sie die ZIP-Datei heruntergeladen haben, extrahieren Sie alle Dateien (wenn das in zip integrierte Windows-Dienstprogramm einen Fehler anzeigt, verwenden Sie 7-zip ).
Benennen Sie die Datei wget64.exezu , wget.exewenn nötig.
Bewegen Sie sich wget.exezu Ihrem Git\mingw64\bin\.
Hinweis: Ich habe einige Fehler bei der Verwendung von Wget auf Git Bash zum Erstellen von WARC-Dateien festgestellt. Für eine komplexere Verwendung von Wget sollten Sie stattdessen Cygwin in Betracht ziehen .
Hugo
Der statische Site-Generator von Hugo kann als Binärdatei heruntergeladen werden und verfügt nicht über ein Installationsprogramm. Durch Ablegen in Ihrem wird bines Ihrem Git Bash-Pfad hinzugefügt. Laden Sie die 64-Bit-Version von Windows von der Seite mit den Veröffentlichungen herunter . Entpacken Sie den Download und kopieren Sie ihn hugo.exein Ihr Git\mingw64\binVerzeichnis.
Xpdf
Xpdf ist ein praktisches Dienstprogramm zum Bearbeiten von PDF-Dateien.
Download make-4.1-2-without-guile-w32-bin.zip(Version ohne Täuschung herunterladen).
Reißverschluss herausziehen.
Kopieren Sie den Inhalt in Ihre Git\mingw64\Zusammenführung der Ordner, überschreiben / ersetzen Sie jedoch KEINE vorhandenen Dateien.
Nano
Ab 2018 enthalten neuere Versionen von Git Bash Nano, daher ist dies nicht erforderlich!
Laden Sie die Nano-Binärdatei von der Nano- Win32-Support- Seite herunter . Sie brauchen nur die .exeDatei, die (zum nano-git-0d9a7347243.exeZeitpunkt des Schreibens) benannt ist.
Benennen Sie die Datei in um nano.exeund kopieren Sie sie in das mingw64\binVerzeichnis.
Diese Version von Nano wird nicht allein mit Git Bash arbeiten, aber kann mit aufgerufen werden winpty, zum Beispiel winpty nano test.txt.
@mike deine antwort ist ähnlich, nur dass ich cygwin64
geneorama
1
Ich habe Folgendes versucht und Emacs auf Git-Bash installiert. 1. Installieren Sie msys2 irgendwo (muss nicht derselbe Computer sein). 2. Führen Sie unter msys2 Folgendes aus:
cd /tmp
mkdir -p var/lib
cp -R /var/lib/pacman var/lib/
pacman -Sr /tmp emacs
tar zcf emacs.tar.gz usr
Kopieren Sie emacs.tar.gzin das Verzeichnis, auf das Sie von git-bash aus zugreifen können, und klicken Sie dann unter git-bash auf:
tar zxf emacs.tar.gz -C / emacs
Das ist alles, viel Glück.
Nach dem ersten Beitrag habe ich versucht, einen anderen Computer, aber nicht funktioniert. Es stellt sich heraus, dass einige DLLs in Git-Bash fehlen. Dann habe ich in einer sauberen virtuellen Maschine mit den folgenden Schritten getestet:
Aktualisieren Sie msys2, öffnen Sie die msys64-Konsole und führen Sie Folgendes aus:
pacman -Syyu
Schließen Sie die msys64-Konsole, wenn Sie dazu aufgefordert werden, und führen Sie den obigen Befehl erneut aus.
Holen Sie sich die Emacs-Dateien wie in den vorherigen Schritten beschrieben (führen Sie in msys64 Folgendes aus):
cd /tmp
mkdir -p var/lib
cp -R /var/lib/pacman var/lib/
pacman -Sr /tmp emacs
tar zcf emacs.tar.gz usr
mv emacs.tar.gz /c/tmp
ps: Ich habe die obigen Schritte einmal in / d / tmp anstelle von / tmp versucht und konnte keine Emacs darauf installieren.
Öffne git-bash und extrahiere die Emacs-Dateien:
cd /c/tmp
tar zxf emacs.tar.gz -C /
Es wird das Fehlen einer gemeinsam genutzten Bibliothek "?" auf dem Versuch, Emacs jetzt laufen zu lassen. Das "?" wird nicht zu einem lesbaren enthüllt
Gehen Sie zurück zu msys64 und holen Sie sich die msys2-DLLs:
ls --color=never /bin/*.dll > /c/tmp/1.txt
In git-bash vergleiche DLLs mit msys:
cd /c/tmp
git init
git add 1.txt && git commit
ls --color=never /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
Alles erledigt, jetzt läuft Emacs in Git-Bash. Einige der 26 DLLs sind möglicherweise nicht erforderlich, aber ich würde es vorziehen, meine Zeit anstelle von Speicherplatz zu sparen.
Bei Verwendung von Git Bash für Windows (MinGW64) fiel es mir sehr schwer, Rsync hinzuzufügen. Fehler weiterhin angezeigt: dup () in / out / err ist fehlgeschlagen
Stattdessen funktionierte die Verwendung von Cygwin schließlich.
Schritte, die ich unternommen habe, um rysnc in Gitbash für Windows zu verwenden
Installieren Sie gitbash für Windows
Installieren Sie cygwin64
Fügen Sie der Windows-Pfadvariablen den Cygwin-Pfad hinzu
Sie können die rsync-Datei direkt von mysys herunterladen . Suchen Sie einfach auf der Seite nach rsync und wählen Sie die Seite mit dem neuesten Datum / der neuesten Versionsnummer aus.
Entpacke diese Datei ( rsync-3.1.3-1-x86_64.pkg.tar.xz) über
tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
Kopieren Sie dann rsync unter ./usr/bin/rsync.exe
und fügen Sie es in den Ordner / usr / bin Ihrer Git-Installation ein.
Auf meiner Maschine alsoC:/Program Files/Git/usr/bin/
Sie können den Speicherort Ihrer Git-Installation über sehen
Hinweis: Ich konnte die rsync-3.1.3-1-x86_64.pkg.tar.xzDatei nicht direkt in den Git-Ordner entpacken , da die Berechtigungen dies nicht zuließen. Und Git Bash hat kein Sudo.
Ich konnte es aber problemlos direkt in meinen Downloads-Ordner entpacken.
Das ist auch gut so, denn Sie brauchen rsync.exesowieso nur die Datei.
many utilities are missing in this version of bash shell
. Bitte geben Sie an, welche Befehle fehlen, die Sie verwenden möchten.Antworten:
Es gibt zwei Versionen von Git, die Sie wahrscheinlich verwenden werden - die msysgit- Distribution oder Cygwin .
Zusätzliche Hilfsprogramme für Cygwin installieren
Obwohl Sie Git möglicherweise nur als Teil Ihrer Cygwin-Installation installiert haben (wenn Sie Cygwin verwendet haben), verfügt Cygwin über ein Programm namens setup.exe, mit dem Sie Pakete hinzufügen können. Im Wesentlichen müssen Sie nur ausführen
setup.exe
und auswählen, welche Programme installiert werden sollen, wenn Sie zum Fenster Select Packages (Pakete auswählen) gelangen . Die Einführung hier bietet einen guten Überblick mit Bildern, die den Prozess detailliert darstellen.Cygwins Installationsprogramm ist klug genug, um festzustellen, dass Sie bereits eine Installation haben, und es fügt Ihrer Installation Pakete hinzu (anstatt sie zu vernichten und von vorne zu beginnen).
MSYS
Die andere Version von Git, die Sie wahrscheinlich verwenden (wenn nicht Cygwin), ist msysgit. Da msysgit eine minimale Unix-Umgebung installiert, die nicht wirklich mit MinGW kompatibel ist, müssen Sie die MinGW-Suite neben msysgit installieren. Die MinGW Erste Schritte Seite gibt einen detaillierten Überblick darüber , wie etwa gehen immer MinGW installiert - da ich keine Erfahrung mit MinGW persönlich haben, alles , was ich wirklich tun können Sie ihre Hinweise.
Anschließend müssen Sie Ihre msysgit-Installation in MinGW migrieren. Dies kann folgendermaßen erreicht werden (siehe hier ). Nachdem die folgende Sequenz durchgeführt wurde, sollte MinGW Ihre Git-Installation finden.
quelle
uname -o
im Bash-Terminal ausführen.Mit den neuesten Git für Windows- Installationen ist das Installieren zusätzlicher Shell-Skripte und -Programme ziemlich einfach.
Ich empfehle, git mit chocolatey zu installieren
choco install git
, da Sie git (und alle anderen mit chocolatey installierten Tools) durch Ausführen von aktualisieren könnenchoco upgrade all
.Fügen Sie einfach die ausführbaren Dateien in
C:\Program Files\Git\usr\bin
(%ProgramFiles%\Git\usr\bin
) ein.Beispiel für git-fresh
Kopieren Sie die Datei git-fresh nach
C:\Program Files\Git\usr\bin
.Beispiel für ADR-Tools
src/
inC:\Program Files\Git\usr\bin
quelle
Wenn Sie msysgit verwenden, können Sie einfach MinGW installieren und dann den MINGW-Pfad zur .bashrc-Datei hinzufügen, die Sie für Ihre Git-Installation verwenden:
... wo MINGW ist, wo Sie MinGW installiert haben
Auf diese Weise können Sie die MinGW-Tools direkt aus Ihrer Git-Bash-Installation verwenden. Wenn Sie ein anderes Bash-Tool benötigen, können Sie es einfach in MinGW installieren.
quelle
Sie können weitere Unix-Einheiten
Wget, Hugo, Xpdf, make, Nano
hier herunterladen : https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058Wget
wget64.exe
zu ,wget.exe
wenn nötig.wget.exe
zu IhremGit\mingw64\bin\
.Hinweis: Ich habe einige Fehler bei der Verwendung von Wget auf Git Bash zum Erstellen von WARC-Dateien festgestellt. Für eine komplexere Verwendung von Wget sollten Sie stattdessen Cygwin in Betracht ziehen .
Hugo
Der statische Site-Generator von Hugo kann als Binärdatei heruntergeladen werden und verfügt nicht über ein Installationsprogramm. Durch Ablegen in Ihrem wird
bin
es Ihrem Git Bash-Pfad hinzugefügt. Laden Sie die 64-Bit-Version von Windows von der Seite mit den Veröffentlichungen herunter . Entpacken Sie den Download und kopieren Sie ihnhugo.exe
in IhrGit\mingw64\bin
Verzeichnis.Xpdf
Xpdf ist ein praktisches Dienstprogramm zum Bearbeiten von PDF-Dateien.
xpdf-tools-win-4.00\bin64\
in IhrenGit\mingw64\bin\
.pdftotext
und zu beginnenpdftopng
.machen
make-4.1-2-without-guile-w32-bin.zip
(Version ohne Täuschung herunterladen).Git\mingw64\
Zusammenführung der Ordner, überschreiben / ersetzen Sie jedoch KEINE vorhandenen Dateien.Nano
.exe
Datei, die (zumnano-git-0d9a7347243.exe
Zeitpunkt des Schreibens) benannt ist.nano.exe
und kopieren Sie sie in dasmingw64\bin
Verzeichnis.winpty
, zum Beispielwinpty nano test.txt
.quelle
Ich habe heute eine ziemlich einfache Antwort gefunden, die funktioniert hat
rsync
.rsync
von futureware.at *C:\rsync-3.1.2-2-x86_64.pkg
* Ich weiß nicht, wer hinter futureware.at steckt, ich würde es vorziehen, auf eine primärere Quelle zu verlinken.
quelle
Nach dem ersten Beitrag habe ich versucht, einen anderen Computer, aber nicht funktioniert. Es stellt sich heraus, dass einige DLLs in Git-Bash fehlen. Dann habe ich in einer sauberen virtuellen Maschine mit den folgenden Schritten getestet:
Installieren Sie msys2-x86_64-20180531 und Git-2.19.1-64-bit .
Aktualisieren Sie msys2, öffnen Sie die msys64-Konsole und führen Sie Folgendes aus:
Schließen Sie die msys64-Konsole, wenn Sie dazu aufgefordert werden, und führen Sie den obigen Befehl erneut aus.
Holen Sie sich die Emacs-Dateien wie in den vorherigen Schritten beschrieben (führen Sie in msys64 Folgendes aus):
ps: Ich habe die obigen Schritte einmal in / d / tmp anstelle von / tmp versucht und konnte keine Emacs darauf installieren.
Öffne git-bash und extrahiere die Emacs-Dateien:
Es wird das Fehlen einer gemeinsam genutzten Bibliothek "?" auf dem Versuch, Emacs jetzt laufen zu lassen. Das "?" wird nicht zu einem lesbaren enthüllt
Gehen Sie zurück zu msys64 und holen Sie sich die msys2-DLLs:
In git-bash vergleiche DLLs mit msys:
In meinem Fall gibt es 26 DLLs in diff_dlls.txt.
Kopieren Sie die DLLs von msys64 nach git-bash:
In msys64:
In git-bash:
Alles erledigt, jetzt läuft Emacs in Git-Bash. Einige der 26 DLLs sind möglicherweise nicht erforderlich, aber ich würde es vorziehen, meine Zeit anstelle von Speicherplatz zu sparen.
quelle
Bei Verwendung von Git Bash für Windows (MinGW64) fiel es mir sehr schwer, Rsync hinzuzufügen. Fehler weiterhin angezeigt: dup () in / out / err ist fehlgeschlagen
Stattdessen funktionierte die Verwendung von Cygwin schließlich.
Schritte, die ich unternommen habe, um rysnc in Gitbash für Windows zu verwenden
quelle
Man könnte die Anzahl der Features in git-bash erweitern, indem man Skripte erstellt und sie durch Definieren in der
~/.bash_profile
Datei aufruft.Beispiel
Wenn man den
watch
Befehl verwenden möchte , dann könnte dieses Skript dem folgenden hinzugefügt werden~/.bash_profile
:https://gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda
und wickle es in eine Funktion:
Sobald man die Datei speichert und ausführt,
source ~/.bash_profile
sollte man in der Lage sein, die Ausgabe von Befehlen zu beobachten.quelle
https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/52105321#52105321
quelle
hinzufügen
rsync
Sie können die rsync-Datei direkt von mysys herunterladen . Suchen Sie einfach auf der Seite nach rsync und wählen Sie die Seite mit dem neuesten Datum / der neuesten Versionsnummer aus.
Entpacke diese Datei (
rsync-3.1.3-1-x86_64.pkg.tar.xz
) überKopieren Sie dann rsync unter
./usr/bin/rsync.exe
und fügen Sie es in den Ordner / usr / bin Ihrer Git-Installation ein.Auf meiner Maschine also
C:/Program Files/Git/usr/bin/
Sie können den Speicherort Ihrer Git-Installation über sehen
Hier ist ein Hauptrepo von hisplan, das Anweisungen sowie einen Link zur Version 3.1.3-1 auf rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 enthält .
Hinweis: Ich konnte die
rsync-3.1.3-1-x86_64.pkg.tar.xz
Datei nicht direkt in den Git-Ordner entpacken , da die Berechtigungen dies nicht zuließen. Und Git Bash hat kein Sudo.Ich konnte es aber problemlos direkt in meinen Downloads-Ordner entpacken.
Das ist auch gut so, denn Sie brauchen
rsync.exe
sowieso nur die Datei.quelle