はじめに
この実験(Lab)では、curl と wget という 2 つの一般的なコマンドラインツールを使って、インターネットからファイルをダウンロードする方法を学びます。これらのツールは、Web サーバーからファイルやデータを取得するために不可欠であり、Linux ユーザーや開発者にとって貴重なスキルとなります。
curl は、さまざまなプロトコルからファイルをダウンロードし、HTTP リクエストを実行できる多機能ツールです。wget は、主に Web サーバーからファイルをダウンロードするために使用される、よりシンプルなツールです。この実験の終わりには、両方のツールを使ってファイルをダウンロードし、基本的な HTTP リクエストを行うことに慣れているでしょう。
curl でのファイルのダウンロード
まず、curl を使用して、Web サイトからシンプルな HTML ファイルをダウンロードすることから始めましょう。
ターミナルを開きます。
プロジェクトディレクトリに移動します。ターミナルで、次のように入力します。
cd /home/labex/project
このコマンドは、現在のディレクトリを /home/labex/project に変更します。cd コマンドは "change directory"(ディレクトリの変更)の略です。
- 次に、
curlを使用して Web ページをダウンロードしましょう。次のコマンドを入力します。
curl http://example.com -o example.html
このコマンドを分解してみましょう。
curlは、使用しているプログラムの名前です。http://example.comは、ダウンロードする Web ページの URL です。-o example.htmlは、curlにダウンロードしたコンテンツをexample.htmlという名前のファイルに保存するように指示します。-oオプションは "output"(出力)の略です。
- コマンドを実行すると、
curlはコンテンツをダウンロードし、現在のディレクトリにexample.htmlとして保存します。ファイルがダウンロードされたことを確認するために、ディレクトリの内容を一覧表示できます。
ls -l example.html
ls コマンドは、ファイルとディレクトリを一覧表示します。-l オプションは、詳細な(長い)リストを提供します。出力に example.html が表示され、そのサイズと最終更新日に関する情報も表示されるはずです。
ダウンロードしたファイルの検証
ファイルをダウンロードしたので、その内容を見てみましょう。
- ファイルの内容を表示するには、
catコマンドを使用します。次のように入力します。
cat example.html
cat は "concatenate"(連結)の略ですが、ファイルのコンテンツを表示するためによく使用されます。example.com のホームページの HTML コンテンツが表示されるはずです。HTML に慣れていない場合は、テキストの羅列のように見えるかもしれませんが、心配しないでください。これは、Web ブラウザが Web ページを表示するために使用する生のコードです。
- ファイルが非常に大きい場合があり、最初だけを見たい場合があります。このために、
headコマンドを使用できます。
head -n 10 example.html
このコマンドは、ファイルの最初の 10 行を表示します。-n 10 オプションは、head に 10 行を表示するように指示します。この数字を変更して、表示する行数を増減できます。
- ファイルの末尾を表示するには、
tailコマンドを使用できます。
tail -n 10 example.html
これは、ファイルの最後の 10 行を表示します。
これらのコマンドは、特に大きなファイルを扱う場合に、ファイル全体を開かずにすばやく検査するのに役立ちます。
curl を使用した複数ファイルのダウンロード
curl は、単一のコマンドで複数のファイルをダウンロードできます。2 つのファイルを一度にダウンロードしてみましょう。
- まず、
example.comから index ページと about ページの両方をダウンロードし、その内容を表示してみましょう。
curl http://example.com/index.html http://example.com/about.html
このコマンドは、両方のページの内容をターミナルに出力します。2 つの HTML ドキュメントが連続して表示されます。これは、簡単な確認には便利ですが、ファイルを保存したい場合には理想的ではありません。
- これらのファイルを、表示する代わりに保存するには、
-Oオプションを使用します。大文字の-Oは、curlに URL からファイル名を使用するように指示します。
curl -O http://example.com/index.html -O http://example.com/about.html
このコマンドは、両方のファイルをダウンロードし、元の名前(index.html と about.html)で現在のディレクトリに保存します。今回は、内容はターミナルに表示されません。
- ファイルがダウンロードされたことを確認するには、ディレクトリの内容を一覧表示できます。
ls -l index.html about.html
両方のファイルが、そのサイズと最終更新時刻とともに表示されるはずです。
- 複数のファイルをダウンロードし、カスタム名を付けたい場合は、複数の
-oオプションを使用できます。
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html
これにより、ファイルは custom_index.html と custom_about.html として保存されます。
wget を使用したファイルのダウンロード方法
次に、ファイルをダウンロードするための別の一般的なツールである wget を見てみましょう。wget は、そのシンプルさと、大きなダウンロードや不安定な接続を処理できる能力から、しばしば好まれます。
- まず、
wgetを使用して example.com からファイルをダウンロードしてみましょう。
wget http://example.com/index.html
wget は、ファイルをダウンロードする際にプログレスバーを表示します。これは、ファイルのどの部分がダウンロードされたか、完了までどのくらいかかるかを確認できるため、特に大きなファイルに役立ちます。
- デフォルトでは、
wgetはファイルを元の名前で保存します。別の名前を指定するには、-Oオプションを使用します(curlが小文字の o を使用するのとは異なり、大文字の O であることに注意してください)。
wget -O custom_name.html http://example.com/index.html
これにより、ファイルは custom_name.html として保存されます。プログレスバーは引き続き表示されますが、ファイルは指定した名前で保存されます。
特定のディレクトリへのファイルダウンロード
多くの場合、現在の作業ディレクトリではなく、特定のディレクトリにファイルをダウンロードしたい場合があります。curl と wget の両方でこれを行うことができますが、異なる方法を使用します。
- まず、ファイルをダウンロードするための新しいディレクトリを作成しましょう。
mkdir downloads
これにより、現在の場所に downloads という名前の新しいディレクトリが作成されます。
- 次に、
curlを使用して、このディレクトリにファイルをダウンロードしてみましょう。
curl -o downloads/curl_file.html http://example.com
curl の -o オプションを使用すると、パスを含む出力ファイルを指定できます。このコマンドは、example.com からコンテンツをダウンロードし、downloads ディレクトリに curl_file.html として保存します。
- 次に、
wgetを使用して、同じディレクトリにファイルをダウンロードしてみましょう。
wget -P downloads http://example.com/index.html
wget の -P オプションは「prefix(プレフィックス)」の略で、ファイルを保存するディレクトリを指定できます。このコマンドは、example.com から index.html をダウンロードし、downloads ディレクトリに保存します。
- 両方のファイルが
downloadsディレクトリにダウンロードされたことを確認できます。
ls -l downloads
出力に curl_file.html と index.html の両方が表示されるはずです。
- 現在のディレクトリを変更せずにこれらのファイルの内容を表示するには、フルパスを使用して
catを使用できます。
cat downloads/curl_file.html
cat downloads/index.html
これにより、ダウンロードしたファイルの内容を確認できます。
まとめ
おめでとうございます! curl と wget を使用してインターネットからファイルをダウンロードする実験を正常に完了しました。学んだことを振り返ってみましょう。
curlを使用して個々のファイルをダウンロードし、カスタム名で保存しました。- 単一の
curlコマンドで複数のファイルをダウンロードする方法を調べました。 wgetを使用して、デフォルト名とカスタム名の両方でファイルをダウンロードする方法を学びました。wgetを使用してファイルを再帰的にダウンロードする練習をしました。curlとwgetの両方を使用して、特定のディレクトリにファイルをダウンロードする方法を学びました。
これらのスキルは、Web コンテンツの取得からソフトウェアパッケージのダウンロードまで、Linux の多くのタスクの基本です。Linux での学習を続けるにつれて、これらのツールがさまざまなスクリプト作成および自動化タスクに非常に役立つことがわかるでしょう。
curl と wget には、さらに多くのオプションと機能があることを忘れないでください。詳細については、man ページ(man curl および man wget)を確認して、高度な機能を調べてください。
これらのツールを練習し、探索し続けることで、Linux でファイルと Web コンテンツをより効率的に操作できるようになります!



