Linux
 Computer >> コンピューター >  >> システム >> Linux

コマンドラインデータ転送などにcURLを使用する方法

コマンドラインデータ転送などにcURLを使用する方法

Linuxアプリケーションの端末に焦点を当てたインストール手順をしばらく続けている場合は、おそらく curlに出くわしたことでしょう。 どこかの時点でコマンド。 cURLは、URLを使用してデータを転送するためのコマンドラインツールです。最も簡単な使用法の1つは、コマンドラインからファイルをダウンロードすることです。ただし、cURLは非常に強力なツールであり、さらに多くのことができるため、これは欺瞞的です。

cURLとは何ですか?

もともとは1996年にDanielSternbergによってWebサーバーから財務データを取得してIRCチャネルにブロードキャストするために作成されましたが、cURLは、ブラウザーを使用せずにデータを取得するための強力なツールに進化しました。常に端末を使用している場合、これは武器庫で最も重要なツールの1つになります。

ほとんどのLinuxディストリビューションでは、cURLがシステムにプリインストールされており、すぐに使用できます。インストールされていなくても、ほとんどのリポジトリにあるため、SoftwareCenterを使用して簡単にインストールできます。

Windowsの場合、「curlのような」コマンドはなく、macOSにはcURLがプリインストールされていますが、Linuxバージョンほど多くのフラグは提供されていません。

インストール

先に進む前に、cURLがシステムにすでにインストールされていることを確認する必要があります。

Linux

Debian / Ubuntuベースのディストリビューションでは、次のコマンドを使用してcURLをインストールします。

sudo apt install curl

Archベースのディストリビューションの場合:

sudo pacman -S curl

Fedora / CentOS / RHELの場合:

sudo dnf install curl

macOS

macOSの場合、すでにプリインストールされているため、何もする必要はありません。

ウィンドウズ
  1. Windows 7/10/11の場合は、cURLダウンロードページに移動し、実行しているアーキテクチャに応じて、64ビットまたは32ビットのパッケージから選択します。アーキテクチャがわからない場合は、2006年以降に製造されたハードウェアの大部分が搭載されているため、64ビットが安全です。
  2. システムドライブに直接、または「C:\ ProgramFiles \」にフォルダを作成し、「cURL」と呼びます。
コマンドラインデータ転送などにcURLを使用する方法
  1. ダウンロードしたzipファイルに戻り、それを開いて、「bin」フォルダー内の「curl.exe」を見つけます。それを作成したcURLフォルダーにコピーします。コピーしたEXEは完全に自己完結型であり、Linuxで実行できるすべての順列を実行できます。
  2. このコマンドを実際に使用するには、WindowsのPATH変数に追加して、コマンドプロンプトからどこからでも実行できるようにする必要があります。
  • スタートメニューをクリックし、 environmentと入力します 、 Enterを押します 。
  • 「環境変数…」をクリックします。これで、環境変数の設定が表示されます。
コマンドラインデータ転送などにcURLを使用する方法
  • 「パス」環境変数を選択し、「編集…」をクリックします
  • パス編集ダイアログウィンドウが表示されたら、[新規]をクリックして、「curl.exe」が配置されているディレクトリ(「C:\ ProgramFiles \ cURL」など)を入力します。
コマンドラインデータ転送などにcURLを使用する方法
  • このプロセスで開いたダイアログウィンドウで[OK]をクリックして、ターミナルでcURLを楽しんでください!

Linuxで使用できるcURLのすべてのフラグは、Windowsバージョンでも機能するはずです。

賢明な言葉: コマンドプロンプトをWindowsターミナルと混同しないでください。 Windows Terminalには、PowerShellに含まれている独自のバージョンのcURLが付属しており、同様の機能を提供しますが、動作はまったく異なります。

cURLの使用

開始するには、 curl maketecheasier.comと入力するだけです。 ターミナルでEnterを押します 。

出力が得られない場合は、このサイトのサーバーがwww以外のドメインへのランダムな接続要求に応答するように構成されていないことが原因です。存在しない、またはオンラインではないサーバーをポーリングした場合、cURLがホストを解決できなかったことを示すエラーメッセージが表示されます。

