Was ist der cURL-Befehl? Syntax, Optionen und Beispiele erklärt

Was ist der cURL-Befehl? Syntax, Optionen und Beispiele erklärt

Der cURL-Befehl (Client URL) ist ein Kommandozeilen-Tool zur Übertragung von Daten an einen oder von einem Server. Im einfachsten Fall geben Sie eine URL und die zu sendenden oder zu empfangenden Daten an. cURL unterstützt zahlreiche Protokolle, darunter HTTP, HTTPS und FTP, und läuft auf den meisten Betriebssystemen.

Unter Linux können Sie mit dem cURL-Befehl Daten über das Internet mit Servern austauschen. Das Tool eignet sich für verschiedene Aufgaben, etwa zum Herunterladen von Dateien und zum Überprüfen der API-Funktionalität.

In diesem Tutorial erklären wir den cURL-Befehl, seine Installation und Syntax. Außerdem zeigen wir Ihnen anhand mehrerer Beispiele, wie Sie cURL in der Praxis einsetzen.

Was ist der cURL-Befehl?

cURL (Client URL) ist ein leistungsstarkes Tool zur Datenübertragung zwischen Ihrem System und Servern. Sie bedienen es über die Kommandozeilenschnittstelle (CLI). cURL unterstützt verschiedene Protokolle wie HTTP, HTTPS, FTP und SMTP und eignet sich daher besonders für Aufgaben wie API-Tests, das Herunterladen von Dateien und die direkte Interaktion mit Webservern.

Alternativen wie Postman bieten für diese Aufgaben eine grafische Benutzeroberfläche (GUI). Aufgrund seiner Einfachheit, Geschwindigkeit und Unterstützung zahlreicher Protokolle ist cURL jedoch bei Entwicklern weiterhin sehr beliebt. Für alle, die regelmäßig mit Linux-Befehlen arbeiten, ist cURL ein unverzichtbares Tool.

cURL installieren

Auf den meisten Linux-Betriebssystemen ist cURL standardmäßig vorinstalliert. Um zu prüfen, ob cURL auf Ihrem System installiert ist, öffnen Sie das Terminal. Wenn Sie einen Remote-Virtual-Private-Server (VPS) verwenden, können Sie sich auch über SSH verbinden.

Als Benutzer von Hostinger VPS können Sie außerdem mit nur einem Klick über das Browser-Terminal auf Ihr System zugreifen. Öffnen Sie dazu die VPS-Verwaltungsseite in hPanel und klicken Sie oben rechts auf die entsprechende Schaltfläche.

Nachdem Sie die Kommandozeilenschnittstelle (CLI) Ihres Systems aufgerufen haben, führen Sie folgenden Befehl aus, um zu prüfen, ob cURL installiert ist:

curl --version

Wenn cURL auf Ihrem System installiert ist, zeigt die Kommandozeile die installierte Versionsnummer an. Andernfalls erhalten Sie den Fehler Command not found.

Um cURL zu installieren, führen Sie die folgenden Befehle nacheinander aus. Ersetzen Sie dabei apt durch den entsprechenden Paketmanager für Ihr Linux-Betriebssystem:

sudo apt update && sudo apt upgrade
sudo apt install curl

Grundlegende Syntax und Optionen des cURL-Befehls

Die grundlegende Syntax des cURL-Befehls sieht wie folgt aus:

curl [options] [URL]

Die einzelnen Bestandteile haben folgende Bedeutung:

  • curl – der Befehlsname, mit dem Sie cURL ausführen.
  • options – zusätzliche Optionen, die das Verhalten des cURL-Befehls beeinflussen.
  • URL – die Adresse des Zielservers oder Endpunkts.

Eine vollständige Übersicht aller verfügbaren Optionen finden Sie in der cURL-Dokumentation. Zu den am häufigsten verwendeten gehören:

  • –help – gibt die Hilfe zum cURL-Befehl und seinen Optionen aus.
  • -O – lädt die Datei von der angegebenen URL unter ihrem ursprünglichen Namen herunter.
  • -L – folgt Weiterleitungen.
  • -I – ruft nur die Header ab.
  • -d – übermittelt Formulardaten.
  • -F – lädt komplexe Daten oder Dateien hoch.
  • -X – legt die Methode für die Datenübertragung fest.

