こんにちは、フルスタックエンジニアのryuです。
今回の記事では、curlコマンドの使い方について解説します。curlコマンドは、コマンドラインから様々なプロトコルを使用してデータの転送や通信を行うためのツールです。名前の由来は「Client URL」の略称で、URLを介してクライアントとサーバー間の通信を行います。今回は、curlコマンドの使い方やオプションを実例を交えて解説します。
目次
【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 [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」をリリースしました!
入門から中級まで初心者でもわかりやすく学習を進めることができます。
- 【Linux入門講座1】ディレクトリと相対パス、絶対パス
- 【Linux入門講座2】ファイルの操作方法
- 【Linux入門講座3】ファイルのアクセス権限
- 【Linux入門講座4】ファイルの編集~vimの使い方をマスターする~
- 【Linux入門講座5】ユーザーとグループ
- 【Linux入門講座6】ネットワーク
↓InfraAcademyの講座の一部です。
上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。
インフラエンジニアに必要な知識が学習できます。
参考:Linuxのコマンド練習用サイトのInfraAcademyを作成しました。【Linuxのコマンドをブラウザで練習しよう】