コマンドラインデータ転送などにcURLを使用する方法

cURLで実際に役立つことを実行するには、プロトコルを指定する必要があります。この例では、HTTPSプロトコルを使用してこのサイトのホームページを照会しています。 curl https://www.maketecheasier.comと入力します 。

コマンドラインデータ転送などにcURLを使用する方法

すべてがうまくいけば、巨大なデータの壁を見つめているはずです。そのデータをもう少し使いやすくするために、cURLにデータをHTMLファイルに入れるように指示できます:

curl https://www.maketecheasier.com > ~/Downloads/mte.html
コマンドラインデータ転送などにcURLを使用する方法

このコマンドは、サイトの出力のコンテンツをダウンロードフォルダのHTMLファイルに配置します。お気に入りのファイルマネージャーでフォルダーに移動し、作成したファイルをダブルクリックします。このサイトのホームページのHTML出力のスナップショットを開く必要があります。

コマンドラインデータ転送などにcURLを使用する方法

同様に、 -oを使用できます 同じ結果を達成するためのフラグ:

curl -o ~/Downloads/mte.html https://www.maketecheasier.com
次のリダイレクト

ほとんどのサイトは、トラフィックを「http」から「https」プロトコルに自動的にリダイレクトします。 cURLでは、 -Lでも同じことができます。 国旗。これは、読み取り可能なページまたはファイルに到達するまで、301リダイレクトに自動的に従います。

 curl -L https://google.com.
コマンドラインデータ転送などにcURLを使用する方法 ダウンロードの再開

大きなファイルをダウンロードする場合、インターネットの速度によっては、中断が非常に苛立たしい場合があります。ありがたいことに、cURLには再開機能があります。 -Cを渡す フラグはこの問題を簡単に処理します。

実際の例を示すために、 Ctrl を押して、DebianのテストリリースISOのダウンロードを意図的に中断しました。 およびC それをつかむ途中です。

コマンドラインデータ転送などにcURLを使用する方法

次のコマンドでは、 -Cをアタッチしています 国旗。たとえば、

curl -C - -o ~/Downloads/debiantesting.iso -L https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-dvd/debian-testing-amd64-DVD-1.iso
コマンドラインデータ転送などにcURLを使用する方法

ダウンロードは中断したところから正常に開始されました。

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

cURLには複数のファイルをダウンロードする最も直感的な方法がないため、2つの方法があり、それぞれに独自の妥協点があります。

ダウンロードするファイルが列挙されている場合(たとえば、file1、file2など)、角かっこを使用して、 -o 国旗。これを少し混乱させないために、次に例を示します。

curl "https://example.com/file[1-5].zip" -o "#1_#2"

これを行う簡単な方法は、 -Oを使用することです。 (-リモート名 )。このフラグにより​​、cURLはリモートファイルを同じ名前のローカルファイルにダウンロードします。出力を指定する必要がないため、ファイルをダウンロードするディレクトリで端末が開いているときにこのコマンドを使用する必要があります。

curl -O "https://example.com/file1.zip" -O "https://example.com/file2.zip"

ダウンロードする列挙ファイルが大量にある場合は、-remote-name-all これにはより良いフラグです:

curl --remote-name-all "https://example.com/file[1-5].zip"

角かっこを使用してURLを再入力しなくても、同じサイトからの列挙されていないファイルを指定することもできます。

curl --remote-name-all "https://example.com/{file1.zip,anotherfile.zip,thisisfun.zip}"
認証付きのダウンロード

-u を使用して、認証が必要なファイルをダウンロードします(たとえば、プライベートFTPサーバーから取得する場合)。 国旗。すべての認証要求は、最初にユーザー名、次にパスワードを使用して、2つをコロンで区切って実行する必要があります。物事を簡単にする例を次に示します。

curl -u username:password -o ~/Downloads/file.zip ftp://example.com/file.zip

これにより、友人のbonobo_bobがFTPサーバーに認証され、ファイルがDownloadsフォルダーにダウンロードされます。

ファイルの分割とマージ

何らかの理由で大きなファイルをダウンロードしてチャンクに分割したい場合は、cURLの-rangeを使用して行うことができます。 国旗。 -rangeを使用 、開始するバイトから終了するバイトまでを指定する必要があります。範囲の終わりを指定しない場合は、ファイルの残りの部分がダウンロードされるだけです。

以下のコマンドで、cURLはArchLinuxのインストールイメージの最初の100MBをダウンロードします。

curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso

次の100MBには、-range 100000000-199999999を使用します 、など。 &&を使用して、これらのコマンドを連鎖させることができます。 オペランド:

curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 100000000-199999999 -o arch.part2 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 200000000-299999999 -o arch.part3 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 300000000-399999999 -o arch.part4 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 400000000-499999999 -o arch.part5 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 500000000-599999999 -o arch.part6 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 600000000-699999999 -o arch.part7 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \
curl --range 700000000- -o arch.part8 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso

上記のコマンド構造に従ってレターを作成すると、cURLにダウンロードを要求した場所に8つのファイルが表示されます。

コマンドラインデータ転送などにcURLを使用する方法

これらのファイルを再結合するには、 catを使用する必要があります LinuxまたはmacOSを使用している場合は、次のようにコマンドを実行します。

cat arch.part? > arch.iso

Windowsの場合、 copyを使用する必要があります このようなコマンド:

copy /b arch.part* arch.iso
その他の便利な機能

cURLにはたくさんのフラグと用途があります:

  • -# –プログレスバーを使用して、つかんでいるもののどこまで進んでいるかを示します。例: curl-#https://asite.com/somefile.zip> 〜/ somefile.zip
  • -a –ファイルを上書きするのではなくファイルに追加するようにcURLに要求します。例: curl -ao〜/ collab-full.x https://example-url.com/collab-part26.x
  • -head –出力データなしでサーバーから応答ヘッダーのみを取得します。これは、Webサイトをデバッグしているとき、またはサーバーのプログラムされたクライアントへの応答を確認しているときに役立ちます。例: curl --head https://example-url.com
  • -limit-rate –帯域幅が制限されたダウンロードを注文します。これは、cURLがシステムで利用可能なすべての帯域幅を占有したくない状況で役立ちます。単純な数値は、1秒あたりのバイト数として解釈されます。 Kは1秒あたりのキロバイトを表します。 Mは1秒あたりのメガバイト数を表します。例: curl --limit-rate 8M https://example-url.com/file.zip> 〜/ file.zip
  • -o –前述のように、使用するcURLの出力ファイルを決定します。例: curl -o〜/ Downloads / file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip
  • -プロキシ –プロキシを使用する場合は、これがその方法です。例: curl --proxy proxyurl:port https://example-url.com/file.zip> 〜file.zip

cURL vs. Wget

同じ年(1996年)にリリースされたcURLとWgetは、カジュアルなオブザーバーにとってはほとんど姉妹プログラムです。ただし、もう少し深く掘り下げると、この2人の姉妹の目的が異なることがわかります。

Wget
  • インターネットからデータを取得するためにゼロから完全に構築されています。
  • -Lは必要ありません または-o cURLのようなフラグ; wget [url]と入力するだけです 行ってください!
  • 再帰的にダウンロードして、 -rを使用してディレクトリ内のすべてのものを取得できます フラグ。
  • ユーザーが日常的に使用するために必要なすべての機能を備えており、日常のシステム管理タスクに対応します。
  • (Linuxの場合)多くの依存関係は必要ありません。それらはすべて、箱から出してすぐに利用できるはずです。

cURL

  • フラグの豊富なレパートリーとリモート検索に役立つ機能。
  • ローカルネットワーク(LDAP)およびネットワークプリンター(Samba)をサポートします。
  • gzip圧縮ライブラリでうまく機能します。
  • libcurlに依存します。これにより、開発者はcURLの機能を含むソフトウェアまたはbashスクリプトを作成できます。

要するに、Wgetはインターネットからものを取得するための「すべての人のツールボックス」であり、cURLはこれを拡張して、パワーユーザーとシステム管理者向けのよりきめ細かい制御を行います。

よくある質問

1。 Linuxで証明書エラーが発生しました。どうすれば修正できますか?

「ピアの証明書発行者が信頼できないものとしてマークされています」などのエラーが発生した場合、これを修正する最も簡単な方法は、ディストリビューションに共通証明書パッケージを再インストールすることです。

Debian / Ubuntuベースのシステムの場合:

sudo apt reinstall ca-certificates

Fedora / CentOS / RHELの場合:

dnf reinstall ca-certificates

Archベースのシステムの場合:

pacman -S ca-certificates

Archでは、 pacman -Sccを使用してパッケージキャッシュをクリアしたい場合があることに注意してください。 証明書パッケージを再インストールする前に。

それでもこのエラーが発生する場合は、サーバー側に問題がある可能性があります。

2。 cURLコマンドとbashコマンドを一緒に実行しても安全ですか?

Linuxアプリケーションをインストールする最も一般的な方法ではありませんが、 curl を使用せざるを得ない開発者(NodeJSの背後にいる人々など)が多数います。 bashを介して実行されるrootアクセスコマンドと一緒に(例: curl [argument] | sudo -E bash- )ソフトウェアをインストールします。

少し怖いように見えるかもしれませんが、アプリケーションの背後にいる人々が信頼できる場合、何かを壊す可能性はほとんどありません。悪意のある攻撃者はいたるところに存在し、ArchのAURなどのリポジトリに侵入する可能性があるため、 curlを使用してインストールします。 ルートアクセスコマンドと組み合わせることは、通常、パッケージマネージャーを介して行うよりも安全ではありません。

3。 TorでcURLを使用できますか?

はい! Torブラウザ(またはスタンドアロンのTorサービス)を起動し、-proxyを使用します 国旗。 Torは、他のアプリケーションでIPをマスクするために使用できるローカルプロキシを提供します。 Torで使用されるcURLの例を次に示します:

curl --proxy localhost:9050 https://example.com

スタンドアロンのTorサービスはリスニングポートとして9050を使用しますが、Torブラウザはポート9150を使用します。

まとめ

cURLは、Linuxの世界の構造が変化する中で回復力があることが証明されており、ターミナルユーザーの武器庫で重要なツールとしての地位を維持しています。

コマンドラインを初めて使用する場合は、最も便利なLinuxコマンドのいくつかを確認してください。インターネットからデータをダウンロードするのではなく、単にWebを検索したい場合は、端末で閲覧することもできます。


  1. Windows 10 用の Ophcrack をダウンロードして使用する方法

    Ophcrack は、Windows PC 用の無料の Windows 10 パスワード リセット ツールで、レインボー テーブルに基づいています。このツールが行うことは、Windows コンピューターのユーザー アカウントの忘れられたパスワードを回復できることです。 PC 上のアカウントのパスワードを忘れると、そのアカウントに保存されているファイルにアクセスできなくなります。つまり、そのアカウントに保存した重要なファイルにアクセスする方法がありません。 PC にアカウントが 1 つしかなく、そのアカウントのパスワードを忘れた場合、PC 全体がブロックされ、どこにもアクセスできなくなります

  2. Windows 10 用パッケージ マネージャー、Chocolatey をインストールして使用する方法

    これを想像してみてください:Windows PC に新しいソフトウェアをインストールする必要があります。 Web サイトにアクセスし、ページ上のジャンクをクリックしないようにしてから、デフォルト設定を使用してグラフィカルインストーラーをクリックする可能性があります。 これは、ソフトウェアがオンラインで配布され始めて以来、Windows の存続期間中にほとんど変更されていないため、おそらくおなじみのルーチンです。ただし、Unix システムには別のアプローチがあり、パッケージ マネージャーによってソフトウェアのインストールが処理されます。パッケージ マネージャーは最小限のユーザー入力しか必要とせ