Linux の cURL コマンドは、HTTP、HTTPS、FTP などのさまざまなプロトコルを使用してサーバーとの間でデータを転送するための強力なツールです。Web リクエストの自動化、API のテスト、インターネットからのファイルのダウンロードによく使用されます。cURL は汎用性が高く、単純なファイルのダウンロードから複雑な複数パートのフォームの送信まで、幅広いタスクを処理できます。
このガイドでは、Linux で cURL コマンドを使用する 30 の実用的な例を紹介します。これらの例では、ファイルのダウンロード、API へのデータの送信、認証の処理などの一般的な使用例を取り上げ、さまざまなタスクにおける cURL の柔軟性とパワーを紹介します。
cURL コマンドの構文
cURL コマンドを使用した 30 個の例を説明する前に、まずその構文を理解しておくことをお勧めします。
curl [options] [URL]
この構文では、
- オプション: cURL の動作を変更するパラメータです。
- URL: 操作するファイルまたはリソースのアドレスです。
cURL コマンド オプション
cURL には、動作をカスタマイズできる多くのオプションが用意されています。最もよく使用されるオプションをいくつか示します。
- -O: 指定された URL からファイルをダウンロードします。
- -I: サーバーから HTTP ヘッダーを取得します。
- -u: サーバー認証用のユーザー資格情報を指定します。
- -d: 指定されたデータを POST リクエストでサーバーに送信します。
- -x: リクエストに使用するプロキシ アドレスを指定します。
Linux での cURL コマンドの例 30 個
それでは、cURL コマンドの実際の使用例をいくつか見ていきましょう。各例の最初に説明があり、その後に出力のデモンストレーションが続きます。
例 1: URL からデータを取得する
cURL の最も基本的な使用法は、Web ページのコンテンツを取得することです。方法は次のとおりです。
curl https://www.example.com
このコマンドは、www.example.com の Web ページの HTML コンテンツを取得します。
例2: ファイルのダウンロード
cURL はインターネットからファイルをダウンロードするためにも使用できます。次に例を示します。
curl -O https://www.example.com/file.txt
このコマンドは、www.example.com からファイル file.txt をダウンロードし、現在のディレクトリに保存します。
例3: POSTリクエストの送信
cURL を使用して POST リクエストをサーバーに送信できます。方法は次のとおりです。
curl -d "param1=value1¶m2=value2" -X POST http://www.example.com
このコマンドは、データ param1=value1¶m2=value2 を含む HTTP POST リクエストを www.example.com に送信します。
例4: HTTPヘッダーの取得
サーバーから HTTP ヘッダーを取得する場合は、-I オプションを使用できます。次に例を示します。
curl -I https://www.example.com
このコマンドは、www.example.com から HTTP ヘッダーを取得します。
例5: プロキシの使用
プロキシを使用する必要がある場合は、-x オプションを使用して指定します。方法は次のとおりです。
curl -x http://proxy.example.com:8080 https://www.example.com
このコマンドは、proxy.example.com:8080 のプロキシを介して www.example.com にリクエストを送信します。
例6: クッキーの送信
-b オプションを使用して、リクエストと一緒に Cookie を送信できます。次に例を示します。
curl -b "name=value" https://www.example.com
このコマンドは、name=value の Cookie を www.example.com に送信します。
例7: ユーザーエージェントの送信
ウェブサイトは、クライアントのブラウザに適したコンテンツを配信するために、ユーザー エージェントを使用することがよくあります。リクエストとともにユーザー エージェントを送信するには、-A オプションを使用します。
curl -A "Mozilla/5.0" https://www.example.com
このコマンドは、ユーザー エージェントを Mozilla/5.0 に設定して、www.example.com にリクエストを送信します。
例8: リダイレクトの追跡
一部の URL は他の URL にリダイレクトされます。これらのリダイレクトに従うには、-L オプションを使用します。
curl -L https://www.example.com
このコマンドは、www.example.com からのリダイレクトに従います。
例9: 出力をファイルに保存する
cURL コマンドの出力をファイルに保存するには、-o オプションを使用します。
curl -o output.html https://www.example.com
このコマンドは、www.example.com の出力を output.html に保存します。
例10: FTPでファイルをアップロードする
cURL は FTP を使用してサーバーにファイルをアップロードできます。方法は次のとおりです。
curl -T file.txt ftp://ftp.example.com --user username:password
このコマンドは、指定されたユーザー名とパスワードを使用して、file.txt を ftp.example.com にアップロードします。
例11: ダウンロードの再開
ダウンロードが中断された場合は、-C – オプションを使用して再開できます。
curl -C - -O https://www.example.com/file.txt
このコマンドは、www.example.com から file.txt のダウンロードを再開します。
例12: 複数のファイルのダウンロード
複数のファイルをダウンロードするには、複数の URL を指定します。
curl -O https://www.example.com/file1.txt -O https://www.example.com/file2.txt
このコマンドは、www.example.com から file1.txt と file2.txt をダウンロードします。
例13: DELETEリクエストの送信
DELETE リクエストを送信するには、-X DELETE オプションを使用します。
curl -X DELETE https://www.example.com/resource
このコマンドは、URL www.example.com/resource に DELETE リクエストを送信します。
例14: 詳細出力
リクエストとレスポンスの詳細情報を取得するには、-v オプションを使用します。
curl -v https://www.example.com
このコマンドは、www.example.com へのリクエストの詳細な出力を提供します。
例15: サイレントモード
進行状況メーターとエラー メッセージを抑制するには、-s オプションを使用します。
curl -s https://www.example.com
このコマンドは、www.example.com のコンテンツをサイレント モードで取得します。
例16: ダウンロードの進行状況を表示する
ダウンロードの進行状況をより読みやすい形式で表示するには、# オプションを使用します。
curl -# -O https://www.example.com/file.txt
このコマンドは、www.example.com から file.txt をダウンロードし、進行状況を進行状況バーとして表示します。
例17: JSONデータの送信
POST リクエストで JSON データを送信するには、-H オプションを使用してコンテンツ タイプを設定します。
curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST https://www.example.com
このコマンドは、JSON データを含む POST リクエストを www.example.com に送信します。
例 18: API で cURL を使用する
cURL は API とやり取りするためによく使用されます。次に例を示します。
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com
このコマンドは、認証ヘッダーを含むリクエストを https://api.example.com に送信します。
例19: バックグラウンドでのファイルのダウンロード
ファイルをバックグラウンドでダウンロードするには、末尾にアンパサンドを付けた -O オプションを使用します。
curl -O https://www.example.com/file.txt &
このコマンドは、バックグラウンドで www.example.com から file.txt をダウンロードします。
例20: ファイルからデータを送信する
POST リクエストでファイルからデータを送信するには、@ 記号を使用します。
curl -d @data.txt -X POST https://www.example.com
このコマンドは、data.txt のデータを含む POST リクエストを www.example.com に送信します。
例 21: FTP サーバーからのコンテンツの取得
cURL を使用すると、FTP サーバーからコンテンツを取得できます。方法は次のとおりです。
curl ftp://ftp.example.com/file.txt --user username:password
このコマンドは、指定されたユーザー名とパスワードを使用して、ftp.example.com から file.txt を取得します。
例 22: パスワードで保護された Web サイトからのコンテンツの取得
パスワードで保護された Web サイトからコンテンツを取得するには、-u オプションを使用します。
curl -u username:password https://www.example.com
このコマンドは、指定されたユーザー名とパスワードを使用して www.example.com からコンテンツを取得します。
例 23: SSL を使用して Web サイトからコンテンツを取得する
SSL を使用して Web サイトからコンテンツを取得するには、-k オプションを使用します。
curl -k https://www.example.com
このコマンドは、SSL 証明書の警告を無視して、www.example.com からコンテンツを取得します。
例24: PUTリクエストの送信
PUT リクエストを送信するには、-X PUT オプションを使用します。
curl -X PUT -d "data" https://www.example.com/resource
このコマンドは、データ「data」を含む PUT リクエストを www.example.com/resource に送信します。
例25: レスポンスヘッダーの取得
応答ヘッダーのみを取得するには、-I オプションを使用します。
curl -I https://www.example.com
このコマンドは、www.example.com からの応答ヘッダーのみを取得します。
例 26: Cookie を使用して Web サイトからコンテンツを取得する
クッキーを使用して Web サイトからコンテンツを取得するには、-b オプションを使用します。
curl -b cookies.txt https://www.example.com
このコマンドは、cookies.txt に保存されている Cookie を使用して www.example.com からコンテンツを取得します。
例 27: カスタムヘッダーを使用して Web サイトからコンテンツを取得する
カスタム ヘッダーを持つ Web サイトからコンテンツを取得するには、-H オプションを使用します。
curl -H "Custom-Header: Value" https://www.example.com
例 28: タイムアウト付きのウェブサイトからコンテンツを取得する
タイムアウト付きの Web サイトからコンテンツを取得するには、-m オプションを使用します。
curl -m 10 https://www.example.com
このコマンドは、10 秒のタイムアウトで www.example.com からコンテンツを取得します。
例 29: 詳細モードでウェブサイトからコンテンツを取得する
詳細モードで Web サイトからコンテンツを取得するには、-v オプションを使用します。
curl -v https://www.example.com
このコマンドは、www.example.com からコンテンツを詳細モードで取得し、要求と応答に関する詳細情報を表示します。
例 30: ウェブサイトからコンテンツを取得し、進捗メーターを表示する
ウェブサイトからコンテンツを取得して進行状況メーターを表示するには、-# オプションを使用します。
curl -# https://www.example.com
このコマンドは、www.example.com からコンテンツを取得し、進行状況メーターを表示します。
結論
これらの実用的な例を使って cURL コマンドをマスターすると、Web サービスとのやり取り、データ転送の自動化、ネットワークの問題のトラブルシューティングを行う能力が大幅に向上します。さまざまな cURL オプションとコマンドを定期的に練習することで、理解が深まり、Linux ワークフローでその可能性を最大限に活用できるようになります。cURL がコマンドライン ツールキットにもたらす汎用性と効率性をお楽しみください。