Поиск по сайту:

Учебник по команде curl в Linux для начинающих (5 примеров)


На этой странице

  1. Команда curl Linux
  2. Q1. Как работает команда curl?
  3. Вопрос 2. Как заставить curl использовать то же имя загружаемого файла?
  4. Вопрос 3. Как загрузить несколько файлов с помощью curl?
  5. Q4. Как решить проблему с переездом?
  6. В5. Как возобновить загрузку с точки прерывания?
  7. Заключение

Хотя веб-браузеры являются основным средством, через которое пользователи загружают материалы из Интернета, есть некоторые команды Linux, которые также позволяют вам это делать. Эти инструменты пригодятся в безголовых системах, где нет графического интерфейса.

В этом уроке мы обсудим одну из таких команд — curl — которая, среди прочего, позволяет загружать файлы из Интернета. Обратите внимание, что примеры, обсуждаемые в этой статье, протестированы на Ubuntu 16.04 LTS.

Команда скручивания Linux

Команда 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.

Q1. Как работает команда curl?

Основное использование довольно простое — просто передайте URL-адрес в качестве входных данных для команды curl и перенаправьте вывод в файл.

Например:

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. Как решить проблему с переездом?

Иногда, когда вы передаете URL-адрес команде curl, вы получаете такие ошибки, как «Перемещено» или «Перемещено навсегда». Обычно это происходит, когда входной 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 — полезная утилита, если вы загружаете файлы через командную строку. Здесь мы только коснулись поверхности, так как инструмент предлагает гораздо больше возможностей. После того, как вы закончите практиковать параметры командной строки, описанные в этом руководстве, вы можете перейти к странице руководства curls , чтобы узнать больше об этом.