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

Linux Curl Command Tutorial für Anfänger (5 Beispiele)

Während Webbrowser das primäre Medium sind, über das Benutzer Inhalte aus dem Internet herunterladen, gibt es einige Linux-Befehle, mit denen Sie dies auch tun können. Diese Tools sind auf Headless-Systemen praktisch, auf denen es keine GUI gibt.

In diesem Tutorial werden wir einen solchen Befehl besprechen - curl - mit dem Sie unter anderem Sachen aus dem Internet herunterladen können. Bitte beachten Sie, dass die in diesem Artikel behandelten Beispiele auf Ubuntu 16.04 LTS getestet wurden.

Linux-Curl-Befehl

Mit dem Curl-Befehl können Sie Daten über die Befehlszeile in Linux sowohl herunterladen als auch hochladen. Es folgt die Syntax:

curl [options] [URL...]

Und hier ist, was die Manpage über diesen Befehl sagt:

 curl is a tool to transfer data from or to a server, using one of the
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET and TFTP). The command is designed to work without user inter?
action.

curl offers a busload of useful tricks like proxy support, user authen?
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?
fer resume, Metalink, and more. As you will see below, the number of
features will make your head spin!

curl is powered by libcurl for all transfer-related features. See
libcurl(3) for details.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie Curl funktioniert.

Q1. Wie funktioniert der Curl-Befehl?

Die grundlegende Verwendung ist ziemlich einfach - übergeben Sie einfach die URL als Eingabe an den Curl-Befehl und leiten Sie die Ausgabe in eine Datei um.

Zum Beispiel:

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent > test.torrent

Beachten Sie, dass Sie hier auch die Option -o verwenden können.

-o, --output <file>
Write output to <file> instead of stdout.

Um auf unser Beispiel zurückzukommen:Während die Daten in die Datei „test.torrent“ auf meinem System heruntergeladen wurden, wurde die folgende Ausgabe auf der Befehlszeile erzeugt:

Hier ist, was die Manpage über diese Fortschrittsanzeige sagt, die in der Ausgabe angezeigt wird:

 curl normally displays a progress meter during operations, indicating
the amount of transferred data, transfer speeds and estimated time
left, etc.

curl displays this data to the terminal by default, so if you invoke
curl to do an operation and it is about to write data to the terminal,
it disables the progress meter as otherwise it would mess up the output
mixing progress meter and response data.

If you want a progress meter for HTTP POST or PUT requests, you need to
redirect the response output to a file, using shell redirect (>), -o
[file] or similar.

It is not the same case for FTP upload as that operation does not spit
out any response data to the terminal.

If you prefer a progress "bar" instead of the regular meter, -# is your
friend.

Q2. Wie kann man Curl dazu bringen, den gleichen Download-Dateinamen zu verwenden?

Im vorherigen Beispiel mussten wir den heruntergeladenen Dateinamen explizit angeben. Wenn Sie möchten, können Sie jedoch curl zwingen, den Namen der heruntergeladenen Datei als lokalen Dateinamen zu verwenden. Dies kann mit der Befehlszeilenoption -O erfolgen.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

In diesem Fall wurde also eine Datei mit dem Namen „ubuntu-18.04-desktop-amd64.iso.torrent“ in der Ausgabe auf meinem System erzeugt.

Q3. Wie lade ich mehrere Dateien mit Curl herunter?

Auch das ist nicht kompliziert - übergeben Sie die URLs einfach auf folgende Weise:

curl -O [URL1] -O [URL2] -O [URL3] ...

Zum Beispiel:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent

Hier ist der obige Befehl in Aktion:

So können Sie sehen, dass der Download-Fortschritt für beide URLs in der Ausgabe angezeigt wurde.

Q4. Wie behebt man das „Verschieben“-Problem?

Wenn Sie eine URL an den Curl-Befehl übergeben, erhalten Sie manchmal Fehler wie „Moved“ oder „Moved Permanently“. Dies geschieht normalerweise, wenn die Eingabe-URL auf eine andere URL umleitet. Wenn Sie beispielsweise eine Website namens oneplus.com öffnen und diese zu einer URL für Ihr Heimatland weiterleitet (z. B. oneplus.in), erhalten Sie eine Fehlermeldung wie die folgende:

Wenn Sie möchten, dass curl der Umleitung folgt, verwenden Sie stattdessen die Befehlszeilenoption -L.

curl -L http://www.oneplus.com

F5. Wie setze ich einen Download ab dem Punkt der Unterbrechung fort?

Manchmal wird ein Download zwischendurch unterbrochen. Also natürlich, um Zeit und Daten zu sparen, wenn Sie es erneut versuchen. Sie möchten vielleicht, dass es an dem Punkt beginnt, an dem es unterbrochen wurde. Curl ermöglicht Ihnen dies mit der Befehlszeilenoption -C.

Zum Beispiel:

 curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

Der folgende Screenshot zeigt den Curl-Befehl, der den Download fortsetzt, nachdem er unterbrochen wurde.

Schlussfolgerung

Sie können also sehen, dass der Curl-Befehl ein nützliches Dienstprogramm ist, wenn Sie Dinge über die Befehlszeile herunterladen möchten. Wir haben hier nur an der Oberfläche gekratzt, da das Tool viel mehr Funktionen bietet. Sobald Sie mit dem Üben der in diesem Tutorial besprochenen Befehlszeilenoptionen fertig sind, können Sie zur Curl-Handbuchseite gehen, um mehr darüber zu erfahren.


Linux
  1. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  2. Linux-Kommando-Tutorial für Anfänger (5 Beispiele)

  3. Linux-df-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Linux Date Command Tutorial für Anfänger (8 Beispiele)

  5. Linux-Hostname-Befehls-Tutorial für Anfänger (5 Beispiele)

Linux Who Command Tutorial für Anfänger (8 Beispiele)

Linux nl Command Tutorial für Anfänger (7 Beispiele)

Linux-nm-Befehls-Tutorial für Anfänger (10 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)