ウェブサイト検索

Bashでcurlコマンドを使用する方法


curlの完全な形はClient URLです。curlは、HTTP、HTTPS、FTP、TELNET、LDAPなどの特定のプロトコルを使用して、サーバーからデータを送受信するために使用されるコマンドラインツールです。このツールは、データを取得または送信するために、Webサーバーまたはアプリケーションサーバーと通信するために特定のURLを使用します。端末から直接使用することも、スクリプトを使用して行うこともできます。サーバーからファイルをダウンロードしたり、デバッグを行ったり、エンドポイントテストを行ったり、その他のタスクをcurlを使用して実行できます。curlコマンドのさまざまな使用方法は、このチュートリアルで示されています。

構文 :

curlコマンドの構文は次のようになります:

curl [options…] <URL>

curl コマンドは、有効な URL アドレスと共に使用され、サーバーからデータを取得したり、サーバーにデータを送信したりします。curl コマンドには、さまざまな種類のタスクを実行するための異なるオプションを使用できます。

カールオプション

このチュートリアルのこの部分では、さまざまなcurlオプションの目的について説明されています。

オプション目的
-A, --user-agent <name>
ユーザーエージェントの名前をサーバーに送信するために。
-d, --data <data>
HTTP POSTデータを送信するために。
-i, --include
出力にプロトコル応答ヘッダーを追加するために。
-I
HTTPヘッダー情報のみを取得するため。
-o, --output <file>
出力をターミナルではなくファイルに書き込むために。
-O, --;remote-name
リモートファイルに出力を書くため。
-T, --upload-file <file>
ローカルファイルをサーバーにアップロードするため。
-u, --user <user:password>
サーバーにユーザー名とパスワードを使用するために。
-f, --fail
エラーが発生した場合に出力を印刷できないこと。
-s, --silent
サイレントモードで作業する。
-h, --help <category>
任意のコマンドの使用方法に関する情報を取得するために。
-V, --version
コマンドのバージョンを表示するために。

「Curl」バージョンを確認してください

次のコマンドを実行して、curlコマンドのインストールされたバージョンを表示してください:

curl --version

以下の出力は、curl 7.68.0 バージョンがシステムにインストールされていることを示しています:

「curl」コマンドの異なる例

このチュートリアルのこの部分では、異なるURLアドレスを使用してcurlコマンドのさまざまな使い方を示しています。

例1: サーバーにGETリクエストを送信します

この例では、“curl”コマンドを使用してサーバーにGETリクエストを送信する方法が示されています。

以下の「curl」コマンドをオプションなしで実行し、https://example.comサーバーにGETリクエストを送信してください:

curl https://example.com

前のコマンドを実行した後、以下の出力が表示されます。URLアドレスから返される内容は、“curl”コマンドで使用された出力に印刷されます。

例2: HTTPヘッダーのみを取得する

この例では、“curl”コマンドを使用してサーバーのHTTPヘッダー情報のみを取得する方法を示しています。このタスクを実行するために、“curl”コマンドとともに-Iオプションが使用されます。

以下の「curl」コマンドを-Iオプション付きで実行して、https://example.comサーバーのHTTPヘッダー情報を取得してください:

curl -I https://example.com/

前のコマンドを実行した後、次の出力が表示されます。出力には、「curl」コマンドで使用されているURLアドレスのHTTPヘッダー情報のみが印刷されます。

例3: 特定のバイト範囲を読み取る

この例では、サーバーから特定のバイト範囲を読み取る方法が「curl」コマンドを使用して示されています。このタスクを実行するために、-rオプションが「curl」コマンドとともに使用されます。

次の「curl」コマンドを-rオプションと共に実行して、https://example.comサーバーから最大500バイトのデータを読み取ります:

curl https://example.com/ -r 0-500

前のコマンドを実行した後に次の出力が表示されます。指定されたURLアドレスに基づいて「curl」コマンドによって返される最初の500バイトの出力が出力に印刷されます。

例4: JSON形式で出力を取得する

サーバーからJSON形式で出力を得る方法は、この例で示されています。このタスクを実行するために、「curl」コマンドで-Hオプションと「Accept: application/json」ヘッダーが使用されます。

次の「curl」コマンドを-Hオプションを使って実行し、https://linux-console.net/echo/get/jsonサーバーの内容をJSON形式で読み取ります。サーバーがJSON形式をサポートしていない場合、JSON出力は生成されません。

curl https://linux-console.net/echo/get/json -H "Accept: application/json"

前のコマンドを実行した後に以下の出力が表示されます。出力によると、https://linux-console.netはJSON形式をサポートしており、“curl ”コマンドの出力はJSON形式で印刷されています。

例5: 転送速度の最大制限を設定する

"curl" コマンドは、ファイルをサーバーにアップロードしたり、サーバーからファイルをダウンロードしたりするために使用できます。ファイルのアップロードまたはダウンロードの最大転送速度は、「curl」コマンドに -limit-rate オプションを使用して設定できます。転送速度はデフォルトでバイト毎秒に基づいて割り当てられます。しかし、希望すれば、速度をキロバイト(K)、メガバイト(M)、またはギガバイト(G)で指定することも可能です。

以下のコマンドを実行して、https://linux-console.net サーバーのファイルをアップロードまたはダウンロードするための転送速度制限を設定します。ここでは、転送速度の最大制限が10メガバイトに設定されています。

curl https://linux-console.net/echo --limit-rate 10M

例6: GETリクエストでクッキーを送信する

クッキー情報は、「curl」コマンドでクッキー情報を含むファイル名とともに-bオプションを使ってサーバーに送信できます。

次のコマンドを実行して、GETリクエストでhttps://linux-console.net/echoサーバーにクッキー情報を送信してください:

curl https://linux-console.net/echo -b "session=yer45vnnnnQksddedfgfWE"

結論

「curl」は、サーバーと通信し、さまざまなタスクを実行するために非常に便利なLinuxコマンドです。このコマンドの基本的な使い方は、このチュートリアルで複数の例を用いて説明されており、Linuxユーザーがこのコマンドの概念を理解するのに役立ちます。