15 Tipps zur Verwendung des Befehls "curl" unter Linux
Mitte der 1990er Jahre, als das Internet noch in den Kinderschuhen steckte, startete ein schwedischer Programmierer namens Daniel Stenberg ein Projekt, das sich schließlich zu dem entwickelte, was wir heute als Curl kennen.
Ursprünglich zielte er darauf ab, einen Bot zu entwickeln, der regelmäßig Wechselkurse von einer Webseite herunterlädt und IRC-Benutzern den Gegenwert in schwedischen Kronen in US-Dollar zur Verfügung stellt.
Lange Rede, kurzer Sinn: Das Projekt florierte und fügte im Laufe der Zeit mehrere Protokolle und Funktionen hinzu – und der Rest ist Geschichte. Lassen Sie uns nun mit beiden Füßen eintauchen und lernen, wie Sie curl verwenden, um Daten und mehr unter Linux zu übertragen!
Wir haben die folgende Liste mit 15 curl-Befehlen für Sie zusammengestellt.
1. Lockenversion anzeigen
Die Optionen -V oder --version geben nicht nur die Version zurück, sondern auch die unterstützten Protokolle und Funktionen in der aktuellen Version.
$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
2. Laden Sie eine Datei herunter
Wenn Sie eine Datei herunterladen möchten, können Sie curl mit den Optionen -O oder -O verwenden. Ersteres speichert die Datei im aktuellen Arbeitsverzeichnis mit dem gleichen Namen wie am Remote-Speicherort, während letzteres es Ihnen ermöglicht, einen anderen Dateinamen und/oder Speicherort anzugeben.
$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz
3. Setzen Sie einen unterbrochenen Download fort
Wenn ein Download aus irgendeinem Grund unterbrochen wurde (z. B. mit Strg + c), können Sie ihn sehr einfach fortsetzen. Die Verwendung von -C – (Bindestrich C, Leerzeichen) weist curl an, den Download dort fortzusetzen, wo er aufgehört hat.
$ curl -C - -O http://yourdomain.com/yourfile.tar.gz
4. Laden Sie mehrere Dateien herunter
Mit dem folgenden Befehl laden Sie info.html und about.html von http://yoursite.com bzw. http://mysite.com auf einmal herunter.
$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html
5. URLs aus einer Datei herunterladen
Wenn Sie curl mit xargs kombinieren, können Sie Dateien aus einer Liste von URLs in einer Datei herunterladen.
$ xargs -n 1 curl -O < listurls.txt
6. Verwenden Sie einen Proxy mit oder ohne Authentifizierung
Wenn Sie sich hinter einem Proxyserver befinden, der an Port 8080 bei proxy.yourdomain.com lauscht, tun Sie dies.
$ curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz
wo Sie -U user:password überspringen können, wenn Ihr Proxy keine Authentifizierung erfordert.
7. HTTP-Header abfragen
HTTP-Header ermöglichen es dem Remote-Webserver, zusammen mit der eigentlichen Anfrage zusätzliche Informationen über sich selbst zu senden. Dadurch erhält der Client Details darüber, wie die Anforderung verarbeitet wird.
Um die HTTP-Header von einer Website abzufragen, gehen Sie wie folgt vor:
$ curl -I linux-console.net
Diese Informationen sind auch in den Entwicklertools Ihres Browsers verfügbar.
8. Stellen Sie eine POST-Anfrage mit Parametern
Mit dem folgenden Befehl werden die Parameter firstName und lastName zusammen mit den entsprechenden Werten an https://yourdomain.com/info.php gesendet.
$ curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php
Sie können diesen Tipp verwenden, um das Verhalten eines regulären HTML-Formulars zu simulieren.
9. Laden Sie Dateien von einem FTP-Server mit oder ohne Authentifizierung herunter
Wenn ein Remote-FTP-Server Verbindungen bei ftp://yourftpserver erwartet, lädt der folgende Befehl yourfile.tar.gz im aktuellen Arbeitsverzeichnis herunter.
$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz
wo Sie -u username:password überspringen können, wenn der FTP-Server anonyme Anmeldungen zulässt.
10. Laden Sie Dateien auf einen FTP-Server mit oder ohne Authentifizierung hoch
Gehen Sie folgendermaßen vor, um eine lokale Datei mit dem Namen mylocalfile.tar.gz mit curl in ftp://yourftpserver hochzuladen:
$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver
11. Benutzeragenten angeben
Der Benutzeragent ist Teil der Informationen, die zusammen mit einer HTTP-Anforderung gesendet werden. Dies gibt an, welchen Browser der Client verwendet hat, um die Anforderung zu stellen. Schauen wir uns an, was unsere aktuelle Curl-Version standardmäßig verwendet, und ändern wir sie später in "Ich bin ein neuer Webbrowser":
$ curl -I http://localhost --user-agent "I am a new web browser"
12. Website-Cookies speichern
Möchten Sie sehen, welche Cookies auf Ihren Computer heruntergeladen werden, wenn Sie zu https://www.cnn.com navigieren? Verwenden Sie den folgenden Befehl, um sie in cnncookies.txt zu speichern. Sie können dann den Befehl cat verwenden, um die Datei anzuzeigen.
$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O
13. Website-Cookies senden
Sie können die im letzten Tipp abgerufenen Cookies in nachfolgenden Anfragen an dieselbe Website verwenden.
$ curl --cookie cnncookies.txt https://www.cnn.com
14. Ändern Sie die Namensauflösung
Wenn Sie ein Webentwickler sind und eine lokale Version von yourdomain.com testen möchten, bevor Sie sie live schalten, können Sie curl http://www.yourdomain.com Ihrem localhost wie folgt auflösen:
$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Daher wird die Abfrage an http://www.yourdomain.com curl anweisen, die Site von localhost anzufordern, anstatt DNS oder die Datei /etc/hosts zu verwenden.
15. Begrenzen Sie die Download-Rate
Um zu verhindern, dass curl Ihre Bandbreite belastet, können Sie die Downloadrate wie folgt auf 100 KB/s begrenzen.
$ curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Zusammenfassung
In diesem Artikel haben wir eine kurze Geschichte der Ursprünge von Curl geteilt und anhand von 15 praktischen Beispielen erklärt, wie man es verwendet.
Kennen Sie noch andere curl-Befehle, die wir in diesem Artikel möglicherweise übersehen haben? Fühlen Sie sich frei, sie in den Kommentaren mit unserer Community zu teilen! Wenn Sie Fragen haben, können Sie uns dies gerne mitteilen. Wir freuen uns auf Sie!