Important

Linux-Befehle unterscheiden zwischen Groß- und Kleinschreibung. Verwenden Sie die Optionen daher mit der korrekten Groß- und Kleinschreibung, um Fehler zu vermeiden.

Mit cURL können Sie Daten mithilfe verschiedener HTTP-Methoden an einen Endpunkt senden oder von dort abrufen:

  • GET – ruft standardmäßig Daten vom Server ab.
  • POST – sendet Daten an den Endpunkt.
  • PUT – erstellt eine Ressource am Endpunkt oder aktualisiert eine vorhandene Ressource.
  • DELETE – entfernt Daten vom Endpunkt.

Beispiele für cURL-Befehle

In diesem Abschnitt zeigen wir Ihnen anhand mehrerer Praxisbeispiele, wie Sie den cURL-Befehl für verschiedene Aufgaben einsetzen.

Rufen Sie eine Webseite ab

Die einfachste Anwendung des cURL-Befehls ist das Abrufen des HTML-Inhalts einer Webseite. Führen Sie dazu cURL mit dem gewünschten Endpunkt aus:

curl https://www.google.com

cURL gibt den HTML-Code der Webseite als Standardausgabe in Ihrer Kommandozeile aus.

Sie können mit einem einzigen Befehl auch HTTP-Anfragen an mehrere URLs senden:

curl https://www.example1.com https://example2.com

Speichern Sie die Ausgabe in einer Datei

Sie können die Ausgabe des cURL-Befehls in einer Datei speichern, indem Sie den Umleitungsoperator > an den Befehl anhängen. Das ist hilfreich, wenn Sie das Ergebnis zur Überwachung oder Archivierung speichern möchten.

Der folgende Befehl speichert beispielsweise den HTML-Inhalt von Google in file1.txt:

curl https://www.google.com > file1.txt

Ist die Datei noch nicht vorhanden, wird sie automatisch erstellt. Wenn file1.txt bereits existiert, überschreibt cURL die vorhandene Datei.

Laden Sie eine Datei unter ihrem ursprünglichen Namen herunter

Eine der häufigsten Anwendungen von cURL ist das Herunterladen einer Remote-Datei aus dem Internet, ähnlich wie mit wget. Verwenden Sie dazu die Option -O:

curl -O http://www.example.com/path/file.zip

Der Befehl lädt die angegebene Datei file.zip in Ihr aktuelles Arbeitsverzeichnis herunter. Ohne die Option -O gibt cURL den Inhalt der Datei als Standardausgabe in Ihrer Kommandozeile aus.

Folgen Sie Weiterleitungen

Wenn eine URL auf eine andere Seite weiterleitet, folgt cURL der Weiterleitung nicht automatisch. Die Antwort enthält stattdessen beispielsweise den HTTP-Statuscode 301 oder 302. Sehen Sie sich dazu googlr.com an:

curl http://www.googlr.com

Da diese URL zu google.com weiterleitet, folgt cURL der Weiterleitung nicht und die Antwort enthält den Statuscode 301, der darauf hinweist, dass das Dokument verschoben wurde.

Damit cURL der Weiterleitung automatisch folgt und den Inhalt von google.com ausgibt, verwenden Sie die Option -L oder –location:

curl -L http://www.googlr.com

Bei mehreren Weiterleitungen können Sie mit der Option –max-redirs festlegen, wie vielen Weiterleitungen cURL maximal folgt:

curl -L --max-redirs 3 http://www.googlr.com

Rufen Sie nur Header ab

In einigen Fällen ist es hilfreicher, nur die Antwort-Header eines Endpunkts statt des gesamten Inhalts abzurufen. Dadurch fällt die Ausgabe kürzer aus, lässt sich einfacher analysieren und verbraucht weniger Bandbreite.

Die Informationen in den Antwort-Headern reichen für Testzwecke in der Regel aus. Sie enthalten beispielsweise den HTTP-Statuscode, die Anzahl der verbleibenden API-Aufrufe und Informationen zu Weiterleitungen.

