Wie man cURL für die Datenübertragung über die Kommandozeile und mehr verwendet

Wenn Sie schon eine Weile terminalbasierte Installationsanleitungen für Linux-Anwendungen folgen, sind Sie wahrscheinlich irgendwann schon einmal auf den Befehl curl gestoßen. cURL ist ein Kommandozeilenwerkzeug zum Übertragen von Daten mit URLs. Eine der einfachsten Anwendungen besteht darin, eine Datei über die Kommandozeile herunterzuladen. Dies ist jedoch irreführend, denn cURL ist ein unglaublich leistungsstarkes Werkzeug, das noch viel mehr kann.
Inhaltsverzeichnis
- Was ist cURL?
- Installation
- Verwendung von cURL
- Weiterleitungen folgen
- Einen Download fortsetzen
- Mehr als eine Datei herunterladen
- Herunterladen mit Authentifizierung
- Dateien aufteilen und zusammenführen
- Weitere nützliche Funktionen
- cURL vs. Wget
- Häufig gestellte Fragen
- Fazit
Auch lesen: So kopieren und einfügen Sie Text, Dateien und Ordner im Linux-Terminal
Was ist cURL?
Ursprünglich 1996 von Daniel Sternberg geschrieben, um finanzielle Daten von Webservern abzurufen und in IRC-Kanäle zu übertragen, hat sich cURL zu einem leistungsstarken Werkzeug entwickelt, um Daten abzurufen, ohne einen Browser verwenden zu müssen. Wenn Sie immer das Terminal verwenden, wird dies eines der wichtigeren Werkzeuge in Ihrem Arsenal sein.
In den meisten Linux-Distributionen ist cURL im System vorinstalliert, und Sie können es sofort verwenden. Selbst wenn es nicht installiert ist, finden Sie es in den meisten Repositories, sodass Sie es einfach über das Softwarezentrum installieren können.
Für Windows gibt es keinen „curl-ähnlichen“ Befehl, und macOS hat cURL vorinstalliert, bietet jedoch nicht ganz so viele Flags wie die Linux-Version.
Auch lesen: So verwenden Sie den dd-Befehl in Linux
Installation
Bevor wir weiter machen, müssen wir sicherstellen, dass cURL bereits auf unserem System installiert ist.
Linux
In Debian/Ubuntu-basierten Distributionen verwenden Sie den folgenden Befehl, um cURL zu installieren:
sudo apt install curlIn Arch-basierten Distributionen:
sudo pacman -S curlIn Fedora/CentOS/RHEL:
sudo dnf install curlmacOS
Für macOS ist es bereits vorinstalliert, sodass Sie nichts unternehmen müssen.
Auch lesen: So starten Sie das Terminal im aktuellen Ordner auf dem Mac
Windows
- Für Windows 7/10/11 gehen Sie zur cURL-Download-Seite und wählen Sie entweder die 64-Bit- oder 32-Bit-Pakete, je nach verwendeter Architektur. Wenn Sie Ihre Architektur nicht kennen, ist 64-Bit eine sichere Wahl, da die überwiegende Mehrheit der nach 2006 hergestellten Hardware diese verwendet.
- Erstellen Sie einen Ordner entweder direkt auf dem Systemlaufwerk oder in „C:\Program Files\“ und nennen Sie ihn „cURL.“

- Gehen Sie zurück zur Zip-Datei, die Sie heruntergeladen haben, öffnen Sie sie und suchen Sie die Datei „curl.exe“ im Ordner „bin“. Kopieren Sie diese Datei in den cURL-Ordner, den Sie erstellt haben. Die EXE, die Sie kopiert haben, ist vollständig eigenständig und in der Lage, jede Permutation auszuführen, die Sie unter Linux ausführen können.
- Um diesen Befehl tatsächlich nützlich zu machen, müssen wir ihn zur PATH-Variablen in Windows hinzufügen, damit er von der Eingabeaufforderung überall ausgeführt werden kann.
- Klicken Sie auf Ihr Startmenü, geben Sie
Umgebungsvariablenein und drücken Sie die Eingabetaste. - Klicken Sie auf „Umgebungsvariablen … “ Sie sollten jetzt in den Einstellungen Ihrer Umgebungsvariablen sein.

