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

15 praktische Beispiele für cURL-Befehle unter Linux (cURL-Download-Beispiele)

cURL ist ein Softwarepaket, das aus einem Befehlszeilentool und einer Bibliothek zum Übertragen von Daten mit URL-Syntax besteht.

cURL unterstützt verschiedene Protokolle wie DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet und TFTP.

Dieser Artikel enthält 15 praktische cURL-Nutzungsbeispiele.

1. Laden Sie eine einzelne Datei herunter

Der folgende Befehl ruft den Inhalt der URL ab und zeigt ihn in STDOUT (d. h. auf Ihrem Terminal) an.

$ curl http://www.centos.org

Um die Ausgabe in einer Datei zu speichern, leiten Sie sie wie unten gezeigt um. Dadurch werden auch einige zusätzliche Download-Statistiken angezeigt.

$ curl http://www.centos.org > centos-org.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 27329    0 27329    0     0   104k      0 --:--:-- --:--:-- --:--:--  167k

2. Speichern Sie die cURL-Ausgabe in einer Datei

Wir können das Ergebnis des curl-Befehls in einer Datei speichern, indem wir die Optionen -o/-O verwenden.

  • -o (kleines o) das Ergebnis wird unter dem in der Kommandozeile angegebenen Dateinamen gespeichert
  • -O (großes O) der Dateiname in der URL wird genommen und als Dateiname zum Speichern des Ergebnisses verwendet
$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

Nun wird die Seite gettext.html in der Datei „mygettext.html“ gespeichert. Sie können auch beachten, dass beim Ausführen von curl mit der Option -o die Fortschrittsanzeige für den Download wie folgt angezeigt wird.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 66 1215k   66  805k    0     0  33060      0  0:00:37  0:00:24  0:00:13 45900
100 1215k  100 1215k    0     0  39474      0  0:00:31  0:00:31 --:--:-- 68987

Wenn Sie curl -O (großes O) verwenden, wird der Inhalt in der Datei mit dem Namen „gettext.html“ selbst auf dem lokalen Computer gespeichert.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Hinweis:Wenn curl die Daten auf das Terminal schreiben muss, deaktiviert es die Fortschrittsanzeige, um Verwirrung beim Drucken zu vermeiden. Wir können die Optionen '>'|'-o'|'-O' verwenden, um das Ergebnis in eine Datei zu verschieben.

Ähnlich wie bei cURL können Sie auch wget verwenden, um Dateien herunterzuladen. Sehen Sie sich die wget-Beispiele an, um zu verstehen, wie man wget effektiv verwendet.

3. Mehrere Dateien gleichzeitig abrufen

Wir können mehrere Dateien auf einmal herunterladen, indem wir die URLs in der Befehlszeile angeben.
Syntax:

$ curl -O URL1 -O URL2

Der folgende Befehl lädt sowohl index.html als auch gettext.html herunter und speichert sie unter demselben Namen im aktuellen Verzeichnis.

$ curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html

Bitte beachten Sie, dass curl versucht, die Verbindung wiederzuverwenden, wenn wir wie oben gezeigt mehrere Dateien von demselben Server herunterladen.

4. Folgen Sie HTTP-Location-Headern mit der Option -L

Standardmäßig folgt CURL nicht den HTTP-Location-Headern. Es wird auch als Weiterleitung bezeichnet. Wenn eine angeforderte Webseite an einen anderen Ort verschoben wird, wird als Antwort ein HTTP-Location-Header gesendet, der enthält, wo sich die eigentliche Webseite befindet.

Wenn beispielsweise jemand aus Indien google.com in den Browser eingibt, wird er automatisch zu „google.co.in“ weitergeleitet. Dies geschieht basierend auf dem HTTP-Location-Header, wie unten gezeigt.

$ curl http://www.google.com

<TITLE>302 Moved</TITLE>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/">here</A>

Die obige Ausgabe besagt, dass das angeforderte Dokument nach „http://www.google.co.in/“ verschoben wurde.

