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を使用する最も一般的に使用される例について説明しました。 指図。この記事で、この強力なユーティリティを使い始めることができれば幸いです。記事が気に入ったら、世界に広めるのを手伝ってください!