Linuxターミナルとcurl
のデータを制御し、通信する方法はいくつかあります。 それを行うための最良の方法です。 curl
サーバーとの間でデータを転送するために使用できるコマンドラインツールです。 curl
を使用できます FTP、HTTP、SFTP、HTTPS、SCPで構成されるサポートされているプロトコルのいずれかを使用してデータをダウンロードおよびアップロードするためのコマンド。 Curlには、帯域幅の制限、転送の再開、ユーザー認証、プロキシサーバーのサポートなど、さまざまな機能があります。
以下は、curl
で現在サポートされているプロトコルのリストです。 :
- FTP / FTPS
- Gopher
- HTTP
- HTTP / 2
- SMTP / SMTPS
- IMAP / IMAPS
- SMB
- POP3 / POP3S
- RTMP
- SCP
- SFTP
- RTSP
- LDAP / LDAPS
- TelnetとTFTP
- RTSP
その他の機能は次のとおりです。
- ユーザーとパスワードの認証
- 基本
- ダイジェストプレーン
- NTLM
- CRAM-MD5
- Kerberos
- 交渉
- クッキー
- プロキシトンネリング
- ファイル転送操作を再開します
- SSL証明書
- HTTPおよびHTTPSフォームのアップロード
wget
およびcurl
機能がある程度重複しているため、よく比較されます。どちらのツールもインターネットからコンテンツを取得できますが、wgetにはウェブスクレイピングや再帰的なダウンロードなどの機能があり、ユーザーフレンドリーです。ターミナルでファイルをダウンロードするだけの場合は、wgetがより適切なオプションと見なされます。
curl
の学習 コマンドの基本は、高度なHTTP認証手順を使用してファイルをアップロードおよびダウンロードするのに役立ちます。さらに、wget
FTPとHTTP(S)のみをサポートしますが、curl
より多くのプロトコルをサポートします。
curl
については以上です 指図。それでは、ターミナルに直接ジャンプしましょう。
Linuxへの「curl」のインストール
curl
がない場合 Linuxシステムでは、次のコマンドを使用してインストールします。それ以外の場合は、インストール手順をスキップして、例に進んでください。
sudo apt-get update
sudo apt-get install curl -y
次に、curl
を確認します バージョンを確認することで、システムで利用できます:
curl --version
curl
を使用すると、多くのすばらしいことができます。 。それらのいくつかを見てみましょう。
インターネット上にはすばらしいリソースがあり、インターネットIPアドレスを取得できます– https://ifconfig.me(有名なLinuxネットワーク構成ユーティリティの栄光にちなんで名付けられました– ifconfig
。
curlを使用してそのサイトにHTTPリクエストを送信すると、端末に外部IPアドレスが単純な文字列の形式で返されます。
curl https://ifconfig.me
したがって、この結果をbash変数に簡単に入れることができます:
MY_EXTERNAL_IP=$(curl -s https://ifconfig.me)
echo $MY_EXTERNAL_IP
結果は次のとおりです。
ここでは、-s
引数を使用すると、curlダウンロードの進行状況の出力を回避できます:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12 100 12 0 0 181 0 --:--:-- --:--:-- --:--:-- 181
自分をハッカーのように感じて、ターミナルに天気情報を表示したいですか? curl
を使用してそれを行うことができます !
curl http://wttr.in/LOCATION
curl
の出力を保存できます 指定されたファイルへのコマンド。
JSON API出力(StarWarsデモAPI)をファイルに保存する例を次に示します。
curl https://swapi.dev/api/planets/1/ -o Tatooine.json
curl
バイナリファイルのダウンロードを検出するのに十分スマートです。最も人気のあるオープンソースのInfrastructure-as-Code管理ソフトウェアTerraformをダウンロードする例を次に示します(Terraformの詳細をご覧ください):
curl https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip -o terraform_0.15.0_linux_amd64.zip
curl
を使用できます 一度に複数のファイルをダウンロードします。 -o
を追加するだけです 必要な回数だけ議論します。
curl -o https://example.com/files/file-1 -o file-2 https://example.com/files/file-2 -o file-3 https://example.com/files/file-3
curl
のもう1つの便利な機能 ファイルのダウンロード速度の制限です。 --limit-rate
を使用してこれを行うことができます 引数と速度の指定:
curl --limit-rate 1M -O https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip
接尾辞が追加されていない限り、指定された速度はバイト/秒で測定されます。 「k」または「K」を追加すると、その数はキロバイトとしてカウントされます。「m」または「M」はメガバイトになり、「g」または「G」はギガバイトになります。
この例では、テキストファイルにリストされているすべてのファイルをダウンロードします。これを行うには、xargs
の組み合わせを使用する必要があります curl
を使用 コマンド:
xargs -n 1 curl -O < urllists.txt
出力は次のとおりです:
-u
を使用できます 基本HTTP認証(基本認証)のユーザー名とパスワードを提供する引数:
curl -u username:password -O https://example.com/files/README
URLヘッダーの取得
HTTPヘッダーは、要求されたリソースコンテンツタイプ、ユーザーエージェント、エンコーディングなどの情報を含むコロンで区切られたキーと値のペアです。要求または応答を使用して、ヘッダーはクライアントとサーバーの間で転送されます。ウェブサイトのヘッダー情報を取得するには、-I
を使用します 引数:
curl -I https://hands-on.cloud
同じWebサイトへの後続のリクエストでは、Cookieを使用する必要がある場合があります。
Webサーバーから受信したCookieを保存するには、次のコマンドを使用します。
curl -s -o /dev/null -c google_cookies.txt 'https://www.google.com'
引数は次のとおりです。
-
-s
–サイレントモード、curlはダウンロードの進行状況情報を出力しません -
-o /dev/null
–Webページの出力を端末に印刷しないでください -
-c google_cookies.txt
–Cookie情報をファイルに保存する
前のリクエストから受け取ったCookieを使用するには、次のコマンドを使用します。
curl -b google_cookies.txt 'https://www.google.com'
HTTP/2サポートの確認
-I
を使用する 、--http2
および-s
指定されたサイトがHTTP/2ヘッダーをサポートしているかどうかを確認するためのオプションを一緒に:
curl -I --http2 -s https://hands-on.cloud/ | grep HTTP
この記事では、curl
を使用する最も一般的に使用される例について説明しました。 指図。この記事で、この強力なユーティリティを使い始めることができれば幸いです。記事が気に入ったら、世界に広めるのを手伝ってください!