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

7 praktische Tricks zur Verwendung des Linux-wget-Befehls

Wget ist ein kostenloses Dienstprogramm zum Herunterladen von Dateien aus dem Internet. Es erhält Daten aus dem Internet und speichert sie in einer Datei oder zeigt sie in Ihrem Terminal an. Dies ist buchstäblich auch das, was Webbrowser wie Firefox oder Chromium tun, außer dass sie standardmäßig rendern die Informationen in einem grafischen Fenster und erfordern normalerweise, dass ein Benutzer sie aktiv steuert. Das wget Das Dienstprogramm ist so konzipiert, dass es nicht interaktiv ist, was bedeutet, dass Sie wget skripten oder planen können um Dateien herunterzuladen, egal ob Sie an Ihrem Computer sitzen oder nicht.

Datei mit wget herunterladen

Sie können eine Datei mit wget herunterladen indem Sie einen Link zu einer bestimmten URL bereitstellen. Wenn Sie eine URL angeben, die standardmäßig index.html ist , dann wird die Indexseite heruntergeladen. Standardmäßig wird die Datei in eine gleichnamige Datei in Ihrem aktuellen Arbeitsverzeichnis heruntergeladen.

$ wget http://example.com
--2021-09-20 17:23:47-- http://example.com/
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'

Sie können wget machen Senden Sie die Daten an die Standardausgabe (stdout ) stattdessen mithilfe von --output-document mit einem Bindestrich - Zeichen:

$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
   <title>Example Domain</title>

Sie können das --output-document verwenden Option (-O kurz) um Ihren Download beliebig zu benennen:

$ wget http://example.com --output-document foo.html

Einen teilweisen Download fortsetzen

Wenn Sie eine sehr große Datei herunterladen, müssen Sie möglicherweise den Download unterbrechen. Mit dem --continue (-c kurz), wget kann feststellen, wo der Download aufgehört hat, und die Dateiübertragung fortsetzen. Das heißt, wenn Sie das nächste Mal eine 4-GB-Linux-Distribution-ISO herunterladen, müssen Sie nie wieder zum Anfang zurückkehren, wenn etwas schief geht.

$ wget --continue https://example.com/linux-distro.iso

Laden Sie eine Folge von Dateien herunter

Wenn es sich nicht um eine große Datei, sondern um mehrere Dateien handelt, die Sie herunterladen müssen, wget kann dir dabei helfen. Vorausgesetzt, Sie kennen den Speicherort und das Dateinamenmuster der Dateien, die Sie herunterladen möchten, können Sie die Bash-Syntax verwenden, um die Start- und Endpunkte zwischen einer Reihe von Ganzzahlen anzugeben, um eine Folge von Dateinamen darzustellen:

$ wget http://example.com/file_{1..4}.webp

Eine ganze Website spiegeln

Mit --mirror können Sie eine ganze Site einschließlich ihrer Verzeichnisstruktur herunterladen Möglichkeit. Diese Option entspricht der Ausführung von --recursive --level inf --timestamping --no-remove-listing , was bedeutet, dass es unendlich rekursiv ist, sodass Sie alles in der von Ihnen angegebenen Domäne erhalten. Je nachdem, wie alt die Website ist, kann das bedeuten, dass Sie viel mehr Inhalte erhalten, als Sie denken.

Wenn Sie wget verwenden um eine Seite zu archivieren, dann die Optionen --no-cookies --page-requisites --convert-links sind auch nützlich, um sicherzustellen, dass jede Seite frisch und vollständig ist und dass die Site-Kopie mehr oder weniger in sich geschlossen ist.

HTML-Header ändern

Protokolle, die für den Datenaustausch verwendet werden, haben viele Metadaten, die in die Pakete eingebettet sind, die Computer zur Kommunikation senden. HTTP-Header sind Komponenten des ersten Teils der Daten. Wenn Sie eine Website durchsuchen, sendet Ihr Browser HTTP-Anforderungsheader. Verwenden Sie den --debug Option, um zu sehen, welche Header-Informationen wget sendet bei jeder Anfrage:

$ wget --debug example.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive

---request end---

Sie können Ihren Anforderungsheader mit --header ändern Möglichkeit. Beispielsweise ist es manchmal nützlich, einen bestimmten Browser nachzuahmen, entweder zum Testen oder um schlecht codierte Websites zu berücksichtigen, die nur für bestimmte Benutzeragenten korrekt funktionieren.