Wählen Sie die Umgebungsvariable „Path“ aus und klicken Sie dann auf „Bearbeiten … “
Wenn Sie sich im Bearbeitungsdialog für den Pfad befinden, klicken Sie auf „Neu“ und geben Sie das Verzeichnis ein, in dem sich Ihre „curl.exe“ befindet – zum Beispiel „C:\Program Files\cURL“.
Klicken Sie auf „OK“ in den Dialogfenstern, die Sie während dieses Prozesses geöffnet haben, und genießen Sie cURL in Ihrem Terminal!
Jedes Flag in cURL, das unter Linux verwendbar ist, sollte auch in der Windows-Version funktionieren.
Worte an die Weisen: Denken Sie daran, dass die Eingabeaufforderung niemals mit Windows Terminal verwechselt werden sollte. Windows Terminal verfügt über eine eigene Version von cURL, die in PowerShell enthalten ist und ähnliche Funktionen bietet, jedoch ganz anders funktioniert.
Auch lesen: So verwenden Sie den Rm-Befehl in Linux
Verwendung von cURL
Um zu beginnen, geben Sie einfach curl maketecheasier.com in Ihr Terminal ein und drücken Sie die Eingabetaste.
Wenn Sie keine Ausgabe erhalten, liegt das daran, dass der Server dieser Seite nicht konfiguriert ist, um auf zufällige Verbindungsanfragen an seine non-www-Domain zu antworten. Wenn Sie einen Server abfragen, der nicht existiert oder offline ist, erhalten Sie eine Fehlermeldung, die besagt, dass cURL den Host nicht auflösen konnte.
Um cURL wirklich nützlich zu machen, müssen wir ein Protokoll angeben. In unserem Beispiel verwenden wir das HTTPS-Protokoll, um die Startseite dieser Website abzufragen. Geben Sie curl https://www.maketecheasier.com ein.

Wenn alles gut geht, sollten Sie auf eine riesige Datenwand blicken. Um diese Daten etwas nutzbarer zu machen, können wir cURL anweisen, sie in eine HTML-Datei zu speichern:
curl https://www.maketecheasier.com > ~/Downloads/mte.htmlDieser Befehl speichert den Inhalt der Ausgabe unserer Website in einer HTML-Datei in Ihrem Downloads-Ordner. Navigieren Sie mit Ihrem bevorzugten Datei-Manager zu diesem Ordner und doppelklicken Sie auf die Datei, die Sie gerade erstellt haben. Sie sollte einen Snapshot der HTML-Ausgabe der Startseite dieser Website öffnen.
Ebenso können Sie das -o-Flag verwenden, um dasselbe Ergebnis zu erzielen:
curl -o ~/Downloads/mte.html https://www.maketecheasier.comWeiterleitungen folgen
Die meisten Websites leiten den Verkehr automatisch vom „http“-Protokoll auf „https“ um. In cURL können Sie dasselbe mit dem -L-Flag erreichen. Dies folgt automatisch 301-Weiterleitungen, bis es eine lesbare Seite oder Datei erreicht.
curl -L http://google.com.
Einen Download fortsetzen
Beim Download großer Dateien können Unterbrechungen je nach Internetgeschwindigkeit äußerst ärgerlich sein. Glücklicherweise hat cURL eine Resume-Funktion. Das Übergeben des -C-Flags wird dieses Problem schnell lösen.
Um ein praktisches Beispiel zu zeigen, habe ich absichtlich einen Download des Debian-Testversions-ISOs unterbrochen, indem ich während des Downloads die Tasten Strg und C gedrückt habe.

