So verwenden Sie cURL für die Datenübertragung über die Befehlszeile und mehr

Cum să utilizați cURL pentru transferul de date pe linia de comandă și altele
⏱️ 15 min read

Wenn Sie schon seit einiger Zeit Terminal-orientierte Installationsanweisungen für Linux-Anwendungen befolgen, sind Sie wahrscheinlich auf die curl Befehl irgendwann. cURL ist ein Befehlszeilentool zum Übertragen von Daten mit URLs. Eine der einfachsten Anwendungen ist das Herunterladen einer Datei über die Befehlszeile. Dies täuscht jedoch, da cURL ein unglaublich mächtiges Werkzeug ist, das noch viel mehr kann.

Was ist cURL?

Ursprünglich von Daniel Sternberg im Jahr 1996 geschrieben, um Finanzdaten von Webservern abzurufen und an IRC-Kanäle zu senden, hat sich cURL zu einem leistungsstarken Werkzeug entwickelt, um Daten zu erhalten, ohne einen Browser verwenden zu müssen. Wenn Sie das Terminal immer verwenden, ist dies eines der wichtigsten Werkzeuge in Ihrem Arsenal.

In den meisten Linux-Distributionen ist cURL im System vorinstalliert und Sie können es sofort verwenden. Auch wenn es nicht installiert ist, ist es in den meisten Repositorys enthalten, sodass Sie es einfach über das Software Center installieren können.

Für Windows hat es keinen „curl-ähnlichen“ Befehl und macOS hat cURL vorinstalliert, bietet aber kein genauso viele Fahnen als Linux-Version.

Installation

Bevor wir fortfahren, müssen wir sicherstellen, dass cURL bereits auf unserem System installiert ist.

Linux

Verwenden Sie in Debian/Ubuntu-basierten Distributionen den folgenden Befehl, um cURL zu installieren:

In Arch-basierten Distributionen:

Unter Fedora/CentOS/RHEL:

Mac OS

Für macOS ist es bereits vorinstalliert, Sie müssen also nichts tun.

Fenster

  1. Gehen Sie für Windows 7/10/11 zum cURL-Downloadseite und wählen Sie je nach verwendeter Architektur entweder aus den 64-Bit- oder 32-Bit-Paketen. Wenn Sie Ihre Architektur nicht kennen, ist 64-Bit eine sichere Sache, da die überwiegende Mehrheit der nach 2006 hergestellten Hardware darauf basiert.
  2. Erstellen Sie einen Ordner entweder direkt auf dem Systemlaufwerk oder in „C:Programme“ und nennen Sie ihn „cURL“.
  1. Gehen Sie zurück zu der heruntergeladenen ZIP-Datei, öffnen Sie sie und suchen Sie „curl.exe“ im Ordner „bin“. Kopieren Sie das in den von Ihnen erstellten cURL-Ordner. Die von Ihnen kopierte EXE ist vollständig eigenständig und kann jede Permutation ausführen, die Sie unter Linux ausführen können.
  2. Um diesen Befehl tatsächlich nützlich zu machen, müssen wir ihn der PATH-Variablen in Windows hinzufügen, damit er überall von der Eingabeaufforderung ausgeführt werden kann.
  • Klicken Sie auf Ihr Startmenü, geben Sie ein environment, und drücke Eintreten.
  • Klicken Sie auf „Umgebungsvariablen …“ Sie sollten sich jetzt in Ihren Umgebungsvariableneinstellungen befinden.
Linuxcurl-Umgebungsvariablen
  • Wählen Sie die Umgebungsvariable „Pfad“ aus und klicken Sie dann auf „Bearbeiten …“
  • Klicken Sie im Dialogfenster zum Bearbeiten des Pfads auf „Neu“ und geben Sie das Verzeichnis ein, in dem sich Ihre „curl.exe“ befindet – zum Beispiel „C:ProgrammecURL“.
Linuxcurl Editvariable
  • Klicken Sie in den Dialogfenstern, die Sie durch diesen Vorgang geöffnet haben, auf „OK“ und genießen Sie cURL in Ihrem Terminal!

Jedes Flag in cURL, das unter Linux verwendbar ist, sollte in der Windows-Version funktionieren.

Wort an die Weisen: Denken Sie daran, dass die Eingabeaufforderung niemals mit Windows Terminal verwechselt werden sollte. Windows Terminal wird mit einer eigenen Version von cURL geliefert, die in der PowerShell enthalten ist und ähnliche Funktionen bietet, aber völlig anders funktioniert.

cURL verwenden

Um zu beginnen, geben Sie einfach ein curl maketecheasier.com in Ihrem Terminal und drücken Sie Eintreten.

Wenn Sie keine Ausgabe erhalten, liegt dies daran, dass der Server dieser Site nicht so konfiguriert ist, dass er auf zufällige Verbindungsanfragen an seine Nicht-www-Domäne reagiert. Wenn Sie einen Server abgefragt haben, der nicht existiert oder nicht online ist, erhalten Sie eine Fehlermeldung, dass cURL den Host nicht auflösen konnte.

Linuxcurl-Fehler

Um cURL dazu zu bringen, etwas wirklich Nützliches zu tun, müssen wir ein Protokoll angeben. In unserem Beispiel verwenden wir das HTTPS-Protokoll, um die Homepage dieser Site abzufragen. Typ curl https://www.maketecheasier.com.

Linuxcurl-Dateien

Wenn alles gut geht, sollten Sie auf eine gigantische Datenwand starren. Um diese Daten ein wenig nutzbarer zu machen, können wir cURL anweisen, sie in eine HTML-Datei einzufügen:

Linuxcurl-Download

Dieser Befehl fügt den Inhalt der Ausgabe unserer Site in eine HTML-Datei in Ihrem Downloads-Ordner ein. Navigieren Sie mit Ihrem bevorzugten Dateimanager zu dem Ordner und doppelklicken Sie auf die soeben erstellte Datei. Es sollte eine Momentaufnahme der HTML-Ausgabe der Homepage dieser Site öffnen.

Linuxcurl-Tests

Ebenso können Sie die -o Flag, um das gleiche Ergebnis zu erzielen:

Weiterleitungen folgen

Die meisten Websites leiten den Datenverkehr automatisch vom „http“- zum „https“-Protokoll um. In cURL können Sie dasselbe mit dem -L Flagge. Dies folgt automatisch 301-Weiterleitungen, bis eine lesbare Seite oder Datei erreicht wird.

Linuxcurl-Weiterleitung

Fortsetzen eines Downloads

Beim Herunterladen großer Dateien können Unterbrechungen je nach Internetgeschwindigkeit immens irritierend sein. Zum Glück hat cURL eine Lebenslauffunktion. Bestehen der -C flag wird sich im Handumdrehen um dieses Problem kümmern.

Um ein Beispiel aus der Praxis zu zeigen, habe ich einen Download von Debians Testversion ISO absichtlich unterbrochen, indem ich gedrückt habe Strg und C mitten im greifen.

Linuxcurl unterbrochen

Für unseren nächsten Befehl fügen Sie die -C Flagge. Zum Beispiel,

Linuxcurl-Lebenslauf

Der Download wurde erfolgreich dort gestartet, 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, von denen jede ihre eigenen Kompromisse hat.

Wenn die Dateien, die Sie herunterladen, aufgezählt sind (z. B. Datei1, Datei2 usw.), können Sie Klammern verwenden, um den vollständigen Dateibereich zu erhalten, und „#“ in der Ausgabe, die Sie mit dem angeben -o Flagge. Um dies etwas weniger verwirrend zu machen, hier ein Beispiel:

Eine einfachere Möglichkeit, dies zu tun, ist mit -O (--remote-name). Dieses Flag veranlasst cURL, die Remote-Datei in eine lokale Datei mit demselben Namen herunterzuladen. 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.

Wenn Sie eine große Anzahl von Aufzählungsdateien herunterladen müssen, --remote-name-all ist eine bessere Flagge dafür:

Sie können sogar nicht aufgezählte Dateien angeben, die von derselben Site stammen, ohne die URL mit Klammern erneut eingeben zu müssen:

Herunterladen mit Authentifizierung

Laden Sie Dateien herunter, die eine Authentifizierung erfordern (z. B. beim Abrufen von einem privaten FTP-Server) mit dem -u Flagge. Jede Authentifizierungsanfrage muss zuerst mit dem Benutzernamen und dann mit dem Passwort erfolgen, wobei die beiden durch einen Doppelpunkt getrennt werden. Hier ist ein Beispiel, um die Dinge zu vereinfachen:

Dadurch wird unser Freund bonobo_bob beim FTP-Server authentifiziert und die Datei in den Downloads-Ordner heruntergeladen.

Aufteilen und Zusammenführen von Dateien

Wenn Sie aus irgendeinem Grund eine große Datei herunterladen und in Stücke aufteilen möchten, können Sie dies mit cURLs tun --range Flagge. Mit --range, müssen Sie das Byte angeben, bei dem Sie beginnen möchten, bis zu dem, bei dem Sie enden möchten. Wenn Sie kein Ende des Bereichs angeben, wird nur der Rest der Datei heruntergeladen.

Im folgenden Befehl lädt cURL die ersten 100 MB des Installationsabbilds von Arch Linux herunter:

Für die nächsten 100 MB verwenden Sie --range 100000000-199999999, usw. Sie können diese Befehle verketten, indem Sie die && Operand:

Wenn Sie die obige Befehlsstruktur genau befolgt haben, sollten acht Dateien erscheinen, in denen Sie cURL aufgefordert haben, sie herunterzuladen.

Linuxcurl-Teile

Um diese Dateien wieder zusammenzuführen, müssen Sie die cat Befehl, wenn Sie unter Linux oder macOS wie folgt arbeiten:

Für Windows müssen Sie die copy Befehl wie folgt:

Andere nützliche Funktionen