Wir können darauf bestehen, dass curl der Umleitung mit der Option -L folgt, wie unten gezeigt. Jetzt wird der HTML-Quellcode von google.co.in heruntergeladen.

$ curl -L http://www.google.com

5. Einen vorherigen Download fortsetzen/fortsetzen

Mit der Option curl -C können Sie einen Download fortsetzen, der bereits aus irgendeinem Grund gestoppt wurde. Dies ist hilfreich, wenn Sie große Dateien herunterladen und der Download unterbrochen wurde.

Wenn wir „-C -“ sagen, findet curl heraus, wo der Download fortgesetzt werden soll. Wir können auch einen Offset ‚-C ‘ angeben. Die angegebenen Offset-Bytes werden für die Quelldatei von Anfang an übersprungen.

Starten Sie einen großen Download mit Curl und drücken Sie Strg-C, um ihn zwischen den Downloads zu stoppen.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
##############             20.1%

Hinweis:-# wird verwendet, um einen Fortschrittsbalken anstelle eines Fortschrittsmessers anzuzeigen.

Jetzt wurde der obige Download bei 20,1 % gestoppt. Mit „curl -C -“ können wir den Download dort fortsetzen, wo er zuvor aufgehört hat. Jetzt wird der Download ab 20,1 % fortgesetzt.

curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
###############            21.1%

6. Begrenzen Sie die Datenübertragungsrate

Sie können die Menge, mit der die Daten übertragen werden, mit der Option –limit-rate begrenzen. Als Argument kann die maximale Übertragungsrate angegeben werden.

$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

Der obige Befehl begrenzt die Datenübertragung auf 1000 Bytes/Sekunde. curl kann für kurze Zeit eine höhere Übertragungsrate verwenden. Aber im Durchschnitt werden es 1000B/Sekunde sein.

Das Folgende war die Fortschrittsanzeige für den obigen Befehl. Sie können sehen, dass die aktuelle Geschwindigkeit nahe an den 1000 Bytes liegt.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  1 1215k    1 13601    0     0    957      0  0:21:40  0:00:14  0:21:26   999
  1 1215k    1 14601    0     0    960      0  0:21:36  0:00:15  0:21:21   999
  1 1215k    1 15601    0     0    962      0  0:21:34  0:00:16  0:21:18   999

7. Laden Sie eine Datei nur herunter, wenn sie vor/nach der angegebenen Zeit geändert wurde

Wir können die Dateien, die nach einer bestimmten Zeit geändert wurden, mit der Option -z in curl abrufen. Dies funktioniert sowohl für FTP als auch für HTTP.

$ curl -z 21-Dec-11 http://www.example.com/yy.html

Der obige Befehl lädt die Datei yy.html nur herunter, wenn sie nach dem angegebenen Datum und der angegebenen Uhrzeit geändert wird

$ curl -z -21-Dec-11 http://www.example.com/yy.html

Der obige Befehl lädt die Datei yy.html herunter, wenn sie vor dem angegebenen Datum und der angegebenen Uhrzeit geändert wird.

Bitte beziehen Sie sich auf „man curl_getdate“ für die verschiedenen Syntaxen, die für den Datumsausdruck unterstützt werden

8. Übergeben Sie die HTTP-Authentifizierung in cURL

Manchmal benötigen Websites einen Benutzernamen und ein Passwort, um den Inhalt anzuzeigen (kann mit einer .htaccess-Datei durchgeführt werden). Mit Hilfe der Option -u können wir diese Anmeldeinformationen wie unten gezeigt von cURL an den Webserver weitergeben.

$ curl -u username:password URL

Hinweis:Standardmäßig verwendet curl die grundlegende HTTP-Authentifizierung. Wir können eine andere Authentifizierungsmethode mit –ntlm | angeben –verdauen.

9. Dateien vom FTP-Server herunterladen

cURL kann auch verwendet werden, um Dateien von FTP-Servern herunterzuladen. Wenn der angegebene FTP-Pfad ein Verzeichnis ist, werden standardmäßig die Dateien unter dem spezifischen Verzeichnis aufgelistet.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

