ウェブサイト検索

Linux で「Curl」コマンドを使用する方法に関する 15 のヒント


インターネットがまだ初期段階にあった 1990 年代半ばに、 スウェーデンのプログラマーダニエル ステンバーグがプロジェクトを開始し、最終的に今日カールとして知られるものに成長しました。

当初、彼は Web ページから為替レートを定期的にダウンロードし、IRC ユーザーにスウェーデン クローナ相当額を米ドルで提供するボットを開発することを目指していました。

簡単に言えば、プロジェクトは成功し、途中でいくつかのプロトコルと機能を追加しましたが、その後は歴史になりました。それでは、本格的に Linux でデータなどを転送するためにcurlを使用する方法を学びましょう!

以下に 15 個のcurlコマンドのリストをまとめました。

1.カールのバージョンを表示する

-V または --version オプションは、バージョンを返すだけでなく、現在のバージョンでサポートされているプロトコルと機能も返します。

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. ファイルをダウンロードする

ファイルをダウンロードする場合は、-O または -o オプションを指定して curl を使用できます。前者では、リモートの場所と同じ名前で現在の作業ディレクトリにファイルが保存されますが、後者では、別のファイル名や場所を指定できます。

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. 中断されたダウンロードを再開する

ダウンロードが何らかの理由で中断された場合 (たとえば、Ctrl + c を使用するなど)、非常に簡単に再開できます。 -C – (ダッシュ C、スペース ダッシュ) を使用すると、中断したところからダウンロードを再開するようcurlに指示します。

curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. 複数のファイルをダウンロードする

次のコマンドを使用して、http://yoursite.comhttp:/ から info.htmlabout.html をダウンロードします。 /mysite.comをそれぞれ一度に実行します。

curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. ファイルから URL をダウンロードする

curl と xargs を組み合わせると、ファイル内の URL のリストからファイルをダウンロードできます。

xargs -n 1 curl -O < listurls.txt

6. 認証の有無にかかわらずプロキシを使用する

proxy.yourdomain.com のポート 8080 をリッスンするプロキシ サーバーの背後にいる場合は、そうしてください。

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

プロキシが認証を必要としない場合は、-U user:password を省略できます。

7. HTTP ヘッダーのクエリ

HTTP ヘッダーを使用すると、リモート Web サーバーは実際のリクエストとともにそれ自体に関する追加情報を送信できます。これにより、リクエストがどのように処理されているかに関する詳細がクライアントに提供されます。

Web サイトから HTTP ヘッダーをクエリするには、次の手順を実行します。

curl -I linux-console.net

この情報は、ブラウザの開発者ツールでも入手できます。

8. パラメータを使用して POST リクエストを作成します

次のコマンドは、firstName パラメータと lastName パラメータ、および対応する値を https://yourdomain.com/info.php に送信します。 。

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

このヒントを使用して、通常の HTML フォームの動作をシミュレートできます。

9. 認証の有無にかかわらず、FTP サーバーからファイルをダウンロードする

リモート FTP サーバーが ftp://yourftpserver での接続を予期している場合、次のコマンドは現在の作業ディレクトリに yourfile.tar.gz をダウンロードします。

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

FTP サーバーで匿名ログインが許可されている場合は、-u ユーザー名:パスワード を省略できます。

10. 認証ありまたは認証なしでファイルを FTP サーバーにアップロードする

mylocalfile.tar.gz という名前のローカル ファイルを、curl を使用して ftp://yourftpserver にアップロードするには、次の手順を実行します。

curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. ユーザーエージェントの指定

ユーザー エージェントは、HTTP リクエストとともに送信される情報の一部です。これは、クライアントがリクエストを行うために使用したブラウザを示します。現在のcurlバージョンがデフォルトとして何を使用しているかを確認し、後で「私は新しいウェブブラウザです」に変更してみましょう。

curl -I http://localhost --user-agent "I am a new web browser"

12. ストア Web サイトの Cookie

https://www.cnn.com にアクセスしたときに、どの Cookie がコンピュータにダウンロードされるかを確認したいですか?次のコマンドを使用して、cnncookies.txt に保存します。その後、cat コマンドを使用してファイルを表示できます。

curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. ウェブサイトの Cookie を送信する

最後のヒントで取得した Cookie は、同じサイトへの後続のリクエストで使用できます。

curl --cookie cnncookies.txt https://www.cnn.com

14. 名前解決の変更

あなたがウェブ開発者で、yourdomain.com を公開する前にローカル バージョンをテストしたい場合は、curl で http://www.yourdomain.com を解決することができます。 > 次のようにローカルホストに送信します。

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

したがって、http://www.yourdomain.com へのクエリは、DNS または /etc/hosts ファイルを使用する代わりに、localhost からサイトをリクエストするようにcurlに指示します。

15. ダウンロード速度の制限

カールが帯域幅を圧迫しないようにするには、次のようにダウンロード速度を100 KB/秒に制限します。

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
まとめ

この記事では、curl の起源の簡単な歴史を共有し、15 の実践的な例を通してその使用方法を説明しました。

この記事で見逃した可能性のある他のcurlコマンドをご存知ですか?コメント欄でお気軽にコミュニティと共有してください。また、ご質問がございましたら、お気軽にお問い合わせください。お返事おまちしております!