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


インターネットがまだ初期の段階にあった1990年代半ばには、 Daniel Stenberg というスウェーデンのプログラマーがプロジェクトを開始し、最終的に私たちがカールとして知っているものに成長しました。

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

長年の話、プロジェクトは成功し、いくつかのプロトコルと機能が追加されました。残りは歴史です。それでは、両足に飛び込んで、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.ファイルをダウンロードする

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

$ 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.com http:/から info.html about.html をダウンロードします。一度に/mysite.com 、それぞれ。

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

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

xargsと curl を組み合わせると、ファイル内の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サイトからHTTPヘッダーを照会するには、次のようにします。

$ curl -I www.tecmint.com

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

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 username:password をスキップできます。

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

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

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

11.ユーザーエージェントを指定する

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

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

12.ウェブサイトのクッキーを保存する

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

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

13.ウェブサイトのクッキーを送る

同じサイトへの以降のリクエストでは、最後のヒントで取得したクッキーを使用できます。

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

14.名前解決を変更する

あなたがウェブ開発者で、ライブ配信する前に yourdomain.com のローカルバージョンをテストしたい場合は、カール解決 http://www.yourdomain.com あなたのローカルホストへ

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

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

15.ダウンロード速度を制限する

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

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

この記事では、カールの起源についての簡単な歴史を紹介し、15の実用的な例を通してそれを使用する方法を説明しました。

この記事で見逃していたかもしれない他のcurlコマンドを知っていますか?コメントでそれらを私たちのコミュニティと共有してください!また、ご質問がございましたら、お気軽にご連絡ください。返信お待ちしています!