Der obige Befehl lädt die xss.php-Datei vom FTP-Server herunter und speichert sie im lokalen Verzeichnis.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Hier verweist die angegebene URL auf ein Verzeichnis. cURL listet also alle Dateien und Verzeichnisse unter der angegebenen URL

auf

Wenn Sie neu bei FTP/sFTP sind, lesen Sie das FTP-SFTP-Tutorial für Anfänger.

10. Auflisten/Herunterladen mit Bereichen

cURL unterstützt die Angabe von Bereichen in der URL. Wenn ein Bereich angegeben wird, werden Dateien heruntergeladen, die innerhalb des Bereichs liegen. Es ist hilfreich, Pakete von den FTP-Mirror-Sites herunterzuladen.

$ curl   ftp://ftp.uk.debian.org/debian/pool/main/[a-z]/

Der obige Befehl listet alle Pakete aus a-z-Bereichen im Terminal auf.

11. Dateien auf den FTP-Server hochladen

Curl kann auch verwendet werden, um Dateien mit der Option -T auf den FTP-Server hochzuladen.

$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

Der obige Befehl lädt die Datei namens myfile.txt auf den FTP-Server hoch. Sie können auch mehrere Dateien gleichzeitig hochladen, indem Sie die Bereichsoperationen verwenden.

$ curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

Optional können wir „.“ verwenden. um die Eingabe von STDIN zu erhalten und auf die Fernbedienung zu übertragen.

$ curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Der obige Befehl holt die Eingabe des Benutzers aus der Standardeingabe und speichert den Inhalt auf dem FTP-Server unter dem Namen „myfile_1.txt“.

Sie können für jede URL ein „-T“ angeben und das Paar gibt an, was wo hochgeladen werden soll.

12. Weitere Informationen mit der Verbose-and-Trace-Option

Mit der Option -v erfahren Sie, was passiert. -v Option aktiviert den ausführlichen Modus und es werden die Details gedruckt

curl -v http://google.co.in

Der about-Befehl gibt Folgendes aus

