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

初心者向けのLinuxcurlコマンドチュートリアル(5つの例)

Webブラウザーは、ユーザーがインターネットからコンテンツをダウンロードするための主要な媒体ですが、これを実行できるLinuxコマンドがいくつかあります。これらのツールは、GUIがないヘッドレスシステムで役立ちます。

このチュートリアルでは、そのようなコマンドの1つである curlについて説明します。 -とりわけ、Webからコンテンツをダウンロードできます。この記事で説明する例は、Ubuntu16.04LTSでテストされていることに注意してください。

Linuxcurlコマンド

curlコマンドを使用すると、Linuxのコマンドラインからデータをダウンロードおよびアップロードできます。その構文は次のとおりです。

curl [options] [URL...]

そして、このコマンドについてのマニュアルページの内容は次のとおりです。

 curl is a tool to transfer data from or to a server, using one of the
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET and TFTP). The command is designed to work without user inter?
action.

curl offers a busload of useful tricks like proxy support, user authen?
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?
fer resume, Metalink, and more. As you will see below, the number of
features will make your head spin!

curl is powered by libcurl for all transfer-related features. See
libcurl(3) for details.

以下は、curlがどのように機能するかについてより良いアイデアを提供するQ&Aスタイルの例です。

Q1。 curlコマンドはどのように機能しますか?

基本的な使用法は非常に簡単です。curlコマンドへの入力としてURLを渡し、出力をファイルにリダイレクトするだけです。

例:

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent > test.torrent

ここで-oオプションを使用することもできることに注意してください。

-o, --output <file>
Write output to <file> instead of stdout.

例に戻ると、データがシステムの「test.torrent」ファイルにダウンロードされている間に、コマンドラインで次の出力が生成されました。

出力に表示されるこの進行状況メーターについてのマニュアルページの内容は次のとおりです。

 curl normally displays a progress meter during operations, indicating
the amount of transferred data, transfer speeds and estimated time
left, etc.

curl displays this data to the terminal by default, so if you invoke
curl to do an operation and it is about to write data to the terminal,
it disables the progress meter as otherwise it would mess up the output
mixing progress meter and response data.

If you want a progress meter for HTTP POST or PUT requests, you need to
redirect the response output to a file, using shell redirect (>), -o
[file] or similar.

It is not the same case for FTP upload as that operation does not spit
out any response data to the terminal.

If you prefer a progress "bar" instead of the regular meter, -# is your
friend.

Q2。 curlに同じダウンロードファイル名を使用させる方法は?

前の例では、ダウンロードしたファイル名を明示的に指定する必要があることがわかります。ただし、必要に応じて、ダウンロードするファイルの名前をローカルファイル名として使用するようにcurlに強制することができます。これは、-Oコマンドラインオプションを使用して実行できます。

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

したがって、この場合、「ubuntu-18.04-desktop-amd64.iso.torrent」という名前のファイルが私のシステムの出力に生成されました。

Q3。 curlを使用して複数のファイルをダウンロードするにはどうすればよいですか?

これも複雑ではありません。次の方法でURLを渡すだけです。

curl -O [URL1] -O [URL2] -O [URL3] ...

例:

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

上記のコマンドの動作は次のとおりです。

したがって、両方のURLのダウンロードの進行状況が出力に表示されていることがわかります。

Q4。 「移動」の問題を解決するにはどうすればよいですか?

場合によっては、curlコマンドにURLを渡すと、「Moved」や「MovedPermanently」などのエラーが発生することがあります。これは通常、入力URLが他のURLにリダイレクトされるときに発生します。たとえば、oneplus.comというウェブサイトを開くと、母国のURL(oneplus.inなど)にリダイレクトされるため、次のようなエラーが発生します。

curlをリダイレクトに従わせる場合は、代わりに-Lコマンドラインオプションを使用してください。

curl -L http://www.oneplus.com

Q5。中断した時点からダウンロードを再開するにはどうすればよいですか?

時々、ダウンロードが途中で中断されます。当然のことながら、時間とデータを節約するために、再試行すると、。中断された時点から開始することをお勧めします。 Curlを使用すると、-Cコマンドラインオプションを使用してこれを行うことができます。

例:

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

次のスクリーンショットは、中断後にダウンロードを再開するcurlコマンドを示しています。

結論

ご覧のとおり、コマンドラインからダウンロードする場合は、curlコマンドが便利なユーティリティです。ツールがより多くの機能を提供するので、ここで表面を引っかいただけです。このチュートリアルで説明したコマンドラインオプションの練習が終わったら、curlのマニュアルページにアクセスして詳細を確認できます。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)