logo

Curl-Befehl unter Linux mit Beispielen

Der Linux-Befehl „curl“ wird zum Herunterladen oder Hochladen von Daten auf einen Server über unterstützte Protokolle wie HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP usw. verwendet. Da es sich um ein Remote-Dienstprogramm handelt, funktioniert es ohne Benutzerinteraktion.

Die Datenübertragung von einem Ort zum anderen ist eine der lebenswichtigen und am häufigsten genutzten Aufgaben eines Computersystems. Für die Datenübertragung stehen jedoch viele GUI-Tools zur Verfügung. Wenn Sie jedoch über die Befehlszeile arbeiten, wird es etwas kompliziert. Mit dem Curl-Dienstprogramm können wir Daten über die Befehlszeile übertragen.

Curl ist ein Befehlszeilentool zum Abrufen und Senden von Daten wie Dateien mit URL-Syntax. Es unterstützt alle Protokolle, die von libcurl unterstützt werden, da es libcurl verwendet. Curl bietet Unterstützung für HTTPS und implementiert die SSL-Zertifikatsüberprüfung, wenn standardmäßig ein sicheres Protokoll wie HTTPS erwähnt wird. Curl bringt das Remote-Server-Zertifikat mit und überprüft das CA-Zertifikat, um die Gültigkeit des Remote-Servers zu gewährleisten und sicherzustellen, dass der Remote-Server derjenige ist, den es anfordert, wenn Curl über HTTPS eine Verbindung zu einem Remote-Server herstellt.

Es gibt viele Optionen zum Definieren eines CA-Zertifikats, z --capath Und --cacert . Die Option --cacert kann zur Angabe des Speicherorts der Datei des CA-Zertifikatspeichers verwendet werden. Wenn auf der Windows-Plattform keine CA-Zertifikatdatei verfügbar ist, sucht Curl in der folgenden Reihenfolge nach dem Namen der CA-Zertifikatdatei „curl-ca-bundle.crt“:

  • Verzeichnis, in dem das Curl-Programm vorhanden ist.
  • Aktuelles Arbeitsverzeichnis.
  • Systemverzeichnis (Windows).
  • Verzeichnis (Windows).
  • Verzeichnisse werden in den Umgebungsvariablen %PATH% erwähnt.

Curl gibt eine Fehlermeldung aus, wenn der Remote-Server ein selbstsigniertes Zertifikat verwendet oder wenn das Remote-Server-Zertifikat nicht über eine in der CA-Zertifikatsdatei erwähnte Zertifizierungsstelle signiert ist. Die Option --insecure oder -k kann zum Überspringen der Zertifikatsüberprüfung verwendet werden. Das Remote-CA-Zertifikat kann alternativ in die CA-Zertifikatspeicherdatei aufgenommen werden, wenn der Remote-Server gültig ist.

Curl bietet eine Menge hilfreicher Tricks wie Wiederaufnahme der Dateiübertragung, Cookies, SSL-Verbindungen, HTTP-Post, FTP-Upload, Benutzerauthentifizierung, Proxy-Unterstützung und mehr. Curl wird von libcurl für jeden übertragungsbezogenen Aspekt mechanisiert.

Was ist libcurl?

libcurl ist eine clientseitige kostenlose URL-Übertragungsbibliothek. Es unterstützt SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP-Proxy-Tunneling, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT und Cookies. Die Bibliothek unterstützt außerdem Benutzer-plus-Passwort-Authentifizierung, Proxys, LDAPS, HTTPS-Zertifikate, formularbasierten HTTP-Upload, FTP-Upload, Wiederaufnahme der Dateiübertragung, TFTP, Telnet, SFTP und Datei-URL-Schema.

libcurl ist kompakt. Es erstellt und funktioniert auf identischen Plattformen, darunter Microsoft Windows, UnixWare, Ultrix, Tru64, Symbian, Solaris, RISC OS, QNX Neutrino, OS/2, OpenBSD, NetWare, NetBSD, macOS, Linux, IRIX, iOS, HURD, HP -UX, FreeBSD, DOS, Darwin, OpenVMS, BlackBerry 10, BlackBerry Tablet OS, BeOS, Android, AmigaOS und AIX.

Die libcurl-Bibliothek ist IPv6-kompatibel, threadsicher und kostenlos. Bindungen sind auch für mehr als 50 Sprachen verfügbar, darunter Python, PHP, Java und C/C++.
Die libcurl-Bibliothek unterstützt SChannel, gskit unter IBM i, NSS, mbed TLS, GnuTLS unter Windows, Secure Transport unter iOS und macOS, TLS/SSL über OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl und Boringssl.

Syntax:

Die grundlegende Syntax für die Verwendung von Curl lautet wie folgt:

 curl [options] [URL...] 

Aus der obigen Syntax:

URL:

Die URL-Syntax ist eine allgemeine protokollabhängige URL. Wir können mehrere URLs wie folgt angeben:

 http://site.{one,two,three}.com 

Optionen:

Der Befehl „curl“ unterstützt die folgenden Befehlszeilenoptionen:

--abstract-unix-socket: Es wird verwendet, um eine Verbindung über einen abstrakten Unix-Domänen-Socket anstelle eines Netzwerks herzustellen.

--anyauth: Es wird verwendet, um Curl zu befehlen, die Methode selbst zu authentifizieren und die sicherste Methode zu verwenden. Bei diesem Dienstprogramm handelt es sich um ein optionales Dienstprogramm „--basic, --digest, --ntlm und Negotie“, das zum Festlegen einer bestimmten Authentifizierungsmethode verwendet wird.

-a, --append: Es wird zum Hochladen von Dateien verwendet. Die Datei wird angehängt, anstatt sie zu überschreiben. Wenn die angegebene Datei nicht auf dem Server vorhanden ist, wird eine erstellt.

Java-Schlaf

--Basic: Es spezifiziert die Verwendung der HTTP-Basisauthentifizierung. Dies ist die Standardoption des Curl-Befehls. Dies ist nützlich, um die vorherigen Einstellungen zu überschreiben.

--cacert: Es wird für die Verwendung der jeweiligen Zertifikatsdatei zur Überprüfung des Peers angegeben. Die Dateien können über mehrere CA-Zertifikate verfügen. Das Standardformat für die Zertifikate ist PEM, daher müssen alle Zertifikate darin vorliegen.

--capath: Es wird für die Verwendung des jeweiligen Verzeichnisses zur Überprüfung des Peers angegeben. Wir können mehrere Pfade angeben, indem wir sie durch einen Doppelpunkt (:) trennen, z. B. „Pfad: Pfad2:Pfad3“. Das Standardformat für die Zertifikate ist PEM, daher müssen alle Zertifikate darin vorliegen.

--cert-status: Es wird verwendet, um den Status des Serverzertifikats zu überprüfen. Es verwendet Certificate Status Request oder OCSP-Stapling TLS.

--cert-type: Es gibt den bereitgestellten Curl-Zertifikattyp an. Diese Zertifikate können im PEM-, DER- und ENG-Format vorliegen. Der Standardwert ist PEM. Bei mehrfacher Angabe wird der letzte Wert vom Curl übernommen.

-E, --cert : Es wird für die Verwendung der Client-Zertifikatdatei angegeben, wenn eine Datei über ein SSL-basiertes Protokoll wie HTTPS, FTPS usw. abgerufen wird.

--ciphers: Es wird verwendet, um die Chiffren auszuwählen, die in der Verbindung verwendet werden sollen.

--compressed-ssh: Es wird verwendet, um die integrierte SSH-Komprimierung zu aktivieren. Diese Option wird vom Server als Anfrage betrachtet, sodass der Server sie möglicherweise annimmt oder nicht.

--compressed: Es wird verwendet, um mithilfe der Curl-Algorithmen eine komprimierte Antwort anzufordern und das unkomprimierte Dokument zu speichern. Diese Option sendet einen Bericht für nicht unterstützte Curl-Kodierung.

-K, --config : Es wird verwendet, um eine Textdatei zum Lesen von Curl-Argumenten zu beschreiben. Der Curl verwendet die Befehlszeilenargumente aus der Textdatei.

--Verbindungs ​​Timeout : Es wird verwendet, um die maximale Zeit in Sekunden für das Timeout der Curl-Verbindung anzugeben.

--verbunden mit : Es wird verwendet, um eine Anfrage an das angegebene Host-Port-Paar zu erstellen. Andernfalls wird eine Verbindung zum nächsten Paar hergestellt. Diese Option ist ein praktisches Tool, um direkte Anfragen an einen bestimmten Server zu stellen.

-C, --continue-at : Es wird verwendet, um eine vorherige Dateiübertragung am angegebenen Offset fortzusetzen oder fortzusetzen.

-c, --cookie-jar: Es wird verwendet, um eine bestimmte Datei anzugeben, in die wir nach einem erfolgreichen Vorgang alle Cookies schreiben möchten.

-b, --cookie: Es dient der Weiterleitung von Daten an den HTTP-Server im Cookie-Header.

--create-dirs: Es wird für die Verbindung mit dem „-o?“ verwendet. Option: Es wird die erforderliche lokale Verzeichnishierarchie erstellt.

--crlf (FTP SMTP): Es wird verwendet, um beim Upload LF in CRLF zu konvertieren. Es ist ein praktisches Tool für MVS (OS/390).

--crlfile: Es wird zur Angabe (im PEM-Format) mit einer Zertifikatssperrliste verwendet.

--data-ascii: Es ist ein Alias ​​für das ?-d? Möglichkeit.

--delegation: Es wird verwendet, um LEVEL festzulegen, um dem Server zu bestätigen, was er in Bezug auf Benutzeranmeldeinformationen delegieren darf.

--verdauen: Es wird verwendet, um die HTTP-Digest-Authentifizierung zu aktivieren.

-q, --disable: Bei Verwendung als erstes Argument wird die Konfigurationsdatei „curlrc“ ignoriert.

--dns-interface: Es wird verwendet, um dem Server zu bestätigen, dass er die ausgehenden DNS-Anfragen senden soll.

--dns-servers: Es wird verwendet, um die DNS-Server anstelle der Standardserver anzugeben.

-f, --fail: Es wird verwendet, um den Curl bei Serverfehlern stillschweigend zum Scheitern zu bringen.

-F, --form: Es wird verwendet, um ein vom Benutzer ausgefülltes Formular zu emulieren.

-P, --ftp-port: Es wird verwendet, um die Standard-Listener-Rollen bei der Verbindung mit FTP umzukehren.

--ftp-ssl-ccc-mode : Es wird verwendet, um den CCC-Modus einzustellen.

-G, --get: Es wird verwendet, um Daten mit ?-d? Option zur Verwendung in einer HTTP-GET-Anfrage anstelle einer POST-Anfrage.

-h, --help: Es wird verwendet, um das Hilfehandbuch mit einer kurzen Beschreibung der Verwendungs- und Supportoptionen anzuzeigen.

-0, --http1.0: Es ist für die Verwendung der HTTP-Version 1.0 spezifiziert.

--ignore-content-length: Es wird verwendet, um den Content-Length-Header zu ignorieren.

-Ich füge bei: Es wird verwendet, um die HTTP-Antwortheader einzuschließen.

-4, --ipv4: Es wird verwendet, um Namen in IPv4-Adressen aufzulösen.

-6, --ipv6: Es wird verwendet, um Namen in IPv6-Adressen aufzulösen.

Protokolle von Curl

Curl unterstützt mehrere Protokolle:

    DIKT:Es ermöglicht uns, Wörter nur mit Wörterbüchern nachzuschlagen.FTP (S):Curl unterstützt das FTP-Protokoll mit vielen Hebeln und Optimierungen. Mit oder ohne TLS.DATEI:Es ermöglicht uns, die lokale Datei zu schreiben und zu lesen. Curl erlaubt keinen Fernzugriff auf die Datei://URL, funktioniert aber, wenn es unter Microsoft Windows mit dem nativen UNC-Ansatz aktiv ist.GOPHER (S):Es ruft Dateien ab.HTTP (S):Curl unterstützt HTTP mit zahlreichen Variationen und Optionen. Abhängig von der genauen Befehlszeile und den Build-Optionen kann es die HTTP-Versionen 0.9, 1.0, 1.1, 2 und 3 sprechen.IMAP (S):Curl lädt E-Mails für uns mit dem Mail-Reading-Protokoll herunter. Mit oder ohne TLS.LDAP (S):Curl kann für uns die Verzeichnissuche mit oder ohne Verwendung von TLS implementieren.MQTT:Curl unterstützt die 3-Version von MQTT. Das Herunterladen auf MQTT ist dasselbe wie 'abonnieren' zu jedem Thema, und das Posten/Hochladen ist das Gleiche wie 'veröffentlichen' zu jedem Thema. Über TLS wird MQTT nicht unterstützt.POP3 (S):Das Herunterladen über einen Pop3-Server bedeutet den Empfang von E-Mails ohne oder mit TLS.RTMP (S):Das RTMP oder Realtime Messaging Protocol wird hauptsächlich für Server-Streaming-Medien verwendet.RTSP:Curl unterstützt die 1.0-Downloads von RTSP.SCP:Curl unterstützt die Zwei-SCP-Übertragungsversion von SCP.SFTP:Curl unterstützt SFTP über die 2-Version von SSH.KMU (S):Curl unterstützt die 1. Version von SMB zum Herunterladen und Hochladen.SMTP (S):Das Hochladen von Inhalten auf einen beliebigen SMTP-Server bedeutet die Übertragung einer E-Mail ohne oder mit TLS.TELNET:Durch die Anweisung von Curl, eine Telnet-URL bereitzustellen, wird eine interaktive Sitzung gestartet, in der das Gelesene über stdin übertragen wird und das Ergebnis vom Server übertragen wird.TFTP:Curl kann TFTP-Uploads und -Downloads implementieren.

Installation des Curl-Befehls

Der Curl-Befehl ist in den meisten enthalten Linux Verteilungen. Aber wenn das System die Locke nicht standardmäßig trägt. Sie müssen es manuell installieren. Um den Curl zu installieren, führen Sie die folgenden Befehle aus:

Aktualisieren Sie das System, indem Sie die folgenden Befehle ausführen:

 sudo apt update sudo apt upgrade 

Installieren Sie nun das Curl-Dienstprogramm, indem Sie den folgenden Befehl ausführen:

 sudo apt install curl 

Überprüfen Sie die Installation, indem Sie den folgenden Befehl ausführen:

 curl -version 

Der obige Befehl zeigt die installierte Version des Curl-Befehls an.

Rufen Sie den Inhalt der angegebenen URL ab

Um den Inhalt einer bestimmten URL abzurufen, führen Sie den Befehl „curl“ gefolgt von der URL aus. Betrachten Sie den folgenden Befehl:

 curl https://www.javatpoint.com/linux-tutorial 

Der obige Befehl ruft die Seitendaten der angegebenen Seite ab. Betrachten Sie den folgenden Ausschnitt der Ausgabe:

Linux Curl-Befehl

Aus der obigen Ausgabe können wir sehen, dass die Seitendaten der angegebenen URL abgerufen werden. Um die Ausführung zu stoppen, drücken Sie die Tasten STRG+C.

Speichern Sie Daten in einer bestimmten Datei

Um die Daten in einer bestimmten Datei zu speichern, übergeben Sie die Option „-o“, gefolgt von Verzeichnis, Dateiname und URL wie folgt:

 curl -o / 

Betrachten Sie den folgenden Befehl:

 curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial 

Der obige Befehl speichert die Seitendaten in der Datei „linux.html“ im Verzeichnis „/home/javatpoint/Documents/“. Betrachten Sie die folgende Ausgabe:

Linux Curl-Befehl

Mit dem obigen Befehl können wir die Gesamtmenge der heruntergeladenen Daten, die empfangenen Daten, die durchschnittliche Zeit und einige andere Statistiken zu den Daten sehen.

Um die heruntergeladenen Daten zu überprüfen, öffnen Sie die Datei, indem Sie den Befehl cat ausführen

 cd Documents cat linux.html 

Betrachten Sie den folgenden Ausschnitt der Ausgabe:

Linux Curl-Befehl

Laden Sie eine Datei aus dem Internet herunter

Eine der interessanten und faszinierenden Anwendungen von Curl besteht darin, dass wir eine Datei aus dem Internet herunterladen können. Um eine Datei aus dem Internet herunterzuladen, kopieren Sie den Download-Link und fügen Sie ihn mit dem Befehl „curl“ ein. Wir können auch andere Argumente übergeben, um es spezifischer zu machen. Laden Sie beispielsweise die neueste Version von Ubuntu herunter und kopieren Sie die Download-Link Laden Sie Ubuntu von der offiziellen Website herunter und fügen Sie es mit dem Curl-Befehl wie folgt ein:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

Der obige Befehl lädt Ubuntu 20.04 in das angegebene Verzeichnis herunter. Geben Sie die richtige Dateierweiterung an. Andernfalls wird die Datei in einem anderen Format heruntergeladen. Betrachten Sie die folgende Ausgabe:

Linux Curl-Befehl

Aus der obigen Ausgabe wird die Datei ubuntu.iso heruntergeladen. Wir können die Downloadzeit, Dateigröße, Downloadgeschwindigkeit und andere Statistiken sehen. Um die Ausführung zu stoppen, drücken Sie jederzeit die Tasten STRG+D.

Setzen Sie die unterbrochenen Downloads fort

Es besteht die Möglichkeit, dass die Downloads aus irgendeinem Grund unterbrochen werden. Mit dem Befehl „curl“ können wir den Download fortsetzen. Um die unterbrochene Datei fortzusetzen, übergeben Sie die Option „-C“ mit dem Befehl „curl“ wie folgt:

 curl -C 

Der obige Befehl setzt den Download der angegebenen URL fort.

Laden Sie mehrere Dateien herunter

Um mehrere Dateien herunterzuladen, geben Sie die mehreren URLs durch Leerzeichen getrennt wie folgt an:

 curl -O 

Der obige Befehl lädt die Daten jeweils von beiden URLs herunter.

HTTP-Header abfragen

Die HTTP-Header enthalten zusätzliche Informationen; Dadurch kann der Webserver diese Informationen herunterladen. Um die HTTP-Header von einer Website abzufragen, führen Sie den Befehl mit der Option „-I“ wie folgt aus:

 curl -I www.javatpoint.com 

Der obige Befehl erzeugt die folgende Ausgabe:

Linux Curl-Befehl