cURLコマンドは重要なLinuxツールであり、データ転送と接続のトラブルシューティングに一般的に使用されます。 cURLは、クライアント側の無料のURL転送ライブラリであるlibcurlを利用しています。
もっと深く掘り下げて、その使い方を学びましょう。
cURLバージョンを確認する
他のLinuxコマンドと同様に、cURLの操作を開始する前に、VPSにログインする必要があります。ヘルプが必要な場合は、SSHに関するこのチュートリアルを確認してください。
まず、次のコマンドを使用して、使用可能なcURLのバージョンを確認しましょう。
curl --version
出力には、サポートされているプロトコルのリストがcURLバージョンに表示されます。これで、いくつかのcURLコマンドの例を見ることができます
cURLコマンドの使用方法を学びましょう。 cURLの基本的な構文は次のようになります:
curl [OPTIONS] [URL]
cURLの最も簡単な使用法は、ページのコンテンツを表示することです。次の例では、 testdomain.comのホームページをレンダリングします。 。
curl testdomain.com
これにより、ドメインのホームページの完全なソースコードがレンダリングされます。プロトコルが指定されていない場合、curlはこれをHTTPに解釈します。
cURLコマンドファイルオプション
cURLコマンドは、リモートの場所からファイルをダウンロードできます。 2つの異なる方法でそれを行うことができます:
- -O リモートと同じファイル名で現在の作業ディレクトリにファイルを保存します。
- -o 別のファイル名または場所を指定できます
この例を以下に示します。
curl -O http://testdomain.com/testfile.tar.gz
上記のコマンドは、これを testfile.tar.gzとして保存します 。
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
上記のコマンドは、これを newtestfile.tar.gzとして保存します 。
何らかの理由でダウンロードが中断された場合は、cURLを使用してダウンロードを再開できます。これは、次のコマンドで実行できます。
curl -C - -O http://testdomain.com/testfile.tar.gz
cURLを使用すると、以下に示すように、複数のファイルをダウンロードすることもできます。
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
複数のURLから複数のファイルをダウンロードする場合は、それらすべてをファイルにリストします。 cURLコマンドをxargsと組み合わせて、さまざまなURLをダウンロードできます。
たとえば、ファイル allUrls.txtがある場合 ダウンロードするすべてのURLのリストが含まれている場合は、次の例を使用してすべてのファイルをダウンロードできます。
xargs –n 1 curl -O < allUrls.txt
HTTP用のcURLコマンド
cURLは、プロキシサーバーがある場合にも使用できます。 sampleproxy.comのポート8090でリッスンしているプロキシサーバーの背後にいる場合は、以下に示すようにファイルをダウンロードします。
curl -x sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz
上記の例では、 -U username:passwordをスキップできます。 プロキシが認証方法を必要としない場合。
通常のHTTPリクエストには、常にヘッダーが含まれます。 HTTPヘッダーは、実際のリクエストとともにリモートWebサーバーに関する追加情報を送信します。ブラウザの開発者ツールを使用してヘッダー情報を確認できますが、cURLコマンドを使用して確認できます。
以下は、Webサイトからヘッダー情報を取得する方法の例です。
curl -I www.testdomain.com
cURLを使用すると、 GETを作成できます およびPOST リクエスト。 GET リクエストは次のようになります:
curl http://mydomain.com
POSTのサンプル リクエストは以下のようになります:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp
ここtext=Hello POSTリクエストパラメータです。この動作はHTMLフォームに似ています。
1つのcURLコマンドで複数のHTTPメソッドを指定することもできます。これを行うには、 –nextを使用します このようなオプション:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
これには、POSTリクエストとそれに続くGETリクエストが含まれます。
すべてのHTTPリクエストには、リクエストの一部として送信されるユーザーエージェントがあります。これは、クライアントのWebブラウザの詳細を示します。デフォルトでは、cURLリクエストには、ユーザーエージェントの詳細としてcurlとバージョン番号が含まれています。出力例は次のとおりです。
“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”
次のコマンドを使用して、このデフォルトのユーザーエージェント情報を変更できます。
curl -I http://mydomain.com –-user-agent “My new Browser”
これで、変更された出力は次のようになります。
“GET / HTTP/1.1” 200 “_” ”My new Browser”
CookieのcURL
cURLコマンドを使用して、任意のURLにダウンロードされるCookieを確認できます。したがって、 https://www.samplewebsite.comにアクセスしている場合 、次にファイルに出力し、Cookieを保存して、catまたはVIMエディターを使用してCookieにアクセスできます。
以下はそのようなコマンドのサンプルです:
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
同様に、ファイルにCookieがある場合は、それをWebサイトに送信できます。このようなコマンドの例を以下に示します。
curl --cookie Mycookies.txt https://www. samplewebsite.com
FTPのcURL
cURLコマンドはFTPをサポートしています!それらを使用して、リモートサーバーからファイルをダウンロードできます。
curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz
上記のコマンドで、 ftp:// sampleftpserver 接続を受け入れるFTPサーバーです。匿名FTP接続では、ユーザー名とパスワードをスキップできます。コマンドを入力して、進行状況バーがいっぱいになるのを確認します。
以下のコマンドを使用してファイルをアップロードすることもできます:
curl -u username:password -T testfile.tar.gz ftp://sampleftpserver
ここでも、匿名FTP接続のユーザー名とパスワードをスキップできます。
cURL出力の制限
cURLを使用している間は、出力の大きさを知ることはできません。帯域幅を制限して、cURLによって抑制されないようにすることができます。
次のコマンドは、帯域幅を100Kに制限します。
curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
cURLは、強力で広く使用されているコマンドです。コマンドラインに依存している場合に便利です。いくつかのオプションがあり、複数のプロトコルをサポートしています。これは、このコマンドを学ぶ大きな理由です!
いくつかの高度なコマンドを学びたい場合は、すべてのUnixバージョンに含まれているはずのマニュアルを参照してください。
man curl
このチュートリアルで、cURLを使用するための良い出発点が得られたことを願っています。このコマンドをどのように使用しますか?コメントで教えてください!