Um mit cURL nur die Header abzurufen, verwenden Sie die Option -I (großes i) oder –head:

curl -I http://www.google.com

Senden Sie authentifizierte Anfragen

Wenn Sie eine Anfrage an einen geschützten Endpunkt wie eine interne API senden, müssen Sie die Anfrage in der Regel authentifizieren, indem Sie die Anmeldedaten in den cURL-Befehl aufnehmen.

Befehl und Option unterscheiden sich je nach Authentifizierungsmethode. Wenn Sie beispielsweise die herkömmliche Authentifizierung mit Benutzername und Passwort verwenden, führen Sie folgenden Befehl aus:

curl -u username:password <URL>

Sie können :password auch weglassen und das Passwort anschließend separat eingeben. So erscheint das Passwort nicht im Bash-Verlauf.

Wenn Sie ein Bearer-Token verwenden, verwenden Sie folgende Befehlssyntax:

curl -H "Authorization: Bearer <token>" <URL>

Bei der Authentifizierung über einen API-Schlüssel im Header sieht der Befehl ähnlich aus:

curl -H "Authorization: ApiKey <API key>" <URL>

Falls Ihre API den API-Schlüssel ausdrücklich direkt in der URL benötigt, können Sie ihn mit folgendem Befehl hinzufügen:

curl "https://api.example.com/data?api_key=api_key"

Übermitteln Sie Formulardaten

Mit cURL können Sie Formulardaten an einen Endpunkt senden. Das ist praktisch, wenn Sie den Vorgang mit einem Bash-Skript automatisieren oder nicht über die Weboberfläche des Zielservers arbeiten möchten.

Für die Übermittlung von Formulardaten mit cURL müssen Sie Schlüssel-Wert-Paare angeben. Der Schlüssel bezeichnet den Namen des Formularfelds, der Wert die zu übermittelnden Daten. Die Syntax sieht wie folgt aus:

key1=value1&key2=value2

Sie benötigen zwei Optionen: Mit -X legen Sie die Übermittlungsmethode fest, während -d angibt, dass cURL Daten übermitteln soll. Der vollständige Befehl kann beispielsweise so aussehen:

curl -X POST -d "username=johndoe&password=secret" https://example.com/login

In diesem Beispiel sendet cURL die Anmeldedaten mit einer POST-Anfrage an das Anmeldeformular.

Achten Sie beim Übermitteln von Formulardaten darauf, dass diese dem URL-Codierungsformat entsprechen. Ersetzen Sie beispielsweise ein Leerzeichen durch %20 und ein kaufmännisches Und (&) durch %26.

Sie können die Daten auch mit folgender Syntax aus einer Datei übermitteln. Stellen Sie sicher, dass die Datei die Daten im korrekten Schlüssel-Wert-Paar-Format enthält.

curl -X POST -d @data.txt https://example.com/login

Laden Sie eine Datei hoch

Wenn Sie eine lokale Datei oder komplexere Daten an einen Endpunkt übermitteln möchten, verwenden Sie die Option -F. Mit dieser Option verwendet cURL standardmäßig die POST-Methode, sodass Sie diese nicht zusätzlich mit -X angeben müssen.

Der folgende Befehl sendet beispielsweise eine Textdatei an den Endpunkt:

curl -F "file=@test.txt" https://example.com/upload

Um mehrere Dateien zu senden, führen Sie sie im Befehl jeweils mit der Option -F auf:

curl -F "file=@/path/to/image.jpg" -F "file=@/path/to/image2.jpg" https://example.com/upload

Sie können Dateien mit cURL auch über das File Transfer Protocol (FTP) hochladen. Verwenden Sie dafür die Option -T:

curl -T /path/to/file ftp://ftp.example.com/remote/path/

Bei SFTP (SSH File Transfer Protocol) oder einem geschützten FTP-Server fügen Sie die Anmeldedaten vor der Option -T hinzu:

curl -u username:password -T /path/to/file sftp://sftp.example.com/remote/path/

Legen Sie benutzerdefinierte Header fest

Mit benutzerdefinierten Anfrage-Headern können Sie gezielt mit einem Webserver oder einer API interagieren. Sie können damit spezifische Metadaten hinzufügen, die die Antwort des Servers beeinflussen. Das ist nützlich, wenn Sie die Funktionalität eines Endpunkts testen.

Einen benutzerdefinierten Header legen Sie mit der Option -H und folgender Syntax fest:

curl -H "Header: value" <URL>

Sie können beispielsweise im Header den Typ des Inhalts angeben, den Sie senden möchten:

curl -X POST -H "Content-Type: application/json" -d '{"form":"JSONdata"}' https://api.example.com/

Mit einem benutzerdefinierten Header können Sie auch festlegen, welchen Inhaltstyp Sie als Antwort akzeptieren. Wenn der Endpunkt beispielsweise mit JSON antworten soll, verwenden Sie folgenden Befehl:

curl -H "Accept: application/json" https://api.example.com/data

Beim Testen einer API können Sie über einen benutzerdefinierten Header die zu verwendende Version angeben:

curl -H "X-API-Version: 2" https://api.example.com/v2/data

Verwenden Sie verschiedene Protokolle

Je nach Endpunkt müssen Sie mit cURL möglicherweise unterschiedliche Protokolle verwenden. So können Sie beispielsweise Dateien per SFTP übertragen, während Sie zum Testen eines Mailservers SMTP verwenden.

Um cURL mit einem bestimmten Protokoll auszuführen, geben Sie das Protokoll am Anfang der URL des Endpunkts vor :// an. Der folgende Befehl überträgt beispielsweise Daten über SMTP:

curl --url smtp://smtp.example.com --mail-from "user@example.com" --mail-rcpt "recipient@example.com" -T email.txt

Der Befehl sendet über den SMTP-Mailserver smtp.example.com eine Nachricht von user@example.com an recipient@example.com.

Fazit

Mit dem cURL-Befehl unter Linux können Sie eine Verbindung zu einem Server herstellen und Daten mit ihm austauschen. cURL unterstützt verschiedene Protokolle und ermöglicht es, Anfragen um zusätzliche Informationen wie benutzerdefinierte Header zu ergänzen.

cURL ist auf den meisten Linux-Distributionen bereits vorinstalliert. Falls nicht, können Sie das Tool mit dem Paketmanager Ihres Systems manuell installieren. Mit dem Befehl können Sie beispielsweise den Inhalt einer Webseite oder die Antwort einer API abrufen.

Mit der Option -O können Sie Dateien über cURL herunterladen, während -F das Hochladen von Dateien oder komplexeren Daten ermöglicht. Mit -H legen Sie benutzerdefinierte Anfrage-Header fest, beispielsweise um ein Authentifizierungstoken hinzuzufügen oder die API-Version anzugeben.

Um Formulardaten mit cURL zu senden, verwenden Sie die Option -d. Mit -F laden Sie komplexere Ressourcen wie Dateien hoch.

Häufig gestellte Fragen (FAQ) zum cURL-Befehl

Wozu dient der cURL-Befehl unter Linux?

Unter Linux können Sie mit dem cURL-Befehl eine Verbindung zu einem Remote-Server herstellen und Daten mit ihm austauschen. Er eignet sich für verschiedene Aufgaben, darunter das Herunterladen einer Datei von einer Website und das Senden von Anfragen an eine API zu Testzwecken.

Welche Protokolle unterstützt cURL?

cURL unterstützt verschiedene Datenübertragungsprotokolle, darunter HTTP, HTTPS, FTP und SMTP. Um ein bestimmtes Protokoll zu verwenden, geben Sie es am Anfang der URL vor :// an. Wenn Sie beispielsweise FTP verwenden möchten, geben Sie den Endpunkt ftp://www.example.com an.

Wie kann ich überprüfen, ob cURL auf meinem System installiert ist?

Um zu prüfen, ob cURL auf Ihrem System installiert ist, führen Sie den Befehl curl –version aus. Gibt die Kommandozeile eine Versionsnummer zurück, ist cURL installiert. Andernfalls erhalten Sie den Fehler Command not found.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Was unsere Kunden sagen

Comments

0 responses

Write a respond

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.