GNU/Linux >> Linux の 問題 >  >> Linux

Linuxwgetコマンドを使用するための7つの便利なトリック

Wgetは、Webからファイルをダウンロードするための無料のユーティリティです。インターネットからデータを取得してファイルに保存するか、端末に表示します。これは文字通り、FirefoxやChromiumなどのWebブラウザが行うことでもありますが、デフォルトではレンダリングされます。 グラフィカルウィンドウ内の情報であり、通常、ユーザーがそれらをアクティブに制御する必要があります。 wget ユーティリティは非対話型になるように設計されています。つまり、wgetをスクリプト化またはスケジュールできます。 コンピュータを使用しているかどうかに関係なく、ファイルをダウンロードします。

wgetでファイルをダウンロード

wgetでファイルをダウンロードできます 特定のURLへのリンクを提供することによって。デフォルトがindex.htmlのURLを指定した場合 、次にインデックスページがダウンロードされます。デフォルトでは、ファイルは現在の作業ディレクトリにある同じ名前のファイルにダウンロードされます。

$ 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'

wgetを作成できます データを標準出力(stdout)に送信します )代わりに--output-documentを使用します ダッシュ付き- キャラクター:

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

--output-documentを使用できます オプション(-O 略して)ダウンロードに好きな名前を付ける:

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

部分的なダウンロードを続行

非常に大きなファイルをダウンロードしている場合は、ダウンロードを中断する必要がある場合があります。 --continueを使用 (-c 略して)、wget ダウンロードが中断した場所を特定し、ファイル転送を続行できます。つまり、次に4 GBのLinuxディストリビューションISOをダウンロードするときに、問題が発生したときに最初に戻る必要はありません。

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

一連のファイルをダウンロードする

1つの大きなファイルではなく、ダウンロードする必要のある複数のファイルの場合は、wget それであなたを助けることができます。ダウンロードするファイルの場所とファイル名のパターンがわかっている場合は、Bash構文を使用して、一連のファイル名を表す整数の範囲間の開始点と終了点を指定できます。

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

サイト全体をミラーリングする

--mirrorを使用して、ディレクトリ構造を含むサイト全体をダウンロードできます。 オプション。このオプションは、--recursive --level inf --timestamping --no-remove-listingを実行するのと同じです。 、つまり、無限に再帰的であるため、指定したドメインですべてを取得できます。 Webサイトの古さによっては、思ったよりもはるかに多くのコンテンツを取得している可能性があります。

wgetを使用している場合 サイトをアーカイブするには、オプション--no-cookies --page-requisites --convert-links また、すべてのページが新鮮で完全であり、サイトのコピーが多かれ少なかれ自己完結していることを確認するのにも役立ちます。

HTMLヘッダーを変更する

データ交換に使用されるプロトコルには、コンピューターが通信するために送信するパケットに埋め込まれた多くのメタデータがあります。 HTTPヘッダーは、データの最初の部分のコンポーネントです。 Webサイトを閲覧すると、ブラウザはHTTPリクエストヘッダーを送信します。 --debugを使用します wgetのヘッダー情報を確認するオプション リクエストごとに送信します:

$ 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---

--headerを使用してリクエストヘッダーを変更できます オプション。たとえば、テストや、特定のユーザーエージェントに対してのみ正しく機能する、コーディングが不十分なサイトを説明するために、特定のブラウザを模倣すると便利な場合があります。

Windowsで実行されているMicrosoftEdgeとして識別するには:

$ 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

特定のモバイルデバイスになりすますこともできます:

$ 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

応答ヘッダーの表示

ヘッダー情報がブラウザー要求で送信されるのと同じように、ヘッダー情報も応答に含まれます。 --debugを使用して応答ヘッダーを確認できます オプション:

$ 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'

301応答への応答

200応答コードは、すべてが期待どおりに機能したことを意味します。一方、301応答は、URLが永続的に別の場所に移動されたことを意味します。これは、Webサイト管理者が「トレイル」を残したままコンテンツを再配置して、古い場所にアクセスする人々が引き続きコンテンツを見つけられるようにするための一般的な方法です。デフォルトでは、wget リダイレクトに従います。これはおそらく、通常はそれを実行したいことです。

ただし、どのwgetを制御することはできます --max-redirectで301応答が発生した場合に実行されます オプション。 0に設定できます リダイレクトを追跡しない:

$ 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.

または、他の数値に設定して、リダイレクトの数を制御することもできますwget

短縮URLを拡張する

--max-redirect オプションは、実際にアクセスする前に短縮URLを確認するのに役立ちます。短縮URLは、ユーザーが長いURLをコピーして貼り付けることができない印刷メディアや、文字数制限のあるソーシャルネットワークで役立ちます(これは、Mastodonのような最新のオープンソースソーシャルネットワークではそれほど問題にはなりません。 )。ただし、目的地が本質的に隠されているため、少し危険な場合もあります。 --headを組み合わせることにより HTTPヘッダーと--locationのみを表示するオプション URLの最終的な宛先を解明するオプションを使用すると、リソース全体をロードせずに短縮URLを確認できます。

$ 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.

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

場所で始まる出力の最後から2番目の行 、目的の目的地を明らかにします。

wgetを使用する

Webを単一のコマンドとして探索するプロセスについて考える練習をしたら、wget グラフィカルインターフェイスに煩わされることなく、インターネットから必要な情報を取得するための高速で効率的な方法になります。通常のワークフローに組み込むために、一般的なwgetを使用してチートシートを作成しました。 APIのクエリに使用する方法の概要を含む、使用法と構文。 Linuxのwgetをダウンロードします ここに虎の巻があります。


Linux
  1. 初心者向けのLinuxターミナルガイド

  2. Linuxコマンドラインに関する8つのヒント

  3. Linuxコマンドラインで力を使用する

  1. Linuxでtopコマンドを使用するためのヒント

  2. Linuxコマンドライン用の3つのパスワードマネージャー

  3. Linux でコマンドラインを使用して任意のファイルをダウンロードするための 4 つのツール

  1. Linuxの無料コマンドの使用

  2. LinuxでのWgetコマンドと例

  3. Linuxwgetコマンドを例で説明