* About to connect() to www.google.co.in port 80 (#0)
*   Trying 74.125.236.56... connected
* Connected to www.google.co.in (74.125.236.56) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.0 (i486-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
> Host: www.google.co.in
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Tue, 10 Apr 2012 11:18:39 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< Set-Cookie: PREF=ID=7c497a6b15cc092d:FF=0:TM=1334056719:LM=1334056719:S=UORpBwxFmTRkbXLj; expires=Thu, 10-Apr-2014 11:18:39 GMT; path=/; domain=.google.co.in
.
.

Wenn Sie detailliertere Informationen benötigen, können Sie die Option –trace verwenden. Die Trace-Option ermöglicht einen vollständigen Trace-Dump aller eingehenden/ausgehenden Daten in die angegebene Datei

=> Send header, 169 bytes (0xa9)
0000: 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HTTP/1.1..
0010: 55 73 65 72 2d 41 67 65 6e 74 3a 20 63 75 72 6c User-Agent: curl
..
0060: 2e 32 2e 33 2e 34 20 6c 69 62 69 64 6e 2f 31 2e .2.3.4 libidn/1.
0070: 31 35 20 6c 69 62 73 73 68 32 2f 31 2e 32 2e 36 15 libssh2/1.2.6
0080: 0d 0a 48 6f 73 74 3a 20 77 77 77 2e 67 6f 6f 67 ..Host: www.goog
0090: 6c 65 2e 63 6f 2e 69 6e 0d 0a 41 63 63 65 70 74 le.co.in..Accept
00a0: 3a 20 2a 2f 2a 0d 0a 0d 0a                      : */*....
== Info: HTTP 1.0, assume close after body
<= Recv header, 17 bytes (0x11)
0000: 48 54 54 50 2f 31 2e 30 20 32 30 30 20 4f 4b 0d HTTP/1.0 200 OK.
0010: 0a

Diese Verbose-and-Trace-Option ist praktisch, wenn curl aus irgendeinem Grund fehlschlägt und wir nicht wissen, warum.

13. Erhalten Sie die Definition eines Wortes mit dem DICT-Protokoll

Sie können cURL verwenden, um die Definition für ein Wort mit Hilfe des DICT-Protokolls zu erhalten. Wir müssen ihm eine Wörterbuchserver-URL übergeben.

$ curl dict://dict.org/d:bash

Der obige Befehl listet die Bedeutung für bash wie folgt auf

151 "Bash" gcide "The Collaborative International Dictionary of English v.0.48"
Bash \Bash\, v. t. [imp. & p. p. {Bashed}; p. pr. & vb. n.
   {Bashing}.] [Perh. of imitative origin; or cf. Dan. baske to
   strike, bask a blow, Sw. basa to beat, bas a beating.]
   To strike heavily; to beat; to crush. [Prov. Eng. & Scot.]
   --Hall Caine.
   [1913 Webster]

         Bash her open with a rock.               --Kipling.
   [Webster 1913 Suppl.]
.
151 "Bash" gcide "The Collaborative International Dictionary of English v.0.48"
Bash \Bash\, n.
   1. a forceful blow, especially one that does damage to its
      target.
      [PJC]
.
.

Jetzt können Sie sehen, dass es „The Collaborative International Dictionary of English“ verwendet. Es stehen viele Wörterbücher zur Verfügung. Wir können alle Wörterbücher mit

auflisten
$ curl dict://dict.org/show:db

jargon "The Jargon File (version 4.4.7, 29 Dec 2003)"
foldoc "The Free On-line Dictionary of Computing (26 July 2010)"
easton "Easton's 1897 Bible Dictionary"
hitchcock "Hitchcock's Bible Names Dictionary (late 1800's)"
bouvier "Bouvier's Law Dictionary, Revised 6th Ed (1856)"

Um nun die tatsächliche Bedeutung von Bash im Computer zu finden, können wir wie folgt im „Foldoc“-Wörterbuch nach Bash suchen

$ curl dict://dict.org/d:bash:foldoc

Das Ergebnis ist,

bash

   Bourne Again SHell.  {GNU}'s {command interpreter} for {Unix}.
   Bash is a {Posix}-compatible {shell} with full {Bourne shell}
   syntax, and some {C shell} commands built in.  The Bourne
   Again Shell supports {Emacs}-style command-line editing, job
   control, functions, and on-line help.  Written by Brian Fox of
   {UCSB}.

Weitere Einzelheiten zu DICT finden Sie in RFC2229

14. Proxy zum Herunterladen einer Datei verwenden

Wir können cURL angeben, um den Proxy zu verwenden, um die spezifische Operation mit der Option -x auszuführen. Wir müssen den Host und den Port des Proxys angeben.

$ curl -x proxysever.test.com:3128 http://google.co.in

15. Senden Sie E-Mails mit dem SMTP-Protokoll

cURL kann auch zum Versenden von E-Mails über das SMTP-Protokoll verwendet werden. Sie sollten die Absenderadresse, die Zieladresse und die IP-Adresse des Mailservers wie unten gezeigt angeben.

$ curl --mail-from [email protected] --mail-rcpt [email protected] smtp://mailserver.com

Sobald der obige Befehl eingegeben wurde, wartet er darauf, dass der Benutzer die Daten per E-Mail bereitstellt. Nachdem Sie Ihre Nachricht verfasst haben, geben Sie ein. (Punkt) als letzte Zeile, die die E-Mail sofort versendet.

Subject: Testing
This is a test mail
.

Linux
  1. Beispiele für Linux-Curl-Befehle – Teil 2

  2. cp-Befehl unter Linux:7 praktische Beispiele

  3. Linux-Shutdown-Befehl:5 praktische Beispiele

  4. 5 praktische Beispiele des dd-Befehls unter Linux

  5. 10 praktische Beispiele für Linux-nm-Befehle

12 praktische Beispiele für In Command unter Linux

Die 50 praktischen Beispiele des SED-Befehls in Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Echo-Befehl unter Linux:7 praktische Beispiele

Praktischer Ping-Befehl in Linux-Beispielen