Es gibt viele Flags und Verwendungen für cURL:

  • -# – Verwendet einen Fortschrittsbalken, um anzuzeigen, wie weit Sie mit dem, was Sie greifen, bereits sind. 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 – Greift nur den Antwortheader vom Server ohne die Ausgabedaten. Dies ist nützlich, wenn Sie entweder eine Website debuggen oder einen Blick auf die programmierten Antworten des Servers auf Clients werfen. Beispiel: curl --head https://example-url.com.
  • --limit-rate – Bestellt einen Download mit begrenzter Bandbreite. Dies ist in Situationen nützlich, in denen cURL nicht die gesamte verfügbare Bandbreite in Ihrem System beansprucht. Eine einfache Zahl wird als Bytes pro Sekunde interpretiert. K stellt Kilobytes pro Sekunde dar; M steht für Megabyte pro Sekunde. Beispiel: curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip.
  • -o – Bestimmt, wie bereits erwähnt, eine Ausgabedatei, die cURL verwenden soll. Beispiel: curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip.
  • --proxy – Wenn Sie mit einem Proxy arbeiten möchten, ist dies der richtige Weg. Beispiel: curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip.

cURL vs. Wget

Beide im selben Jahr (1996) veröffentlichten cURL und Wget sind so ziemlich Schwesterprogramme für den gelegentlichen Beobachter. Tauchen Sie jedoch ein wenig tiefer ein, und Sie können sehen, dass diese beiden Schwestern unterschiedliche Zwecke haben.

Wget

  • Es ist von Grund auf so konzipiert, dass es Daten aus dem Internet abrufen kann.
  • Braucht das nicht -L oder -o Flags wie cURL; tippe einfach wget [url] Los geht!
  • Kann rekursiv herunterladen, um alles in einem Verzeichnis mit dem -r Flagge.
  • Verfügt über alle Funktionen, die ein Benutzer für den täglichen Gebrauch benötigt, und erfüllt die täglichen Aufgaben des Systemadministrators.
  • (In Linux) Benötigt nicht viele Abhängigkeiten; alle sollten sofort verfügbar sein.

cURL

  • Umfangreiches Repertoire an Flags und nützlichen Funktionen für den Fernabruf.
  • Unterstützt lokale Netzwerke (LDAP) und Netzwerkdrucker (Samba).
  • Funktioniert gut mit gzip-Komprimierungsbibliotheken.
  • Hängt von libcurl ab, was es Entwicklern ermöglicht, Software oder Bash-Skripte zu schreiben, die die Funktionalität von cURL enthalten.

Kurz gesagt, Wget ist die „Werkzeugkiste für Jedermann“, um Dinge aus dem Internet zu holen, während cURL dies mit einer detaillierteren Kontrolle für Power-User und Systemadministratoren erweitert.

Häufig gestellte Fragen

1. Ich habe einen Zertifikatsfehler in Linux. Wie behebe ich es?

Wenn Sie einen Fehler erhalten, der etwa „Der Zertifikatsaussteller des Peers wurde als nicht vertrauenswürdig markiert“ lautet, können Sie dies am einfachsten beheben, indem Sie das Paket mit allgemeinen Zertifikaten in Ihrer Distribution neu installieren.

Für Debian/Ubuntu-basierte Systeme:

Für Fedora/CentOS/RHEL:

Für Arch-basierte Systeme:

Beachten Sie, dass Sie in Arch möglicherweise Ihren Paketcache mit . löschen möchten pacman -Scc bevor Sie das Zertifikatspaket neu installieren.

Wenn dieser Fehler weiterhin angezeigt wird, stimmt möglicherweise auf der Serverseite etwas nicht.

2. Ist es sicher, cURL- und bash-Befehle zusammen auszuführen?

Obwohl dies nicht die häufigste Methode zur Installation von Linux-Anwendungen ist, gibt es eine Reihe von Entwicklern (wie die Leute hinter NodeJS), die Ihnen keine andere Wahl lassen, als zu verwenden curl neben einem Root-Zugriffsbefehl, der über die Bash läuft (z. B. curl [argument] | sudo -E bash -) um die Software zu installieren.

Es sieht vielleicht etwas beängstigend aus, 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 Repositorys wie Archs AUR infiltrieren curl in Kombination mit Root-Zugriffsbefehlen ist im Allgemeinen nicht unsicherer als dies über Ihren Paketmanager.

3. Kann ich cURL mit Tor verwenden?

Jawohl! Starten Sie den Tor-Browser (oder einen eigenständigen Tor-Dienst) und verwenden Sie die --proxy Flagge. Tor bietet Ihnen einen lokalen Proxy, mit dem Sie Ihre IP in anderen Anwendungen maskieren können. Hier ist ein Beispiel für cURL, das mit Tor verwendet wird:

Eigenständige Tor-Dienste verwenden 9050 als Listening-Port, während der Tor-Browser Port 9150 verwendet.

Einpacken

cURL hat sich im Wandel der Linux-Welt als widerstandsfähig erwiesen und seine Position als wichtiges Werkzeug im Arsenal der Terminalbenutzer behauptet.

Wenn Sie neu in der Befehlszeile sind, sehen Sie sich einige der nützlichsten Linux-Befehle an. Wenn Sie einfach nur im Web suchen möchten, anstatt Daten aus dem Internet herunterzuladen, können Sie auch auf dem Terminal surfen.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Das könnte dich auch interessieren …

Font Resize
Contrast