curlコマンドは、コマンドラインからURL指定で信号送信するツールです。
やすひら
curlコマンドの概要と使用方法を紹介します
この記事でわかること
- curlコマンドの概要
- curlコマンドの使い方
目次
コマンド概要
curlコマンドは、コマンドラインからURL指定で信号送信するツールです。
HTTP/HTTPSやFTP/SFTPなど多様なプロトコルに対応しており、データの取得や送信がコマンドで実行できます。
Web開発やAPIのテスト等の場面での利用が便利です。
curlコマンドでできること
curlコマンドでできることを紹介します。
データの取得
URLからデータをダウンロードしたり、Webページのソースコードを取得できます。
データの送信
HTTPのPOSTリクエストを使って、サーバーにデータを送信可能です。
APIとの通信
JSONデータを送受信し、APIのリクエストやレスポンスを確認します。
ファイル転送
FTPやSFTPを利用したファイルのアップロードやダウンロードが可能です。
認証のサポート
Basic認証やOAuthなど、各種認証機能を使用したリクエストを送信できます。
コマンドオプション
コマンドオプションを紹介します。
コマンドオプション | 意味 |
---|---|
-X | リクエストメソッドを指定します。 (GET/ POST/PUTなど) |
-d | リクエストボディを送信します。 |
-H | リクエストヘッダーを設定します。 |
-o | データをファイルとして保存します。 |
-I | レスポンスヘッダーのみを取得します。 |
-u | ユーザー名とパスワードを指定します。 (Basic認証) |
-k | SSL証明書の検証を無効化します。 |
コマンドの使い方
curlコマンドの使い方を紹介します。
GETリクエスト
URL指定でWebページのHTMLデータを取得します。
コマンド形式
curl [URL]
コマンド実行例
$ curl https://yasuhira-blog.com/linux-command-curl/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 82100 0 82100 0 0 685k 0 --:--:-- --:--:-- --:--:-- 685k
<!DOCTYPE html>
<html lang="ja" data-loaded="false" data-scrolled="false" data-spmenu="closed">
<head>
<meta charset="utf-8">
<meta name="format-detection" content="telephone=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, viewport-fit=cover">
<title>[Linuxコマンド] curlコマンドの概要と使い方 | やすひらブログ</title>
<meta name='robots' content='max-image-preview:large' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<link rel="alternate" type="application/rss+xml" title="やすひらブログ » フィード" href="https://yasuhira-blog.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="やすひらブログ » >コメントフィード" href="https://yasuhira-blog.com/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="やすひらブログ » [Linuxコマンド] curlコマンドの概要と使い方 のコメントのフィード" href="https://yasuhira-blog.com/linux-command-curl/feed/" />
- 以下省略 -
ファイルのダウンロード
URL指定でファイルをダウンロードして保存します。
コマンド形式
curl -o [ファイル名] [URL]
コマンド実行例
$ curl -o draw_a_picture.jpg https://yasuhira-blog.com/wp-content/uploads/2024/05/draw_a_picture.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 329k 100 329k 0 0 18.9M 0 --:--:-- --:--:-- --:--:-- 18.9M
$ ls
draw_a_picture.jpg
POSTリクエストでデータ送信
フォームデータやJSONデータを送信できます。
コマンド形式
curl -X [HTTPメソッド] -H [ヘッダ] \
-d '[JSONデータ]' [URL]
コマンド実行例
$ curl -X POST -H "Content-Type: application/json" \
-d '{"key": "value"}' https://example.com/api
レスポンスヘッダーの取得
ヘッダー情報を取得できます。
コマンド形式
curl -I [URL]
コマンド実行例
$ curl -I https://yasuhira-blog.com/linux-command-curl/
HTTP/2 200
server: nginx
date: Tue, 10 Dec 2024 07:31:33 GMT
content-type: text/html; charset=UTF-8
vary: User-Agent
link: <https://yasuhira-blog.com/wp-json/>; rel="https://api.w.org/", <https://yasuhira-blog.com/wp-json/wp/v2/posts/1626>; rel="alternate"; title="JSON"; type="application/json", <https://yasuhira-blog.com/?p=1626>; rel=shortlink
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-nginx-cache: HIT
まとめ
curlコマンドの概要と使い方を紹介しました。
curlコマンドは
- リクエストを送信できる
- ファイルを取得できる
- APIとの通信ができる
curlコマンドは、データ取得や送信、ファイル転送、APIテストなど幅広い用途に利用することができます。
Web開発やAPI開発を行うエンジニアは、curlコマンドを利用できると作業効率が大きく向上することができます。
便利なコマンドなので、利用できると良いです。