Curl Befehlsübersicht

Curl ist ein vielseitiges Kommandozeilen-Tool sowie die zugrunde liegende Bibliothek (libcurl) zum Übertragen von Daten über zahlreiche Netzwerkprotokolle wie HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, MQTT und viele mehr. Es bietet Funktionen wie Proxy-Unterstützung, Benutzer-Authentifizierung, Cookies, Datei-Uploads und SSL-Verbindungen. Damit ist es ein unverzichtbares Werkzeug für Entwickler, Systemadministratoren und alle, die mit Web-APIs oder netzwerkbasierten Diensten arbeiten.

Diese Anleitung zeigt, wie man mit curl verschiedene HTTP-Anfragen direkt über das Terminal ausführt. Sie erfahren, wie Sie Dateien herunterladen, eigene Header setzen, unterschiedliche HTTP-Methoden verwenden, Weiterleitungen handhaben, JSON-Daten senden, sich bei Servern authentifizieren und im Verbose-Modus Probleme analysieren. Ob beim Testen von APIs oder beim Automatisieren von Netzwerkoperationen – curl ist ein wertvolles Werkzeug für den Arbeitsalltag.

Schnellreferenz

Wenn Sie nur eine kompakte Übersicht über die gängigsten curl-Befehle benötigen, finden Sie hier eine schnelle Zusammenfassung:

# Einfacher GET-Request
$ curl https://example.com

# Ausgabe in Datei speichern
$ curl -o page.html https://example.com

# Weiterleitungen folgen
$ curl -L http://example.com

# POST-Formulardaten senden
$ curl -d "name=John&age=30" -X POST https://example.com

# JSON-Daten senden
$ curl -X POST -H "Content-Type: application/json" -d '{"name":"John"}' https://example.com

# Benutzerdefinierten Header hinzufügen
$ curl -H "Authorization: Bearer " https://api.example.com

# Basis-Authentifizierung
$ curl -u user:pass https://example.com

Curl verwenden

Dieser Abschnitt vertieft die Schnellreferenz und erklärt grundlegende curl-Operationen im Detail, einschließlich Dateidownload, Protokollhandhabung und Anforderungsformatierung. Diese Befehle werden häufig verwendet, um die Konnektivität zu prüfen oder öffentliche Webinhalte abzurufen.

Das grundlegende Format des curl-Befehls lautet:

curl Befehlsoptionen

Option Beschreibung
-o <datei> Speichert die Ausgabe in der angegebenen Datei
-O Speichert mit dem gleichen Namen wie die entfernte Datei
-C – Nimmt einen unterbrochenen Download wieder auf
-v Aktiviert den Verbose-Modus (Request/Response-Debugging)
-s Silent-Modus, blendet den Fortschrittsbalken aus
-L Folgt Weiterleitungen
-I Ruft nur die Antwort-Header ab
-X <METHODE> Legt die HTTP-Methode fest (GET, POST, DELETE usw.)
-d <daten> Sendet POST-Formulardaten
-H „<header>“ Fügt benutzerdefinierte Header hinzu (z. B. Content-Type, Authorization)
–user-agent Überschreibt den Standard-User-Agent-String
-u benutzer:pass Sendet Zugangsdaten für Basis-Authentifizierung
-F Lädt eine Datei per Multipart-Formular hoch
–fail Beendet mit Fehler bei 4xx/5xx-Antworten und unterdrückt die Ausgabe des Bodys
-w Gibt benutzerdefinierte Variablen aus, z. B. die benötigte Zeit (%{time_total})

Detaillierte Verwendung

Die folgenden Abschnitte beschreiben jeden curl-Befehl ausführlicher. Sie finden Beispiele, Syntaxerklärungen und Nutzungshinweise, um zu verstehen, wie jede Option funktioniert und wann sie anzuwenden ist. Diese Erläuterungen ergänzen die Schnellreferenz weiter oben für alle, die eine Schritt-für-Schritt-Anleitung bevorzugen.

Eine Webseite herunterladen

Lädt eine Webseite herunter und zeigt den Quellcode im Terminal an.

