Eine ausführliche Anleitung, die die Verwendung des curl-Befehls zum Abrufen von Webseiten und zum Herunterladen von Dateien direkt von Ihrem Terminal erklärt
Der Locken
command ist ein weiteres interessantes Befehlszeilen-Dienstprogramm, das Linux Ihnen zu bieten hat. Locken
-Befehl ermöglicht es dem Benutzer, Dateien vom Server abzurufen.
Locken
ist eine beliebte Wahl von Anwendungsentwicklern und häufigen Linux-Benutzern, da sie eine Reihe von Protokollen wie RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP unterstützt. IMAPS, DICT, DATEI, GOPHER, LDAP, LDAPS, POP3, POP3S usw.
Locken
Befehl tut viel mehr, als nur die Webseiten für Sie abzurufen. Wenn Sie die mit diesem Befehl verfügbaren Optionen kennen, können Sie ihn vielseitiger verwenden. Lassen Sie uns in das Tutorial eintauchen, um einen guten Überblick über die Verwendung der Locken
Befehl anhand einiger kurzer Beispiele.
Installation
Vor der Verwendung des Locken
Befehl, überprüfen Sie, ob es bereits auf Ihrem System installiert ist. Verwenden Sie den Befehl curl --version
um zu überprüfen, ob Locken
ist installiert.
Falls Locken
nicht installiert ist, gehen Sie wie folgt vor.
Auf Ubuntu- und Debian-basierten Systemen benutzen:
sudo apt-get update
sudo apt-get install curl
Auf RHEL-, CentOs- und Fedora-Distributionen benutzen:
sudo yum installiere curl
Verwenden Sie jetzt die curl --version
Befehl, um sicherzustellen, dass es richtig installiert ist.
curl --version
Ausgabe:
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30. 0 librtmp/2.3 Release-Datum: 2018-01-24 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 SPSS-GO SSL NTeros NT libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL gaurav@ubuntu:~$
Jetzt sind wir bereit, die Locken
Befehl.
Mit dem CURL-Befehl verfügbare Optionen
Lassen Sie uns zunächst einen Blick auf einige der prominenten Optionen werfen, die mit dem Locken
Befehl.
Möglichkeit | Beschreibung |
-u | um Dateien von einem FTP-Server herunterzuladen |
-C | um einen unterbrochenen Download fortzusetzen |
-Ö | um das Ergebnis der zu speichern Locken Befehl mit einem vordefinierten Dateinamen |
-ICH | um die HTTP-Header einer definierten URL zu erhalten |
-Ö | um das Ergebnis der zu speichern Locken Befehl mit dem ursprünglichen Dateinamen |
--libcurl | um den C-Quellcode auszugeben, der verwendet libcurl für die angegebene Option |
-x | einen Proxy verwenden, um auf die URL zuzugreifen |
-# | um den Fortschrittsbalken anzuzeigen um den Downloadstatus anzuzeigen |
Abrufen einer Webseite mit CURL
Der Locken
Wenn der Befehl ohne Option verwendet wird, ruft er den Inhalt der im Befehl angegebenen URL ab.
Syntax:
locken [URL]
Beispiel:
curl //allthings.how
Ausgabe:
gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) body{height:auto!important}html:not([amp4ads]) body{margin:0!important}body{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:not (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over flow-y:auto!wichtig;Position:absolut!wichtig;oben:0!wichtig;links:0!wichtig;rechts:0!wichtig;unten:0!wichtig;Rand:0!wichtig;Anzeige:Block!wichtig} html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!important}#i-amphtml-wrapper>body{position:relative!important;border-top:1px solid transparent!important}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {padding:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[Abonnements -dialog],body:not(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[update]{display :none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;font-size:16px; z-index:1000;padding:5px}amp-list[anpassbare-kinder]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [fetch-error],amp-list [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[standalone]{min-height:1px !important;display:block!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;width:100%!important}amp-story[standalone]{background- color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([distanz]):not([active]){transform:translateY(1000vh)!important }amp-autocomplete{position:relative!important;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0.33) }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[nodom]{position:fixed!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;visibility:hidden}
Dabei wird der Inhalt der Webseite als Quellcode direkt auf Ihr Endgerät geholt.
Sie können Optionen verwenden -Ö
und -Ö
mit dem Locken
Befehl, um diesen Inhalt in einer Datei zu speichern.
Wann -Ö
Option verwendet wird, wird der Inhalt der URL in Ihrem aktuellen Verzeichnis mit einem benutzerdefinierten Dateinamen gespeichert.
Syntax:
curl -o [benutzerdefinierter_Dateiname] [URL]
Beispiel:
gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamt ausgegebene Geschwindigkeit 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$
In diesem Beispiel wird der Inhalt der URL ‚allthings.how‘ als HTML-Datei namens ath.html in meinem aktuellen Arbeitsverzeichnis gespeichert. Beim Öffnen dieser HTML-Datei werde ich auf die gespeicherte Webseite weitergeleitet.
Herunterladen von Dateien mit dem CURL-Befehl
Verwendung der -Ö
Option mit dem Befehl curl speichert auch den Inhalt oder die Webseite oder ein herunterladbares Paket als Datei, speichert diese Datei jedoch unter ihrem ursprünglichen Namen.
Lassen Sie uns dies an einem Beispiel sehen:
Beispiel:
Hier habe ich die verwendet Locken
Befehl mit -Ö
Option zum Herunterladen eines Ubuntu-Pakets namens ‘Kirschbaum_0.37.6-1.1_all.deb‘ aus dem Ubuntu-Paket-Repository.
gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload-Upload Gesamte ausgegebene linke Geschwindigkeit 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/workspace$
Ausgabe:
trinity@ubuntu:~/workspace$ ls ath.html Cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$
Das Paket wird nun heruntergeladen und unter seinem ursprünglichen Namen im aktuellen Arbeitsverzeichnis (CWD) gespeichert.
Anzeigen eines Fortschrittsbalkens beim Herunterladen einer Datei
Es gibt eine weitere ästhetische Modifikation während der Verwendung des Locken
Befehl zum Herunterladen einer Datei. Sie können den Fortschritt Ihres Dateidownloads in Form eines Fortschrittsbalkens auf Ihrem Terminal anzeigen. Sie müssen nur die anhängen -#
Option mit Ihrem Befehl, um eine Datei herunterzuladen.
Sehen wir uns ein Beispiel für diese Optimierung an.
Syntax:
curl -# -O [URL]
Beispiel:
gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ################################################ ################################################ ################################### 100.0% gaurav@ubuntu:~/workspace$
Ausgabe:
gaurav@ubuntu:~/workspace$ ls ath.html Cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$
In dieser Ausgabe können Sie feststellen, dass ich ein Paket namens ‘emacs-defaults_47.0.tar.xz‘ in meinem CWD und der Fortschrittsbalken wird während des Downloads im Terminal angezeigt.
Fortsetzen des unterbrochenen Downloads in CURL
Oft kann es vorkommen, dass Sie größere Dateien herunterladen müssen. Manchmal kann der Download aufgrund von Gründen wie Stromausfall oder Netzwerkausfall mitten im Prozess abbrechen, ohne die vollständige Datei herunterzuladen. Auch wenn du drückst Strg+C
im Terminal wird der Vorgang abgebrochen.
Der Locken
Befehl bei Verwendung mit dem -C
Option setzt den unterbrochenen Download fort.
Syntax:
curl -C - -O [URL]
Beispiel:
In dieser Abbildung habe ich versucht, das ISO-Image von Ubuntu 20.04 von der Ubuntu-Website herunterzuladen.
gaurav@ubuntu:~/workspace$ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamte ausgegebene Geschwindigkeit links 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C
Hier habe ich den Downloadprozess bewusst abgebrochen um Strg+C
.
Jetzt benutze ich die -C
Option mit der Locken
Befehl, um den unterbrochenen Download von derselben Quellwebsite fortzusetzen.
Ausgabe:
gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974 ** Übertragung wird fortgesetzt von Byte-Position 1851392 % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamte verbleibende Geschwindigkeit 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 98278
Der Download wurde dort abgeholt, wo er abgebrochen wurde.
Herunterladen von Dateien von einem FTP-Server mit CURL
Es ist ganz einfach mit dem Locken
Befehl zum Herunterladen einer Datei vom FTP-Server mit dem -u
Möglichkeit. Sie müssen den Benutzernamen und das Passwort in den Befehl eingeben, bevor Sie die URL eingeben.
Syntax:
curl -u [Benutzername]:[Passwort] [URL]
Für die Illustration verwende ich ein öffentliches Online-FTP.
Beispiel:
gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Gesamt % Empfangen % Xferd Durchschnitt Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamte verbleibende Geschwindigkeit 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$
Hier habe ich eine Datei namens ‘16-Sep-20-16-0-0.csv’ von diesem FTP-Server und speicherte es unter seinem ursprünglichen Namen in meinem CWD. Ich überprüfe die heruntergeladene Datei mit dem ls
Befehl.
gaurav@ubuntu:~/workspace$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 16. Sep 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. Sep 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 16. September 11:45 ath.html gaurav@ubuntu:~/workspace$
Mehrere Dateien zusammen mit CURL herunterladen
Herunterladen mehrerer Dateien gleichzeitig mit dem Locken
Befehl ist eine sehr einfache Aufgabe. Sie verwenden einfach die -Ö
Option mit der Locken
Befehl ähnlich wie in den obigen Blöcken ausgeführt.
Syntax:
curl -O [URL-1] -O [URL-2] -O[URL-n]
Beispiel:
gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamt ausgegebene Geschwindigkeit übrig 100 63500 100 63500 0 0 55458 0 0:00 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $
In diesem Beispiel habe ich zwei verschiedene Pakete aus dem Ubuntu-Repository heruntergeladen.
Ausgabe:
gaurav@ubuntu:~/workspace$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 16. Sep 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. Sep 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 Gaurav Gaurav 63500 16. September 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 Gaurav Gaurav 8638793 16. September 16:29 apache2_2.4.29. orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 16. September 11:45 ath.html gaurav@ubuntu:~/workspace$
Die beiden Pakete werden gleichzeitig mit dem curl-Befehl heruntergeladen.
HTTP-Header einer URL mit CURL abrufen
HTTP-Header-Felder jeder URL enthalten nützliche Informationen wie Benutzeragent, Inhaltstyp, Codierung usw. Diese Header-Dateien enthalten auch Informationen über das im Nachrichtentext gesendete Objekt. Details zu Anfrage und Antwort werden auch aus diesen HTTP-Headern abgerufen.
Sie können verwenden Locken
Befehl mit -ICH
Option, um diese HTTP-Header einer URL abzurufen.
Syntax:
curl -I [URL]
Beispiel:
gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Inhaltstyp: text/html; charset=ISO-8859-1 P3P: CP="Dies ist keine P3P-Richtlinie! Weitere Informationen finden Sie unter g.co/p3phelp." Datum: Mi, 16. Sept. 2020 11:17:00 GMT Server: gws X-XSS-Schutz: 0 X-Frame-Optionen: SAMEORIGIN Transfer-Encoding: chunked Verfällt: Mi, 16. Sept. 2020 11:17:00 GMT Cache- Kontrolle: privat Set-Cookie: 1P_JAR=2020-09-16-11; läuft ab=Fr, 16. Okt. 2020 11:17:00 GMT; Pfad=/; domain=.google.com; Secure-Set-Cookie: NID=204=SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunGrOSqiW7PoPJ6d7rD7PoPJ6d7 abgelaufen=Do, 18. März 2021 11:17:00 GMT; Pfad=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/workspace$
In diesem Beispiel habe ich die HTTP-Header von ‘www.firefox.com‘.
Abrufen von C-Quellcode mit CURL
Verwenden von Locken
Befehl mit dem --libcurl
Option kann den C-Quellcode abrufen. Dies hat für den Laien keinen nennenswerten Nutzen, kann sich jedoch für Systemprogrammierer, Sicherheitsanalysten und Anwendungsentwickler als sehr hilfreich erweisen.
Syntax:
curl [URL] > Dateiname --libcurl [Code_Dateiname]
Beispiel:
In diesem Beispiel habe ich den Inhalt der URL geholt alles.wie und speicherte es in einer Datei namens gy_ath.html. Der C-Quellcode wird separat im source.c Datei.
curl //www.allthings.how > gy_ath.html --libcurl source.c
Ausgabe:
gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload Upload Gesamte ausgegebene Geschwindigkeit nach links 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$
Lassen Sie uns nun die heruntergeladenen Dateien überprüfen.
gaurav@ubuntu:~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 16. Sep 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16. Sep 17:13 gy_ath.html -rw-r--r-- 1 gaurav gaurav 1535 16. September 17:13 source.c gaurav@ubuntu:~/workspace$
Der source.c Datei enthält den Quellcode. Diese kann auf dem Terminal über die angezeigt werden Katze
Befehl. Ich habe ein paar Zeilen aus der Ausgabe in den unten angegebenen Block eingefügt.
C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Beispielcode, der vom curl-Befehlszeilentool generiert wurde ********** * Alle curl_easy_setopt()-Optionen sind dokumentiert unter: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ******************************** ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
Verwenden eines Proxys in CURL, um auf eine URL zuzugreifen
Wie in der Einleitung besprochen, ist die Locken
Der Befehl unterstützt eine Vielzahl von Protokollen wie FTP, SMTP, HTTPS, SOCKS usw. Manchmal ist es wichtig, einen Proxy-Server für die Übertragung von Dateien zu verwenden, wenn Sie die Geschwindigkeit Ihrer Übertragung erhöhen und auch Ihre Identität schützen möchten. Locken
-Befehl kann einfach verwendet werden, um Dateien über den Proxy-Server zu übertragen, indem Sie das -x
Option dazu.
Beispiel:
curl -x [Proxy-Adresse]:[Port] [URL]
Im obigen Beispiel bin ich davon ausgegangen, dass Ihr Proxy keine Authentifizierung erfordert. Falls der Proxy zum Starten der Übertragung eine Authentifizierung erfordert, können Sie den folgenden Befehl verwenden.
curl -u [Benutzername]:[Passwort] -x [Proxy-Adresse]:[Port] [URL]
Mit dieser einfachen Methode können wir Dateien über einen Proxy-Server mit Option übertragen -x
verwendet mit dem Locken
Befehl.
Fazit
In diesem kurzen Tutorial haben wir gelernt, wie Locken
Der Befehl erweist sich beim Herunterladen von Inhalten direkt von Ihrem Terminal als hilfreich. Wir haben auch die verschiedenen Optionen kennengelernt, die mit diesem Befehl für verschiedene Aufgaben verfügbar sind.