環境構築でよく見かける「curl」ってなんだ!?
皆さんこんにちは、サーバーサイドエンジニアの大川です。環境構築でよく見かける「curl」というコマンドをよくわからず今まで使ってきていたので非常に簡単にまとめて見たいと思います!
curlってなんだ!?
ファイルの転送もしくは受信をするコマンドラインツールのこと
- 読み方は「カール」らしい(ずっと「シーユーアールエル」だと思ってた)
- ファイルリソースの特定にURLの構文を用いる事ができる。
- めっちゃ幅広いインターネットプロトコルをサポートしているらしい。
- フリーソフトウェアらしい。
- 例えば弊社のコーポレートサイトのページを取得したいならターミナルで下記の様に実行すれば良い。
$ curl https://anteku.jp/
- 上記を実行すると構成しているhtmlのコードがターミナル上に出力される。
取得した内容をファイルに出力することもできる
- curlコマンドに
-o
オプションをつけると出力内容をファイルに書き出して取得する事ができる。下記は当該のコマンド例
$ curl -o 書き出すファイル名 書き出したい対象のURL
- 弊社のコーポレートサイトのhtmlを「anteku.html」というファイルに書き出したいなら下記のようなコマンドになる。
$ curl -o anteku.html https://anteku.jp/
- カレントディレクトリに「anteku.html」が作成され内部には弊社のコーポレートサイトを構成しているhtmlのコードが記載されている。
URL構文で指定したファイルリソースのヘッダのみを取得することもできる(先輩に教えてもらった内容)
- curlコマンドに-Iオプションをつけると指定したファイルリソースのヘッダのみを標準出力に表示することができる。下記は当該コマンドの例
$ curl -I 対象のURL
- 弊社のコーポレートサイトのヘッダ部分のみを出力する場合、下記の様になる。
$ curl -I https://anteku.jp
curl実行時の細かい内容を出力することもできる(先輩に教えてもらった)
- curlコマンドに-vオプションをつけるとリソースの取得時のより細かい情報を取得する事ができる。
$ curl -v 対象のURL
また、各オプションは色々組み合わせることがもちろん可能で、「ヘッダ情報 + 取得時の細かい情報がほしい時」などは-Iオプションと-vオプションを併用することができる。
$ curl -Iv https://anteku.jp
まとめ
- curlはweb上のファイルリソースをURL形式で指定して取得するコマンドラインツール
- めっちゃいろんなプロトコルに対応している。
- だから環境構築のときにパッケージの取得とかに使われる。
- -oオプションは指定したファイルリソースを標準出力するのではなくファイルとして取得したいとき。