MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Linuxコマンド] curlコマンドの概要と使い方

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認証)
-kSSL証明書の検証を無効化します。

コマンドの使い方

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指定で該当ページのHTMLデータが取得できます。

ファイルのダウンロード

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  

URL指定でWebサイトからファイルをダウンロードできます。

POSTリクエストでデータ送信

フォームデータやJSONデータを送信できます。

コマンド形式

curl -X [HTTPメソッド] -H [ヘッダ] \
-d '[JSONデータ]' [URL]

コマンド実行例

$ curl -X POST -H "Content-Type: application/json" \
-d '{"key": "value"}' https://example.com/api

データを付与したリクエストを送信することができます。
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コマンドを利用できると作業効率が大きく向上することができます。
便利なコマンドなので、利用できると良いです。

  • URLをコピーしました!
目次