GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Curl-Befehl in Linux mit Beispielen

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 updatesudo 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.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Linux Tee-Befehl mit Beispielen

  4. Linux-Kopfbefehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Linux-IP-Befehl mit Beispielen