Befehlssyntax

Beispiel

$ curl https://www.example.com/index.html

FTP-Protokoll verwenden

Ruft eine Datei über FTP ab.

Befehlssyntax

Beispiel

$ curl ftp://ftp.example.com/public/readme.txt

Ausgabe in eine Datei speichern

Speichert den heruntergeladenen Inhalt in einer lokalen Datei, anstatt ihn im Terminal auszugeben.

Befehlssyntax

-o: Speichert die Ausgabe unter einem benutzerdefinierten Dateinamen.
-O: Speichert die Ausgabe mit dem Namen der entfernten Datei.

Beispiel

$ curl -o localcopy.html https://example.com/index.html
$ curl -O https://example.com/index.html

Einen unterbrochenen Download fortsetzen

Wurde ein Download beispielsweise wegen Netzwerkproblemen unterbrochen, kann er mit dieser Option an der Abbruchstelle fortgesetzt werden, anstatt neu zu starten.

Befehlssyntax

-C -: Setzt den Download fort.
-O: Speichert die Datei mit dem ursprünglichen Namen.

Beispiel

$ curl -C -O https://example.com/bigfile.zip

Ausgabe im Verbose-Modus aktivieren

Aktiviert eine ausführliche Ausgabe, um die Kommunikation von Anfrage und Antwort zu debuggen.

Befehlssyntax

-v: Verbose-Modus.

Beispiel

$ curl -v https://example.com

HTTP-Anfragen ausführen

Curl bietet verschiedene Optionen, um mit Webdiensten zu interagieren. Dieser Abschnitt erklärt, wie man Header überprüft, Weiterleitungen folgt, HTTP-Methoden ändert und Anforderungs-Header anpasst.

Nur Antwort-Header abrufen

Ruft nur die Antwort-Header einer URL ab.

Befehlssyntax

-I oder –head: Ruft ausschließlich Header ab.

Beispiel

$ curl -I https://example.com

Weiterleitungen folgen

Aktiviert das automatische Folgen von HTTP-3xx-Weiterleitungen.

Befehlssyntax

-L: Folgt Weiterleitungen.

Beispiel

$ curl -L http://example.com

HTTP-Methode ändern

Legt mit -X eine benutzerdefinierte HTTP-Methode fest.

Befehlssyntax

-X: Gibt die HTTP-Methode an (z. B. GET, POST, DELETE).

Beispiel

$ curl -X DELETE https://example.com/resource/123

Benutzerdefinierte Header hinzufügen

Mit der Option -H lassen sich ein oder mehrere HTTP-Header hinzufügen.

Befehlssyntax

$ curl -H "Header-Name: value" 

Beispiel

$ curl -H "User-Agent: Mozilla/5.0" -H "Cache-Control: no-cache" https://example.com

Einen eigenen User-Agent setzen

Mit –user-agent lässt sich der User-Agent-String der Anfrage festlegen.

Befehlssyntax

$ curl --user-agent "[Agent String]" 

Beispiel

$ curl --user-agent "Mozilla/5.0 (Macintosh)" https://example.com

Formulardaten oder JSON senden (POST)

Mit curl können Sie Formulardaten oder JSON-Daten in HTTP-POST-Anfragen senden. Dies ist besonders wichtig für die Interaktion mit REST-APIs oder beim Übermitteln von Daten an einen Server.

Befehlssyntax

$ curl -d "<key1=value1&key2=value2>" -X POST 
$ curl -X POST -H "Content-Type: application/json" -d '' 
</key1=value1&key2=value2>

Beispiel

$ curl -d "name=John&age=30" -X POST https://example.com
$ curl -X POST -H "Content-Type: application/json" -d '{"name":"John"}' https://example.com

Basis-Authentifizierung

Beim Zugriff auf Ressourcen, die durch HTTP Basic Auth geschützt sind, können Sie mit der Option -u Ihre Zugangsdaten direkt in der Anfrage angeben.

Befehlssyntax

Beispiel

$ curl -u admin:secret https://example.com

