名前は可愛いカール(curl)ですが、私のことを出会う度に、毎回苦しめてくるので、私は可愛いなんて微塵も思いませんが、少しでも懐いてくれたらと思い、そのための知識を記録します。
curlコマンドとは…
curlコマンドとはサーバから、もしくはサーバへデータ転送を行うコマンドです。FTP , SFTP , LDAP , TELNETなど、多くのプロトコルに対応しています。
1番基本的な使い方は、HTTPリクエストを実施し、その内容を標準出力するといった使い方…。
基本コマンド
curl [options] [URL]
jqコマンド
curlとは関係ないですが、どのサイトでもおすすめしていたので紹介しておきます。jqコマンドはjsonをinputとして受け取り、様々な処理をした結果をアウトプットしてくれます。curlでapiを叩く時に一緒に使うと便利。データの整形もしてくれる。
オプション(基本形)
- HTTPリクエストを実施し結果を標準出力へ
$ curl http://対象のURL
- カンマや[]を使って範囲指定もできる
$ curl 'http://{one,two,three}.example.com
$ curl 'http://[1-3].example.com
- 実行結果をファイルへ出力 ※often use
$ curl http://対象のURL > 出力先
$ curl -o 出力先PATH http://対象のURL
- ファイル出力時の進捗状況を非表示にする(エラーも非表示) ※often use
$ curl -s -o 出力先PATH http://対象のURL
- 上記でエラーは表示したい場合
$ curl -sS -o 出力先PATH http://対象のURL
- プログレスバーで進捗率を表示
$ curl -# -O http://対象のURL
- SSL接続で証明書エラーをスキップ
$ curl -k https://対象のURL
- URLのファイル名でダウンロード(下記はindex.htmlで保存)
$ curl -O http://対象のURL/index.html
- プロキシ経由でアクセスする
$ curl -x プロキシサーバ:ポート番号 --proxy-user ユーザ名:パスワード http://対象のURL
- リダイレクトを有効にする ※often use
$ curl -L http://対象のURL
- ダウンロードを中断したときに再度ダウンロードを再開するとき
$ curl -C - http://対象のURL
- HTTPメソッドの指定
$ curl -X PUT http://対象のURL
デバッグ系
- HTTPレスポンスヘッダの取得
$ curl -I http://対象のURL
- 詳細のログ出力(-v もしくは–verbose)
$ curl -v http://対象のURL
- 終了ステータスのみ表示
$ curl -s http://対象のURL -o /dev/null -w '%{http_code}\n'