In diesem Artikel haben wir Tipps zur Verwendung des Curl-Befehls unter Linux erklärt.
Der curl-Befehl überträgt Daten zu oder von einem Netzwerkserver unter Verwendung eines der unterstützten Protokolle. Da cURL libcurl verwendet, unterstützt es eine Reihe gängiger Netzwerkprotokolle, derzeit einschließlich HTTP,[10][14] HTTPS, SOAP-Anfragen.
Fangen wir an und lernen Curl-Befehle.
1. Curl-Version ansehen
Die Optionen -V oder --version geben nicht nur die Version zurück, sondern auch die unterstützten Protokolle und Funktionen in Ihrer 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
Protokolle: 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 unter demselben Namen wie am entfernten Standort, während letzteres Ihnen die Angabe eines anderen Dateinamens und/oder Standorts ermöglicht.
$ 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 ganz einfach fortsetzen. Die Verwendung von -C – (Strich C, Leerzeichen) weist curl an, den Download dort fortzusetzen, wo er aufgehört hat.
$ curl -C - -O http://yourdomain.com/yourfile.tar.gz
4. Mehrere Dateien herunterladen
Mit dem folgenden Befehl laden Sie info.html und about.html auf einmal von http://yoursite.com bzw. http://mysite.com 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 <>
6. Verwenden Sie einen Proxy mit oder ohne Authentifizierung
Wenn Sie sich hinter einem Proxyserver befinden, der auf 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
wobei 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 Kunde Details zur Bearbeitung der Anfrage.
Um die HTTP-Header von einer Website abzufragen, gehen Sie wie folgt vor:
# curl -I www.rootadminz.com
8. Stellen Sie eine POST-Anfrage mit Parameters
Der folgende Befehl sendet die Parameter firstName und lastName zusammen mit ihren entsprechenden Werten an https://ihredomain.com/info.php.
# curl --data "firstName=John&lastName=Doe' https://yourdomain.com/info.php
Mit diesem Tipp können Sie das Verhalten eines normalen HTML-Formulars simulieren.
9. Herunterladen von Dateien von einem FTP-Server mit oder ohne Authentifizierung
Wenn ein entfernter FTP-Server Verbindungen unter ftp://yourftpserver erwartet, lädt der folgende Befehl yourfile.tar.gz in das aktuelle Arbeitsverzeichnis herunter.
# curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz
wobei Sie -u Benutzername:Passwort überspringen können, wenn der FTP-Server anonyme Anmeldungen zulässt.
10. Dateien mit oder ohne Authentifizierung auf einen FTP-Server hochladen
Um eine lokale Datei namens mylocalfile.tar.gz mit curl auf ftp://yourftpserver hochzuladen, gehen Sie wie folgt vor:
# curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver
11. Benutzeragenten angeben
Der Benutzeragent ist Teil der Informationen, die zusammen mit einer HTTP-Anfrage gesendet werden. Dies gibt an, mit welchem Browser der Client die Anfrage gestellt hat. Sehen wir uns an, was unsere aktuelle curl-Version als Standard verwendet, und ändern wir es 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 cat-Befehl 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 bei nachfolgenden Anfragen an dieselbe Site verwenden.
# curl --cookie cnncookies.txt https://www.cnn.com
14. Namensauflösung ändern
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 zu Ihrem localhost auflösen lassen:
# curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Daher weist die Abfrage an http://www.yourdomain.com curl an, die Site von localhost anzufordern, anstatt DNS oder die Datei /etc/hosts zu verwenden.
15. Download-Rate begrenzen
Um zu verhindern, dass curl Ihre Bandbreite mit einem Schlauch belegt, können Sie die Download-Rate wie folgt auf 100 KB/s begrenzen.
# curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Heute haben wir gelernt, was Curl ist und wie man den Curl-Befehl unter Linux verwendet.