Linux

【Linux】curlコマンドの使い方解説!Webサーバーなどとデータの通信を行うコマンド

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、curlコマンドの使い方について解説します。curlコマンドは、コマンドラインから様々なプロトコルを使用してデータの転送や通信を行うためのツールです。名前の由来は「Client URL」の略称で、URLを介してクライアントとサーバー間の通信を行います。今回は、curlコマンドの使い方やオプションを実例を交えて解説します。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

【Linux】curlコマンドの使い方解説

curlコマンドのインストール方法

curlコマンドが使えない方は、以下のコマンドを実行してcurlコマンドをインストールします。

apt-get install curl
もしくは
yum install curl 

Debian/Ubuntuを使っている方は、apt-getコマンドを使用し、CentOS/RHELを使っている方はyumコマンドでパッケージのインストールをしましょう。

curlコマンドの基本的な使い方

curlコマンドの基本的な使い方は以下の通りです。オプションと、接続するURLを指定します。

curl [オプション] [URL]

例えば、今閲覧しているこのブログへアクセスする際は、以下のように実行します。

curl https://engineer-ninaritai.com/

上記のコマンドは、指定したURL(ここではhttps://engineer-ninaritai.com/)に対してGETリクエストを送信します。コマンドを実行すると、以下のようにサーバーからのレスポンスをコンソールに表示します。

curlコマンドの実行結果

curlコマンドのオプション

curlコマンドのオプション一覧

オプション用途
curl [URL]指定したURLにGETリクエストを送信する。
-X [HTTPメソッド] -d [データ]指定したHTTPメソッドでデータを含むPOSTリクエストを送信する。
-H "Header: Value"リクエストヘッダーをカスタマイズする。
-F "file=@/path/to/file"ファイルをサーバーにアップロードする。
-b "cookie_name=value"クッキーを使ってURLにアクセスする。
-o [ファイル名]レスポンスデータを指定したファイルに保存する。
-# -o [ファイル名]ダウンロードの進捗を表示しながらレスポンスデータを指定したファイルに保存する。
--connect-timeout [秒数]接続タイムアウトを設定する。
-A "User-Agent"User-Agentを指定してアクセスする。

Curlは柔軟なツールであり、これらのオプションを適切に組み合わせることで、さまざまなWebリクエストやデータ転送の操作が可能になります。

次にこれらのオプションを使った具体的な使用例を見ていきましょう。

POSTリクエストの送信

POSTリクエストを送信する際は、-Xオプションを指定します。

curl -X POST -d "key=value" https://example.com

このコマンドは、https://example.comに対してPOSTリクエストを送信します。

-dオプションは、リクエストボディにデータを含めるために使用します。key=valueの部分は、適切なデータに置き換える必要があります。

POSTはフォームなどでデータをサーバーに送信する際に使われます。

JSONデータをPOSTリクエストとして送信

curl -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' https://example.com

このコマンドは、JSONデータを含むPOSTリクエストを送信します。

-Hオプションは、リクエストのヘッダーを指定します。Content-Type: application/jsonは、JSON形式のデータを送信することを示しています。

ダウンロードの進捗を表示してファイルに保存

curl -# -o output.txt https://example.com

このコマンドは、ダウンロードの進捗を#で表示しながら、データをoutput.txtというファイルに保存します。

User-Agentを指定してアクセス

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" https://example.com

このコマンドは、指定したUser-Agentを使ってhttps://example.comにアクセスします。

User-Agentは、ブラウザやデバイスを識別するための情報です。

このように、curlコマンドはオプションと組み合わせることでWebサーバーとの通信を柔軟に行うことができます。

まとめ

今回は、curlコマンドの使い方について解説しました。コマンドラインからWebサーバーと通信を行うときによく使うコマンドなので覚えておきましょう。

さらにLinuxのコマンドの学習をしたい人に向けて、InfraAcademyというインフラ学習サービスのご紹介です。

「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」

そのようなご要望にお応えして、Linuxやネットワークが学習できるサイト「InfraAcademy」をリリースしました!

入門から中級まで初心者でもわかりやすく学習を進めることができます。

↓InfraAcademyの講座の一部です。

上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。

インフラエンジニアに必要な知識が学習できます。

InfraAcademyで学習を始める

参考:Linuxのコマンド練習用サイトのInfraAcademyを作成しました。【Linuxのコマンドをブラウザで練習しよう】

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST