GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでのCurlコマンドと例

curl は、ユーザーの操作なしで動作するように設計されたサーバーとの間でデータを転送するためのコマンドラインユーティリティです。 curlを使用 、HTTP、HTTPS、SCP、SFTP、FTPなどのサポートされているプロトコルのいずれかを使用してデータをダウンロードまたはアップロードできます。 curl 転送の再開、帯域幅の制限、プロキシサポート、ユーザー認証などを可能にする多数のオプションを提供します。

このチュートリアルでは、実際の例と最も一般的なカールオプションの詳細な説明を通じて、カールツールの使用方法を示します。

Curlのインストール#

curlパッケージは、現在ほとんどのLinuxディストリビューションにプリインストールされています。

Curlパッケージがシステムにインストールされているかどうかを確認するには、コンソールを開き、curlと入力します。 、Enterキーを押します。 curlがある場合 インストールすると、システムは curl: try 'curl --help' or 'curl --manual' for more information 。それ以外の場合は、 curl command not foundのようなものが表示されます。

curlの場合 インストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。

UbuntuとDebianにCurlをインストールする#

sudo apt updatesudo apt install curl

CentOSおよびFedoraにCurlをインストールする#

sudo yum install curl
カールの使用方法#

curlの構文 コマンドは次のとおりです:

curl [options] [URL...]

最も単純な形式では、オプションなしで呼び出されると、curl 指定されたリソースを標準出力に表示します。

たとえば、example.comを取得するには 実行するホームページ:

curl example.com

このコマンドは、example.comのソースコードを出力します ターミナルウィンドウのホームページ。

プロトコルが指定されていない場合は、curl 使用するプロトコルを推測しようとしますが、デフォルトではHTTPになります 。

出力をファイルに保存する#

curlの結果を保存するには コマンドを実行するには、-oのいずれかを使用します または-O オプション。

小文字の-o 事前定義されたファイル名でファイルを保存します。以下の例では、vue-v2.6.10.jsです。 :

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

大文字の-O 元のファイル名でファイルを保存します:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

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

一度に複数のファイルをダウンロードするには、複数の-Oを使用します オプションの後に、ダウンロードするファイルのURLが続きます。

次の例では、ArchLinuxとDebianのisoファイルをダウンロードしています。

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
ダウンロードを再開する#

-C -を使用してダウンロードを再開できます オプション。これは、大きなファイルのダウンロード中に接続が切断された場合に役立ちます。ダウンロードを最初から開始する代わりに、前のファイルを続行できます。

たとえば、次のコマンドを使用してUbuntu 18.04isoファイルをダウンロードする場合:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

突然接続が切断された場合は、次のコマンドでダウンロードを再開できます:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

URLのHTTPヘッダーを取得する#

HTTPヘッダーは、ユーザーエージェント、コンテンツタイプ、エンコーディングなどの情報を含む、コロンで区切られたキーと値のペアです。ヘッダーは、リクエストまたはレスポンスとともにクライアントとサーバーの間で渡されます。

-Iを使用する 指定されたリソースのHTTPヘッダーのみをフェッチするオプション:

curl -I --http2 https://www.ubuntu.com/

WebサイトがHTTP/2をサポートしているかどうかをテストする#

特定のURLが新しいHTTP/2プロトコルをサポートしているかどうかを確認するには、-Iを使用してHTTPヘッダーをフェッチします --http2と一緒に オプション:

curl -I --http2 -s https://linuxize.com/ | grep HTTP

-s オプションはcurlに指示します サイレント(静か)で実行し、進行状況メーターとエラーメッセージを非表示にします。

リモートサーバーがHTTP/2をサポートしている場合、curl HTTP/2.0 200を出力します :

HTTP/2 200

それ以外の場合、応答はHTTP/1.1 200です。 :

HTTP/1.1 200 OK

カールバージョン7.47.0をお持ちの場合 以上の場合、--http2を使用する必要はありません。 HTTP/2はすべてのHTTPS接続でデフォルトで有効になっているためオプションです。

フォローリダイレクト#

デフォルトでは、curl HTTPロケーションヘッダーに従わない。

www以外のバージョンのgoogle.comを取得しようとした場合 、ページのソースを取得する代わりに、wwwバージョンにリダイレクトされることに気付くでしょう:

curl google.com

-L オプションはcurlに指示します 最終目的地に到達するまでリダイレクトを追跡するには:

curl -L google.com

ユーザーエージェント番号を変更する

ファイルをダウンロードするときに、リモートサーバーがCurl User-Agentをブロックしたり、訪問者のデバイスやブラウザに応じて異なるコンテンツを返すように設定されている場合があります。

このような状況で別のブラウザをエミュレートするには、-Aを使用します オプション。

たとえば、Firefox 60をエミュレートするには、次を使用します。

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

最大転送速度を指定します#

--limit-rate オプションを使用すると、データ転送速度を制限できます。値は、kを使用してバイト、キロバイトで表すことができます。 接尾辞、mのメガバイト 接尾辞、およびgのギガバイト 接尾辞。

次の例では、curl Goバイナリをダウンロードし、ダウンロード速度を1 mbに制限します:

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

このオプションは、curlを防ぐのに役立ちます 利用可能なすべての帯域幅を消費します。

FTP経由でファイルを転送する#

curlを使用して保護されたFTPサーバーにアクセスするには 、-uを使用します オプションを選択し、以下に示すようにユーザー名とパスワードを指定します。

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

ログインすると、コマンドはユーザーのホームディレクトリ内のすべてのファイルとディレクトリを一覧表示します。

次の構文を使用して、FTPサーバーから単一のファイルをダウンロードできます。

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

FTPサーバーにファイルをアップロードするには、-Tを使用します アップロードするファイルの名前が続きます:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Cookieの送信#

リモートリソースにアクセスしたり、問題をデバッグしたりするために、特定のCookieを使用してHTTPリクエストを行う必要がある場合があります。

デフォルトでは、curlを使用してリソースをリクエストする場合 、Cookieは送信または保存されません。

サーバーにCookieを送信するには、-bを使用します スイッチの後にCookieまたは文字列を含むファイル名が続きます。

たとえば、Oracle JavaJDKrpmファイルjdk-10.0.2_linux-x64_bin.rpmをダウンロードするには oraclelicenseという名前のCookieを渡す必要があります 値a

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

プロキシの使用#

curl HTTP、HTTPS、SOCKSなどのさまざまなタイプのプロキシをサポートします。プロキシサーバーを介してデータを転送するには、-xを使用します (--proxy )オプションの後にプロキシURLが続きます。

次のコマンドは、192.168.44.1のプロキシを使用して指定されたリソースをダウンロードします ポート8888

curl -x 192.168.44.1:8888 http://linux.com/

プロキシサーバーで認証が必要な場合は、-Uを使用してください (--proxy-user )オプションの後にコロンで区切られたユーザー名とパスワード(user:password ):

curl -U username:password -x 192.168.44.1:8888 http://linux.com/

結論#

curl は、リモートホストとの間でデータを転送できるコマンドラインツールです。問題のトラブルシューティング、ファイルのダウンロードなどに役立ちます。

このチュートリアルに示されている例は単純ですが、最もよく使用されるcurlを示しています。 オプションであり、curl コマンドワーク。

curlの詳細については Curlのドキュメントページにアクセスしてください。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. LinuxでのJQコマンドと例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linuxでのエコーコマンド(例付き)

  1. Linuxでのmanコマンドと例

  2. LinuxでのAWKコマンドと例

  3. Linux curlコマンドの例–パート2