【curl/Wget】Webサイトのコンテンツをダウンロードする curlとWgetの違い【Linuxコマンド入門 Part3-12】

これまで、ping で疎通を確認し、nslookup で名前解決(DNS)を確認しました。 ここまで来れば、ネットワークの「道」と「住所」は正しいことが分かっています。

Linuxコマンド入門シリーズPart3 最後に行うのは、「実際に相手の家のドアを叩いて、荷物を受け取る(Webページを取得する)」 作業です。

そこで使うのが、curl(カール)と wget(ダブリューゲット)です。 どちらも「URLを指定してデータを取ってくる」コマンドですが、エンジニアは明確に使い分けています。今回はこの2つの違いと、トラブルシューティングでの活用法を紹介します。

前回記事

前回は、ドメイン名からIPアドレスを調べる nslookup について解説しました。

DNSチェック、nslookupコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【nslookup】DNSの確認コマンド【Linuxコマンド入門 Part3-11】

Linuxでのnslookupコマンドの使い方と、DNS(名前解決)の仕組みを初心者向けに解説。基本のIPアドレス確認から、特定のDNSサーバーを指定するオプション、メール設定(MXレコード)の確認まで。ネットワークトラブルの原因特定に必須のスキルです。

curlとWgetの違いとは?curlとWgetコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

1. wget コマンド:最強の「ダウンローダー」

まずは wget から紹介しましょう。名前の通り “World Wide Web” から “Get” するコマンドです。 このコマンドの最大の特徴は、「ファイルをダウンロードして保存すること」 に特化している点です。

基本構文

URLを指定するだけで、そのファイルをカレントディレクトリに保存します。

wget [URL]

例えば、LinuxのISOファイルや、大きなzipファイルをサーバーに落としてきたい時は、何も考えずに wget を使えばOKです。

wget コマンド : おすすめオプション

wget が真価を発揮するのは、「回線が不安定な時」 です。

途中で切れても再開する -c

巨大なファイルをダウンロード中に回線が切れてしまった……。そんな時、最初からやり直すのは絶望的ですよね。 -c (continue) オプションをつけると、「ダウンロード済みの続きから」 再開してくれます。

wget -c http://example.com/big-file.zip

保存名を指定する -O (大文字)

URLのファイル名ではなく、好きな名前で保存したい場合に使います。

wget -O new-name.zip http://example.com/weird_filename.php?id=123

2. curl コマンド:万能の「トランスポーター」

次に curl です。現在は、開発やトラブル調査の現場ではこちらがデファクトスタンダードになっています。 wget が「保存」なら、curl「転送(表示)」 がデフォルトの動作です。

基本構文

URLを指定すると、その中身(HTMLのソースコードなど)を画面(標準出力)に表示します。ファイルには保存しません。

curl [URL]

実行例(GoogleのHTMLが画面に流れる)

$ curl https://www.google.com
<!doctype html><html ... (大量のHTMLタグ) ...

「えっ、画面に出てきても意味なくない?」と思うかもしれませんが、これが便利なんです。 Webサーバーがちゃんと動いているか、中身の文字コードがおかしくないかなどを、保存せずにサクッと確認できるからです。

curl コマンド : おすすめオプション

curl はオプションの数が膨大ですが、便利で覚えておいた方がよさそうなものをいくつかピックアップしました。

ヘッダー情報だけ見る -I

HTMLの中身はいらないから、「サーバーが生きているか」「ステータスコード(200 OK や 404 Not Found)」だけ知りたい時に使います。

curl -I https://www.google.com

出力例

HTTP/2 200 
date: Sun, 21 Dec 2025 ...
server: gws
...

これで 200 が返ってくれば、Webサーバーは正常です。

リダイレクトを追いかける -L

wget のようにファイルを保存したい場合は、このオプションを使います。

curl -O https://example.com/image.jpg
curl vs wget どっちを使うべき?

curlwget、似てるけどどう違うの?」というのは、世界中のエンジニアが一度は通る疑問です。 curl の作者である Daniel Stenberg 氏が書いた有名な比較記事「curl vs wget」によると、以下のような違いがあります。

  • wget: 1996年生まれ。「ダウンロード」のスペシャリスト。
    • 再帰ダウンロード(リンクを辿ってサイト丸ごと保存)が得意。
    • 依存ライブラリが少なく、古いシステムでも動きやすい。
    • 「とにかくファイルを落としてきたい時」はこれ。
  • curl: 1998年生まれ。「データ転送」のスイスアーミーナイフ。
    • 対応しているプロトコル(通信手順)が圧倒的に多い。
    • パイプ | で他のコマンドに渡したり、APIを叩いたりするのに向いている。
    • 「Webサーバーの動作確認や、API操作」はこれ。

最近のLinuxディストリビューションでは、curl は最初から入っていることが多いですが、wget は追加インストールが必要な場合もあります。 「ファイルを拾うなら wget、サーバーを確認するなら curl」 と使い分けるのが一般的です。

参考:curl や Wgetの開発に携わった”ダニエル・ステンバーグ”さんの書いた有名なドキュメント

curl vs wget

curl vs wget

curlとWgetの違いについて詳しく書いてあります

daniel.haxx.se

まとめ

今回で「システムの状態確認とネットワークの基本」シリーズは完結です。 PCやサーバーの調子が悪い時、今回のシリーズで紹介したコマンドを使えば、原因の8割は特定できます。

次回(おそらく一番初めに公開済み)では、今回のシリーズで取り上げたコマンドの一覧と逆引きリファレンスを用意しているので、参考にしてみてください。

完結 「システムの状態確認とネットワークの基本」:まとめ記事

linuxコマンドでシステムのメモリやCPUの状態、プロセスの詳細を確認する方法を紹介するシリーズのサムネイル

【Linuxコマンド入門 第3部・完】システム管理とネットワーク基礎 逆引きリファレンス 【Linuxコマンド入門 Part3-13】

Linuxコマンド入門シリーズPart3、全17回の総まとめ記事です。システムの状態チェック(ps,topなど)の復習、ネットワークの接続チェックの方法の復習、機能別の逆引きに利用してください。

第三回”Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~”では、linuxでどのようにCPUやメモリの状態を確認するか、ネットワークとの接続チェックなどの基本操作を解説しました。

linuxコマンドでシステムのメモリやCPUの状態、プロセスの詳細を確認する方法を紹介するシリーズのサムネイル 13 記事
シリーズ

Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~

Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。

ここまで読んでいただきありがとうございます。

では、次の記事で。 lumenHero