No.130ネットワーク
curl
カール・URLデータ転送
HTTPを中心に多くのプロトコルでデータを送受信します。API確認やヘッダー確認で特に便利です。
答えよく使う形
注意危険度は中程度です。
$ curl -I https://example.com
HTTP/1.1 200 OK content-type: text/html ...
$ curl -L -o out.html https://example.com
$ curl -H "Accept: application/json" https://api.example.com
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
どんなコマンド?
HTTP疎通確認、APIテスト、ヘッダー確認、ファイル取得、Web障害調査に使います。
curlは、URLを相手にデータを送受信するコマンドです。HTTPやHTTPSの確認に使われることが多いですが、FTPなど複数のプロトコルにも対応します。
実務では、APIの疎通確認、HTTPヘッダー取得、認証付きリクエスト、ファイルダウンロード、障害調査で頻出します。
大切なのは、標準出力へ本文を出す既定動作、-Iでヘッダーだけを見る、-Lでリダイレクトを追う、-oや-Oで保存方法を変える、といった基礎を押さえることです。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ curl
使用例と実行結果
行を押すとコピーできます。
HTTP/1.1 200 OK content-type: text/html ...
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 2
つまずいたとき
301や302で意図した内容が見えない
原因リダイレクト先を追っていません。
こうする-Lを付けて追跡します。
認証情報をそのまま履歴へ残した
原因コマンドラインへ機密情報を直接書きました。
こうする設定ファイル、環境変数、標準入力などを検討します。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。転送に成功しました。
- >0名前解決失敗、接続失敗、TLS失敗などで転送できませんでした。
気をつけることと入れ方
危険度は中程度です。認証情報や機密ヘッダーをシェル履歴へ残さない工夫が必要です。
環境による違い
機能差はバージョン依存です。TLS、HTTP/2、HTTP/3対応状況はビルドオプションで変わります。
確かめた環境2026-04-09 に確認
よくある質問
wgetとの違いは何ですか。
curlは送受信やAPI確認に強く、wgetは再帰取得や非対話ダウンロードで便利な場面があります。
本文を表示せず状態だけ見たい時はどうしますか。
-Iでヘッダーだけ見るか、-o /dev/nullと-wを組み合わせます。
curl を最後まで読みました。
Linux コマンド辞典に戻る16 / 144