Linux, コマンド · 1 min read · Sep 16, 2025
初心者のためのLinux curlコマンドチュートリアル(5つの例)

curlコマンドは、HTTP、HTTPS、FTPなどのさまざまなプロトコルを使用してサーバーとの間でデータを転送するための強力で多用途なツールです。これは「Client URL」の略で、ウェブリクエストに一般的に利用され、ユーザーがファイルをダウンロードしたり、POSTリクエストを介してデータを送信したり、コマンドラインからRESTful APIと直接対話したりすることを可能にします。curlコマンドは、単純なファイルのダウンロードから複雑なマルチパートフォームまで幅広いタスクを処理でき、その柔軟性と詳細な出力を提供する能力から、自動化のためのスクリプトでよく使用され、Linux環境において不可欠なユーティリティです。
このチュートリアルでは、主にウェブからのダウンロードを可能にするcurlコマンドについて説明します。この記事で説明する例は、Ubuntu 24.04でテストされています。
Linux curlコマンド
curlコマンドを使用すると、Linuxコマンドラインを介してデータをダウンロードおよびアップロードできます。以下はその構文です:
curl [options] [URL...]そして、マニュアルページにはこのコマンドについて次のように記載されています:
curlは、サーバーからまたはサーバーへのデータを転送するためのツールで、サポートされているプロトコルのいずれか(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、TELNET、TFTP)を使用します。このコマンドは、ユーザーの対話なしに動作するように設計されています。
curlは、プロキシサポート、ユーザー認証、FTPアップロード、HTTP POST、SSL接続、クッキー、ファイル転送の再開、Metalinkなどの便利なトリックを提供します。以下で見るように、機能の数はあなたの頭を回転させるでしょう!
curlは、すべての転送関連機能にlibcurlを使用しています。詳細についてはlibcurl(3)を参照してください。以下は、curlの動作をよりよく理解するためのQ&A形式の例です。
Q1. curlコマンドはどのように機能しますか?
基本的な使用法は非常にシンプルです - curlコマンドにURLを入力として渡し、出力をファイルにリダイレクトします。
例えば:
curl http://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso.torrent > test.torrentここで、-oオプションも使用できます。
-o, --output
出力をに書き込み、stdoutの代わりに使用します。 例に戻ると、データは私のシステムの’test.torrent’ファイルにダウンロードされましたが、コマンドラインには次の出力が生成されました:
マニュアルページには、この出力に表示される進行状況メーターについて次のように記載されています:
curlは通常、操作中に進行状況メーターを表示し、転送されたデータの量、転送速度、残りの推定時間などを示します。
curlはデフォルトでこのデータを端末に表示しますので、curlを呼び出して操作を行い、データを端末に書き込もうとすると、進行状況メーターを無効にします。そうしないと、進行状況メーターと応答データが混在して出力が乱れてしまいます。
HTTP POSTまたはPUTリクエストの進行状況メーターが必要な場合は、応答出力をファイルにリダイレクトする必要があります。シェルリダイレクト(>)、-o [file]、またはそれに類似したものを使用します。
FTPアップロードの場合は、端末に応答データを出力しないため、同じことは当てはまりません。
通常のメーターの代わりに進行状況「バー」を好む場合は、-#が役立ちます。Q2. curlが同じダウンロードファイル名を使用するようにするには?
前の例では、ダウンロードするファイル名を明示的に指定する必要がありました。しかし、curlにダウンロードしているファイルの名前をローカルファイル名として使用させることができます。これは、-Oコマンドラインオプションを使用することで実現できます。
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrentこの場合、’ubuntu-18.04-desktop-amd64.iso.torrent’という名前のファイルが私のシステムの出力に生成されました。
Q3. curlを使用して複数のファイルをダウンロードするには?
これも複雑ではありません - 次のようにURLを渡すだけです:
curl -O [URL1] -O [URL2] -O [URL3] ...例えば:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent上記のコマンドが実行されている様子です:
両方のURLのダウンロード進行状況が出力に表示されているのがわかります。
Q4. ‘moved’の問題を解決するには?
時々、curlコマンドにURLを渡すと、「Moved」や「Moved Permanently」といったエラーが発生します。これは通常、入力URLが他のURLにリダイレクトされるときに発生します。例えば、ウェブサイトを開くと、oneplus.comがあなたの母国のURL(oneplus.inなど)にリダイレクトされるため、次のようなエラーが発生します:
curlにリダイレクトを追従させたい場合は、-Lコマンドラインオプションを使用してください。
curl -L http://www.oneplus.comQ5. 中断したポイントからダウンロードを再開するには?
時々、ダウンロードが途中で中断されることがあります。そのため、時間とデータを節約するために、再試行する際には中断したポイントから再開したい場合があります。curlは、-Cコマンドラインオプションを使用することでこれを可能にします。
例えば:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso以下のスクリーンショットは、中断された後にダウンロードを再開するcurlコマンドを示しています。
結論
curlコマンドは、コマンドラインを介してダウンロードを好む場合に便利なユーティリティであることがわかります。ここでは表面的な部分に触れただけで、このツールはさらに多くの機能を提供しています。このチュートリアルで説明したコマンドラインオプションの練習が終わったら、curlのマニュアルページにアクセスしてさらに学ぶことができます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。