So identifizieren Sie Microsoft Edge unter Windows:

$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com

Sie können sich auch als bestimmtes Mobilgerät ausgeben:

$ wget --debug \
--header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" \
http://example.com

Antwortheader anzeigen

Auf die gleiche Weise, wie Header-Informationen mit Browser-Anfragen gesendet werden, sind Header-Informationen auch in Antworten enthalten. Sie können Antwortheader mit --debug anzeigen Möglichkeit:

$ wget --debug example.com
[...]
---response begin---
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 188102
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "3147526947"
Server: ECS (sab/574F)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'

Antwort auf eine 301-Antwort

Ein Antwortcode von 200 bedeutet, dass alles wie erwartet funktioniert hat. Eine 301-Antwort hingegen bedeutet, dass eine URL dauerhaft an eine andere Stelle verschoben wurde. Es ist eine gängige Methode für einen Website-Administrator, Inhalte zu verschieben und dabei eine „Spur“ zu hinterlassen, damit Besucher des alten Standorts sie immer noch finden können. Standardmäßig wget folgt Weiterleitungen, und das ist wahrscheinlich das, was Sie normalerweise wollen.

Sie können jedoch steuern, was wget ist tut, wenn es auf eine 301-Antwort mit dem --max-redirect stößt Möglichkeit. Sie können ihn auf 0 setzen keinen Weiterleitungen folgen:

$ wget --max-redirect 0 http://iana.org
--2021-09-21 11:01:35-- http://iana.org/
Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
Connecting to iana.org|192.0.43.8|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.iana.org/ [following]
0 redirections exceeded.

Alternativ können Sie es auf eine andere Zahl setzen, um zu steuern, wie viele Weiterleitungen wget folgt.

Erweitern Sie eine verkürzte URL

Der --max-redirect Die Option ist nützlich, um sich verkürzte URLs anzusehen, bevor Sie sie tatsächlich besuchen. Gekürzte URLs können für Printmedien nützlich sein, in denen Benutzer nicht einfach eine lange URL kopieren und einfügen können, oder in sozialen Netzwerken mit Zeichenbeschränkungen (dies ist in einem modernen und quelloffenen sozialen Netzwerk wie Mastodon kein so großes Problem ). Allerdings können sie auch ein wenig gefährlich sein, weil ihr Ziel naturgemäß verborgen ist. Durch die Kombination von --head Option, um nur die HTTP-Header und den --location anzuzeigen Möglichkeit, das endgültige Ziel einer URL aufzuschlüsseln, können Sie in eine verkürzte URL schauen, ohne die vollständige Ressource zu laden:

$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
--2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
Resolving bit.ly... 67.199.248.10, 67.199.248.11
Connecting to bit.ly|67.199.248.10|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/ [following]
0 redirections exceeded.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Die vorletzte Ausgabezeile, beginnend mit Location , verrät das beabsichtigte Ziel.

Verwenden Sie wget

Wenn Sie einmal geübt haben, den Prozess des Erkundens des Internets als einen einzigen Befehl zu betrachten, wget wird zu einer schnellen und effizienten Möglichkeit, benötigte Informationen aus dem Internet zu ziehen, ohne sich um eine grafische Oberfläche kümmern zu müssen. Um Ihnen zu helfen, es in Ihren üblichen Arbeitsablauf zu integrieren, haben wir einen Spickzettel mit dem üblichen wget erstellt Verwendungen und Syntax, einschließlich einer Übersicht über die Verwendung zum Abfragen einer API. Laden Sie das Linux-wget herunter Spickzettel hier.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. 8 Tipps für die Linux-Kommandozeile

  3. Verwenden der Kraft in der Linux-Befehlszeile

  4. Tipps zur Verwendung des Top-Befehls unter Linux

  5. 4 Tools zum Herunterladen einer beliebigen Datei über die Befehlszeile in Linux

So laden Sie Dateien mit dem Wget-Befehl unter Linux herunter

Tutorial zur Verwendung des Timeout-Befehls unter Linux

Tutorial zur Verwendung des letzten Befehls im Linux-Terminal

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

Wie verwende ich den wget-Befehl unter Linux?

So laden Sie Dateien in Rocky Linux 8 über die Befehlszeile mit wget herunter