Erweiterte Nutzung und Tipps

Dieser Abschnitt behandelt fortgeschrittene curl-Muster, die häufig in Skripten, Automatisierung und API-Integrationen eingesetzt werden. Diese Techniken sind nützlich für Scripting, Leistungstests, sichere Authentifizierung und zuverlässige API-Nutzung.

Bei HTTP-Fehlern beenden (–fail)

Lässt curl bei HTTP-Fehlern wie 404 oder 500 still mit einem Fehlercode beenden, ohne Fehlermeldungen auszugeben.

Befehlssyntax

–fail: Beendet still bei HTTP-Fehlern (4xx, 5xx).

Beispiel

$ curl --fail https://example.com/missing-file

Verwenden Sie dies in Skripten, um die Ausführung zu stoppen, wenn eine URL nicht erreichbar ist oder mit einem Fehler antwortet.

HTTP-Anfragezeit messen (-w)

Gibt die Gesamtzeit aus, die für die Durchführung einer Anfrage benötigt wird. Nützlich für Latenzmessungen und Benchmarking.

Befehlssyntax

$ curl -w "%{time_total}\n" -o /dev/null -s 

-w: Benutzerdefinierte Ausgabe nach Abschluss.
%{time_total}: Gesamte Übertragungszeit.
-o /dev/null: Verwirft den Body.
-s: Silent-Modus, um Fortschrittsanzeigen zu unterdrücken.

Beispiel

$ curl -w "%{time_total}\n" -o /dev/null -s https://example.com

Dies hilft dabei, die Antwortzeit von APIs oder die Netzwerklatenz zu messen.

Dateien hochladen (-F)

Lädt Dateien per Multipart-Formular hoch.

Befehlssyntax

$ curl -F "key=@filename.ext" 

-F: Sendet ein Formularfeld mit Datei.
@filename.ext: Liest die Datei von der lokalen Festplatte.

Beispiel

$ curl -F "file=@report.pdf" https://example.com/upload

Verwenden Sie -F, um Dateien als Teil eines Formulars hochzuladen. Nutzen Sie –data-binary, wenn Sie rohe Dateien übertragen möchten.

Mit Bearer Token authentifizieren

Verwenden Sie Bearer Tokens, um auf gesicherte APIs zuzugreifen (z. B. OAuth2-Access-Tokens).

Befehlssyntax

$ curl -H "Authorization: Bearer " 

-H: Setzt einen benutzerdefinierten Header.
Authorization: Bearer: Erforderlich für die meisten modernen APIs.

Beispiel

$ curl -H "Authorization: Bearer abc123" https://api.example.com/data

Dies ist notwendig, um auf private Endpunkte bei Diensten wie GitHub, Stripe oder Cloud-APIs zuzugreifen.

Leise oder detaillierte Ausgabe (-s, -v)

Passen Sie die Ausgabedarstellung je nach Bedarf an.

Silent-Mode-Syntax

-s: Unterdrückt Fortschrittsbalken und Fehlermeldungen.

Verbose-Mode-Syntax

-v: Zeigt vollständige Anfragedetails und Antworten an.

Beispiel


$ curl -s https://example.com


$ curl -v https://example.com

Verwenden Sie -s für Skripte und Logging. Nutzen Sie -v, um Fehler zu debuggen oder Header zu testen.

Fazit

Curl ist ein unverzichtbares Tool für Entwickler und Systemadministratoren, die über die Kommandozeile mit Webservern, APIs und entfernten Ressourcen arbeiten müssen. Diese Anleitung bietet sowohl Schnellstart-Beispiele als auch detaillierte Erklärungen zu den gängigen curl-Operationen wie dem Herunterladen von Dateien, dem Umgang mit Headern, dem Senden von Daten und der Authentifizierung von Anfragen.

Für weitergehende Informationen empfiehlt sich ein Blick in die offizielle curl-Dokumentation oder die man-Page, um protokollspezifische Funktionen, Scripting-Tricks und fortgeschrittene Anwendungsbeispiele zu entdecken.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: