curl
ist ein Befehlszeilendienstprogramm zum Übertragen von Daten von oder zu einem Server, das ohne Benutzerinteraktion funktioniert. Mit curl
, können Sie Daten mit einem der unterstützten Protokolle, einschließlich HTTP, HTTPS, SCP, SFTP und FTP, herunterladen oder hochladen. curl
bietet eine Reihe von Optionen, mit denen Sie Übertragungen fortsetzen, die Bandbreite begrenzen, Proxy-Unterstützung, Benutzerauthentifizierung und vieles mehr.
In diesem Tutorial zeigen wir Ihnen anhand praktischer Beispiele und detaillierter Erklärungen der gängigsten Curl-Optionen, wie Sie das Curl-Tool verwenden.
Installieren von Curl #
Das Curl-Paket ist heute auf den meisten Linux-Distributionen vorinstalliert.
Um zu überprüfen, ob das Curl-Paket auf Ihrem System installiert ist, öffnen Sie Ihre Konsole und geben Sie curl
ein , und drücken Sie die Eingabetaste. Wenn Sie curl
haben installiert ist, druckt das System curl: try 'curl --help' or 'curl --manual' for more information
. Andernfalls sehen Sie so etwas wie curl command not found
.
Wenn curl
nicht installiert ist, können Sie es einfach mit dem Paketmanager Ihrer Distribution installieren.
Installieren Sie Curl unter Ubuntu und Debian #
sudo apt update
sudo apt install curl
Installieren Sie Curl unter CentOS und Fedora #
sudo yum install curl
Verwendung von Curl #
Die Syntax für curl
Befehl lautet wie folgt:
curl [options] [URL...]
In seiner einfachsten Form, wenn es ohne irgendeine Option aufgerufen wird, curl
zeigt die angegebene Ressource in der Standardausgabe an.
Zum Beispiel, um example.com
abzurufen Homepage, die Sie ausführen würden:
curl example.com
Der Befehl gibt den Quellcode von example.com
aus Homepage in Ihrem Terminalfenster.
Wenn kein Protokoll angegeben ist, curl
versucht, das Protokoll zu erraten, das Sie verwenden möchten, und es wird standardmäßig HTTP
verwendet .
Speichere die Ausgabe in einer Datei #
Um das Ergebnis des curl
zu speichern verwenden Sie entweder den Befehl -o
oder -O
Option.
-o
in Kleinbuchstaben speichert die Datei unter einem vordefinierten Dateinamen, der im Beispiel unten vue-v2.6.10.js
lautet :
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
-O
in Großbuchstaben speichert die Datei unter ihrem ursprünglichen Dateinamen:
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Mehrere Dateien herunterladen #
Um mehrere Dateien gleichzeitig herunterzuladen, verwenden Sie mehrere -O
Optionen, gefolgt von der URL zu der Datei, die Sie herunterladen möchten.
Im folgenden Beispiel laden wir die ISO-Dateien von Arch Linux und Debian herunter:
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \
-O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
Einen Download fortsetzen #
Sie können einen Download fortsetzen, indem Sie -C -
verwenden Möglichkeit. Dies ist nützlich, wenn Ihre Verbindung während des Downloads einer großen Datei unterbrochen wird und Sie den Download nicht von vorne beginnen, sondern mit dem vorherigen fortfahren können.
Wenn Sie beispielsweise die ISO-Datei von Ubuntu 18.04 mit dem folgenden Befehl herunterladen:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
und plötzlich Ihre Verbindung abbricht, können Sie den Download fortsetzen mit:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Erhält die HTTP-Header einer URL #
HTTP-Header sind durch Doppelpunkte getrennte Schlüssel-Wert-Paare, die Informationen wie Benutzeragent, Inhaltstyp und Codierung enthalten. Header werden zwischen dem Client und dem Server mit der Anfrage oder der Antwort übergeben.
Verwenden Sie das -I
Option, um nur die HTTP-Header der angegebenen Ressource abzurufen:
curl -I --http2 https://www.ubuntu.com/
Testen Sie, ob eine Website HTTP/2 unterstützt #
Um zu prüfen, ob eine bestimmte URL das neue HTTP/2-Protokoll unterstützt, rufen Sie die HTTP-Header mit -I
ab zusammen mit dem --http2
Möglichkeit:
curl -I --http2 -s https://linuxize.com/ | grep HTTP
Das -s
Option teilt curl
mit um in einem Silent (leise) zu laufen und die Fortschrittsanzeige und Fehlermeldungen zu verbergen.
Wenn der Remote-Server HTTP/2 unterstützt, curl
gibt HTTP/2.0 200
aus :
HTTP/2 200
Andernfalls lautet die Antwort HTTP/1.1 200
:
HTTP/1.1 200 OK
Wenn Sie Curl-Version 7.47.0
haben oder neuer, müssen Sie --http2
nicht verwenden Option, da HTTP/2 standardmäßig für alle HTTPS-Verbindungen aktiviert ist.
Weiterleitungen folgen #
Standardmäßig curl
folgt nicht den HTTP-Location-Headern.
Wenn Sie versuchen, die Nicht-www-Version von google.com
abzurufen , werden Sie feststellen, dass Sie statt der Quelle der Seite zur www-Version umgeleitet werden:
curl google.com
Das -L
Option weist curl
an um einer Umleitung zu folgen, bis sie das endgültige Ziel erreicht:
curl -L google.com
Ändere die User-Agent #
Beim Herunterladen einer Datei kann der Remote-Server manchmal so eingestellt sein, dass er den Curl User-Agent blockiert oder je nach Gerät und Browser des Besuchers unterschiedliche Inhalte zurückgibt.
Um in solchen Situationen einen anderen Browser zu emulieren, verwenden Sie -A
Option.
Um beispielsweise Firefox 60 zu emulieren, würden Sie Folgendes verwenden:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
Geben Sie eine maximale Übertragungsrate # an
Der --limit-rate
Mit dieser Option können Sie die Datenübertragungsrate begrenzen. Der Wert kann in Byte, Kilobyte mit dem k
ausgedrückt werden Suffix, Megabyte mit dem m
Suffix und Gigabyte mit dem g
Suffix.
Im folgenden Beispiel curl
lädt die Go-Binärdatei herunter und begrenzt die Download-Geschwindigkeit auf 1 MB:
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Diese Option ist nützlich, um curl
zu verhindern verbraucht die gesamte verfügbare Bandbreite.
Dateien per FTP übertragen #
Zugriff auf einen geschützten FTP-Server mit curl
verwenden Sie das -u
Option und geben Sie den Benutzernamen und das Passwort wie unten gezeigt ein:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Nach der Anmeldung listet der Befehl alle Dateien und Verzeichnisse im Home-Verzeichnis des Benutzers auf.
Mit der folgenden Syntax können Sie eine einzelne Datei vom FTP-Server herunterladen:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
Um eine Datei auf den FTP-Server hochzuladen, verwenden Sie das -T
gefolgt vom Namen der Datei, die Sie hochladen möchten:
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Cookies senden #
Manchmal müssen Sie möglicherweise eine HTTP-Anforderung mit bestimmten Cookies senden, um auf eine Remote-Ressource zuzugreifen oder ein Problem zu beheben.
Standardmäßig beim Anfordern einer Ressource mit curl
, es werden keine Cookies gesendet oder gespeichert.
Um Cookies an den Server zu senden, verwenden Sie den -b
switch gefolgt von einem Dateinamen, der die Cookies enthält, oder einer Zeichenfolge.
Zum Beispiel, um die Oracle Java JDK RPM-Datei jdk-10.0.2_linux-x64_bin.rpm
herunterzuladen Sie müssen ein Cookie mit dem Namen oraclelicense
übergeben mit dem Wert a
:
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm
Proxys werden verwendet #
curl
unterstützt verschiedene Arten von Proxys, einschließlich HTTP, HTTPS und SOCKS. Um Daten über einen Proxy-Server zu übertragen, verwenden Sie -x
(--proxy
) gefolgt von der Proxy-URL.
Der folgende Befehl lädt die angegebene Ressource mithilfe eines Proxys auf 192.168.44.1
herunter Port 8888
:
curl -x 192.168.44.1:8888 http://linux.com/
Wenn der Proxyserver eine Authentifizierung erfordert, verwenden Sie -U
(--proxy-user
) gefolgt von Benutzername und Passwort, getrennt durch einen Doppelpunkt (user:password
). ):
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
Schlussfolgerung #
curl
ist ein Befehlszeilentool, mit dem Sie Daten von oder zu einem Remote-Host übertragen können. Es ist nützlich, um Probleme zu beheben, Dateien herunterzuladen und mehr.
Die in diesem Tutorial gezeigten Beispiele sind einfach, demonstrieren aber den am häufigsten verwendeten curl
Optionen und sollen Ihnen helfen zu verstehen, wie curl
funktioniert Befehlsarbeit.
Weitere Informationen zu curl
Besuchen Sie die Curl-Dokumentationsseite.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.