Für unseren nächsten Befehl hängen wir das -C-Flag an. Zum Beispiel:
curl -C - -o ~/Downloads/debiantesting.iso -L https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-dvd/debian-testing-amd64-DVD-1.iso
Der Download hat erfolgreich dort begonnen, wo er aufgehört hat.
Mehr als eine Datei herunterladen
Da cURL nicht die intuitivste Methode zum Herunterladen mehrerer Dateien bietet, gibt es zwei Methoden, jede mit ihrem eigenen Kompromiss.
Wenn die Dateien, die Sie herunterladen, nummeriert sind (z.B. Datei1, Datei2 usw.), können Sie Klammern verwenden, um das gesamte Spektrum von Dateien und „#“ innerhalb der Ausgabe zu spezifizieren, die Sie mit dem -o-Flag angeben. Um das etwas weniger verwirrend zu gestalten, hier ein Beispiel:
curl "http://example.com/datei[1-5].zip"-o"#1_#2"Eine einfachere Möglichkeit, dies zu tun, ist mit -O ( --remote-name). Dieses Flag bewirkt, dass cURL die Remote-Datei unter demselben Namen lokal herunterlädt. Da Sie keine Ausgabe angeben müssen, sollten Sie diesen Befehl verwenden, wenn das Terminal in dem Verzeichnis geöffnet ist, in das Sie Dateien herunterladen möchten.
curl -O"https://example.com/datei1.zip"-O"https://example.com/datei2.zip"Wenn Sie eine große Anzahl von nummerierten Dateien herunterladen möchten, ist --remote-name-all ein besseres Flag dafür:
curl --remote-name-all"https://example.com/datei[1-5].zip"Sie könnten sogar nicht nummerierte Dateien von derselben Website angeben, ohne die URL erneut eingeben zu müssen, indem Sie Klammern verwenden:
curl --remote-name-all"https://example.com/{datei1.zip,anderedatei.zip,dasistspaß.zip}"Herunterladen mit Authentifizierung
Laden Sie Dateien herunter, die eine Authentifizierung erfordern (z. B. beim Abrufen von einer privaten FTP-Server), mit dem -u-Flag. Jeder Authentifizierungsantrag muss zuerst den Benutzernamen und dann das Passwort enthalten, wobei ein Doppelpunkt die beiden trennt. Hier ist ein Beispiel, um es einfach zu machen:
curl -u benutzername:passwort -o ~/Downloads/datei.zip ftp://example.com/datei.zipDies wird unseren Freund bonobo_bob in den FTP-Server authentifizieren und die Datei in den Downloads-Ordner herunterladen.
Dateien aufteilen und zusammenführen
Wenn Sie aus irgendeinem Grund eine große Datei herunterladen und in Teile aufteilen möchten, können Sie dies mit dem --range-Flag von cURL tun. Mit --range müssen Sie die Bytes angeben, an denen Sie anfangen möchten, bis zu den Bytes, an denen Sie aufhören möchten. Wenn Sie kein Ende für den Bereich angeben, wird einfach der Rest der Datei heruntergeladen.
Im folgenden Befehl wird cURL die ersten 100 MB des Installationsimages von Arch Linux herunterladen:
curl --range0-99999999-o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.isoFür die nächsten 100 MB verwenden Sie --range 100000000-199999999, usw. Sie können diese Befehle verketten, indem Sie den &&-Operator verwenden:
curl --range0-99999999-o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range100000000-199999999-o arch.part2 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range200000000-299999999-o arch.part3 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range300000000-399999999-o arch.part4 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range400000000-499999999-o arch.part5 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range500000000-599999999-o arch.part6 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range600000000-699999999-o arch.part7 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range700000000- -o arch.part8 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.isoWenn Sie die oben angegebene Befehlsstruktur genau befolgt haben, sollten acht Dateien dort erscheinen, wo Sie cURL aufgefordert haben, sie herunterzuladen.
Um diese Dateien wieder zu vereinen, müssen Sie den cat-Befehl verwenden, wenn Sie unter Linux oder macOS sind, so:
cat arch.part? > arch.isoFür Windows müssen Sie den copy-Befehl wie folgt verwenden:
copy/b arch.part* arch.isoWeitere nützliche Funktionen
Es gibt viele Flags und Verwendungen für cURL:
-#– Verwendet eine Fortschrittsanzeige, um anzuzeigen, wie weit Sie bei dem sind, was Sie abrufen. Beispiel:curl -# https://asite.com/somefile.zip > ~/somefile.zip.-a– Fordert cURL auf, an eine Datei anzuhängen, anstatt sie zu überschreiben. Beispiel:curl -ao ~/collab-full.x https://example-url.com/collab-part26.x.--head– Holt nur den Antwort-Header vom Server ohne die Ausgabedaten. Dies ist nützlich, wenn Sie entweder eine Website debuggen oder einen Blick auf die vom Server programmierten Antworten auf Anfragen werfen. Beispiel:curl --head https://example-url.com.--limit-rate– Bestellt einen Download mit begrenzter Bandbreite. Es ist nützlich in Situationen, in denen Sie nicht möchten, dass cURL die gesamte verfügbare Bandbreite in Ihrem System beansprucht. Eine einfache Zahl wird als Byte pro Sekunde interpretiert. K steht für Kilobyte pro Sekunde; M steht für Megabyte pro Sekunde. Beispiel:curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip.-o– Wie bereits erwähnt, bestimmt eine Ausgabedatei, die cURL verwenden soll. Beispiel:curl -o ~/Downloads/datei.zip https://thefileplace.com/datei.zip -o datei2.zip https://thefileplace.com/datei2.zip.--proxy– Wenn Sie mit einem Proxy arbeiten möchten, ist dies der Weg, es zu tun. Beispiel:curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip.
cURL vs. Wget
Beide wurden im selben Jahr (1996) veröffentlicht, cURL und Wget sind für den Casual Observer praktisch Schwestersoftware. Tauchen Sie ein wenig tiefer ein, können Sie sehen, dass diese beiden Schwestern unterschiedliche Zwecke haben.
Wget
- Es wurde vollständig von Grund auf entwickelt, um Daten aus dem Internet zu erfassen.
- Es benötigt nicht die Flags
-Loder-owie cURL; einfachwget [url]eingeben und loslegen! - Kann rekursiv herunterladen, um alles in einem Verzeichnis mit dem
-r-Flag zu erfassen. - Hat alle Funktionen, die ein Benutzer für die tägliche Nutzung benötigt, und eignet sich für alltägliche Sysadmin-Aufgaben.
- (In Linux) benötigt es nicht viele Abhängigkeiten; alle sollten sofort verfügbar sein.
Auch lesen: So installieren und verwenden Sie wget auf dem Mac
cURL
- Erweitertes Repertoire an Flags und nützlichen Funktionen für den Remote-Abruf.
- Unterstützt lokale Netzwerke (LDAP) und Netzwerkdrucker (Samba).
- Funktioniert gut mit Gzip-Kompressionsbibliotheken.
- Hängt von libcurl ab, was Entwicklern ermöglicht, Software oder Bash-Skripte zu schreiben, die cURLs Funktionalität enthalten.
Kurz gesagt, Wget ist der „Werkzeugkasten für jedermann“, um Dinge aus dem Internet abzurufen, während cURL dies mit stärker granuliertem Zugriff für Power-User und Systemadministratoren erweitert.
Häufig gestellte Fragen
1. Ich habe einen Zertifikatfehler in Linux erhalten. Wie kann ich ihn beheben?
Wenn Sie einen Fehler erhalten haben, der etwa besagt, dass „der Aussteller des Zertifikats des Peers als nicht vertrauenswürdig markiert wurde“, ist der einfachste Weg, dies zu beheben, das Wiederherstellen des Pakets der gängigen Zertifikate in Ihrer Distribution.
Für Debian/Ubuntu-basierte Systeme:
sudo apt reinstall ca-certificatesFür Fedora/CentOS/RHEL:
dnf reinstall ca-certificatesFür Arch-basierte Systeme:
pacman -S ca-certificatesBeachten Sie, dass Sie in Arch möglicherweise den Paketcache mit pacman -Scc leeren möchten, bevor Sie das Paket der Zertifikate neu installieren.
Wenn Sie immer noch diesen Fehler erhalten, könnte etwas auf der Serverseite nicht stimmen.
2. Ist es sicher, cURL und Bash-Befehle zusammen auszuführen?
Obwohl es nicht der gebräuchlichste Weg ist, Linux-Anwendungen zu installieren, gibt es einige Entwickler (wie die Leute hinter NodeJS), die Ihnen keine Wahl lassen, als curl zusammen mit einem Root-Befehlszugriff-Befehl zu verwenden, der durch Bash ausgeführt wird (z. B. curl [argument] | sudo -E bash -) um die Software zu installieren.
Es mag ein wenig beängstigend erscheinen, aber wenn die Leute hinter der Anwendung vertrauenswürdig sind, ist es sehr unwahrscheinlich, dass Sie etwas kaputt machen. Böswillige Akteure sind überall und können in Repositories wie Archs AUR eindringen, also ist die Installation mit curl in Kombination mit Root-Zugriffs-Befehlen im Allgemeinen nicht unsicherer als eine Installation über Ihren Paketmanager.
3. Kann ich cURL mit Tor verwenden?
Ja! Starten Sie den Tor-Browser (oder einen separaten Tor-Dienst) und verwenden Sie das --proxy-Flag. Tor gibt Ihnen einen lokalen Proxy, den Sie in anderen Anwendungen verwenden können, um Ihre IP zu maskieren. Hier ist ein Beispiel für die Verwendung von cURL mit Tor:
curl --proxy localhost:9050 http://example.comStandalone-Tor-Dienste verwenden 9050 als ihren Listening-Port, während der Tor-Browser den Port 9150 verwendet.
Fazit
cURL hat sich inmitten des Wandels der Linux-Welt als widerstandsfähig erwiesen und behält seine Rolle als wichtiges Werkzeug im Arsenal des Terminalbenutzers.
Wenn Sie neu in der Kommandozeile sind, schauen Sie sich einige der nützlichsten Linux-Befehle an. Wenn Sie einfach im Internet surfen möchten, anstatt Daten aus dem Internet herunterzuladen, können Sie auch im Terminal browsen.