Curl linux что это такое

Содержание
  1. Команда curl. Синтаксис. Примеры использования
  2. Синтаксис и опции curl
  3. Просмотр версии curl
  4. Скачивание файла
  5. Возобновление прерванной загрузки
  6. Скачивание нескольких файлов
  7. Использование прокси-сервера
  8. Запрос HTTP-заголовков
  9. cURL POST-запросы с параметрами
  10. Загрузка файлов на FTP-сервер
  11. Указание агента пользователя
  12. Запись файлов cookie с веб-сайта
  13. Отправка файлов cookie на сайт
  14. Изменение разрешения имен
  15. Ограничение скорости скачивания
  16. Заключение
  17. Руководство по команде curl для начинающих
  18. Команда curl
  19. Q1. Как работает команда curl?
  20. Q2. Как заставить curl использовать то же имя для скачиваемого файла?
  21. Q3. Как скачать несколько файлов, используя curl?
  22. Q4. Как решить проблему с «Moved»?
  23. Q5. Как возобновить загрузку с точки прерывания?
  24. Заключение
  25. Команда Curl в Linux с примерами
  26. Установка Curl
  27. Установите Curl в Ubuntu и Debian
  28. Установите Curl на CentOS и Fedora
  29. Как использовать Curl
  30. Сохранить вывод в файл
  31. Скачать несколько файлов
  32. Возобновить загрузку
  33. Получить HTTP-заголовки URL-адреса
  34. Проверьте, поддерживает ли веб-сайт HTTP / 2
  35. Следить за перенаправлениями
  36. Сменить User-Agent
  37. Укажите максимальную скорость передачи
  38. Передача файлов через FTP
  39. Отправить файлы cookie
  40. Использование прокси
  41. Выводы

Команда curl. Синтаксис. Примеры использования

Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.

Синтаксис и опции curl

Синтаксис команды следующий:

В качестве аргумента задается, как правило, URL скачиваемого файла. Основные опции перечислены ниже

-# — отображать простой прогресс-бар во время загрузки;
-0 — использовать протокол http 1.0;
-1 — использовать протокол шифрования tlsv1;
-2 — использовать sslv2;
-3 — использовать sslv3;
-4 — использовать ipv4;
-6 — использовать ipv6;
-A — указать свой USER_AGENT;
-b — сохранить Cookie в файл;
-c — отправить Cookie на сервер из файла;
-C — продолжить загрузку файла с места разрыва или указанного смещения;
-m — максимальное время ожидания ответа от сервера;
-d — отправить данные методом POST;
-D — сохранить заголовки, возвращенные сервером в файл;
-e — задать поле Referer-uri, указывает с какого сайта пришел пользователь;
-E — использовать внешний сертификат SSL;
-f — не выводить сообщения об ошибках;
-F — отправить данные в виде формы;
-G — если эта опция включена, то все данные, указанные в опции -d будут передаваться методом GET;
-H — передать заголовки на сервер;
-I — получать только HTTP заголовок, а все содержимое страницы игнорировать;
-j — прочитать и отправить cookie из файла;
-J — удалить заголовок из запроса;
-L — принимать и обрабатывать перенаправления;
-s — максимальное количество перенаправлений с помощью Location;
-o — выводить контент страницы в файл;
-O — сохранять контент в файл с именем страницы или файла на сервере;
-p — использовать прокси;
—proto — указать протокол, который нужно использовать;
-R — сохранять время последнего изменения удаленного файла;
-s — выводить минимум информации об ошибках;
-S — выводить сообщения об ошибках;
-T — загрузить файл на сервер;
-v — максимально подробный вывод;
-y — минимальная скорость загрузки;
-Y — максимальная скорость загрузки;
-z — скачать файл, только если он был модифицирован позже указанного времени;
-V — вывести версию.

Основные опции мы рассмотрим на простых примерах.

Просмотр версии curl

Опция -V или —version выводит не только версию curl, но и краткую информацию о поддерживаемых протоколах и функциях:


Скачивание файла

Если вам требуется скачать файл, запустите curl с опцией –O или –o. Первая из них сохраняет файл в текущей рабочей директории под тем же именем, что и в удаленном месторасположении. Вторая опция позволяет вам указать другое имя и/или место для скачивания.

Cохранение файла под исходным именем (yourfile) в текущей рабочей директории.

Cохранение файла под именем newfile в директории /tmp/examplе/.

Возобновление прерванной загрузки

Если скачивание по какой-то причине было прервано (например, пользователь нажал Ctrl+C), вы легко можете возобновить его с момента остановки при помощи опции -C – (дефис, С, тире):

Читайте также:  Windows thin pc sp1 iso

Скачивание нескольких файлов

Следующая команда позволит вам скачать info.html с http://yoursite.com и about.html c http://mysite.com в один прием:

Если использовать curl вместе с командой xargs, можно скачивать файлы в соответствии со списком URL, заданном в файле (в данном примере listurls.txt):

Использование прокси-сервера

Если вы подключены через прокси-сервер, нужно указать его команде curl при помощи следующих опций (в данном примере имя сервера proxy.yourdomain.com, порт 8080, имя пользователя user, пароль qwerty1234):

Если ваш прокси-сервер не требует аутентификации, опцию -U user:qwerty1234 указывать не нужно.

Запрос HTTP-заголовков

HTTP-заголовки позволяют удаленному веб-серверу помимо ответа на сам запрос отправлять дополнительную информацию. Она предоставляет клиенту данные о том, как обрабатывать ответ:

Для запроса HTTP-заголовков веб-сайта выполните команду с опцией -I:

$ curl -I https://itproffi.ru

Также эту информацию можно получить, воспользовавшись функциями браузера для разработчиков.

cURL POST-запросы с параметрами

Следующая команда отправит на https://yourdomain.com/info.php параметры firstName и lastName с соответствующими значениями:

Этим приемом можно пользоваться для симуляции работы обычных веб-форм.

Следующая команда скачивает в текущую рабочую директорию файл yourfile с удаленного FTP-сервера ftp://yourftpserver (имя пользователя user, пароль qwerty1234):

Если FTP-сервер поддерживает анонимный вход, параметр –u с именем пользователя и пароля указывать не нужно.

Загрузка файлов на FTP-сервер

Для загрузки локального файла mylocalfile.tar.gz воспользуйтесь следующей командой:

Указание агента пользователя

Агент пользователя – часть информации HTTP-запроса. Она показывает, каким браузером пользуется клиент. Можно посмотреть, что имеющаяся версия curl передает по умолчанию и установить новое значение:

Хотите посмотреть, какие файлы cookie скачиваются на ваш компьютер, когда вы заходите на определенный сайт? Опция —cookie-jar сохраняет их список в файл, который в дальнейшем можно просмотреть при помощи команды cat.

Полученные в предыдущем примере файлы cookie можно использовать в дальнейших запросах к тому же самому сайту:

Изменение разрешения имен

Если вы веб-разработчик и хотите протестировать локальную версию сайта, прежде чем загружать его на сервер, при помощи опции —resolve можно указать curl выполнять разрешение имени вашего сайта на адрес локального узла, например:

Таким образом, при запросе на http://www.yourdomain.com curl будет запрашивать сайт с локального узла, а не использовать DNS или файл /etc/hosts.

Ограничение скорости скачивания

Чтобы curl не занимал всю пропускную способность канала, можно ограничить скорость скачивания при помощи опции —limit-rate:

Заключение

Мы рассмотрели краткую историю появления curl и наиболее характерные примеры применения этой команды. Для более подробной информации можно обратиться к соответствующей man-странице.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Руководство по команде curl для начинающих

Оригинал: Linux curl Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 26 июля 2018 года
Перевод: А. Кривошей
Дата перевода: февраль 2019 г.

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

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

Команда curl

Команда curl позволяет вам загружать данные из командной строки Linux. Ниже приводится ее синтаксис:

И вот что говорит об этой команде ее man-страница:

curl — это инструмент для передачи данных с или на сервер, используя один из поддерживаемых протоколов (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET и TFTP). Команда предназначена для работы без взаимодействия с пользователем.

curl предлагает множество полезных трюков, таких как поддержка прокси, пользовательская аутентификация, загрузка по FTP, HTTP post, SSL соединения, куки, передача файлов, возобновление загрузок, Metalink и многое другое.

curl работает на базе libcurl для всех функций, связанных с передачей данных. См. libcurl (3) для деталей.

Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам лучшее представление о том, как работает curl

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

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

Обратите внимание, что вы также можете использовать здесь опцию -o.

Читайте также:  Посмотреть сертификат p12 linux

Возвращаясь к нашему примеру, пока данные загружались в файл ‘test.torrent’ в моей системе, в командной строке был получен следующий вывод:

Вот что говорит справочная страница об индикаторе прогресса, который отображается в выводе:

curl обычно отображает индикатор хода выполнения операции, указывая количество переданных данных, скорость передачи, оставшееся время и т. д.
curl по умолчанию отображает эти данные на терминал, поэтому, если вы вызываете curl для выполнения операции, и он собирается писать выходные данные в терминал, он отключает индикатор прогресса, так как в противном случае он может смешать индикатор прогресса и данные.
Если вам нужен индикатор выполнения для запросов HTTP POST или PUT, вам нужно перенаправить вывод ответа в файл, используя shell redirect (>), -o [file] или аналоги.
Это не так для загрузки по FTP, так как эта операция не выдает данные на терминал.

Q2. Как заставить curl использовать то же имя для скачиваемого файла?

В предыдущем примере вы видите, что мы должны были явно указать имя загруженного файла. Однако, если вы хотите, вы можете заставить curl использовать имя загружаемого файла в качестве локального имени файла. Это можно сделать с помощью параметра командной строки -O.

Так что в этом случае был создан файл с именем ‘ubuntu-18.04-desktop-amd64.iso.torrent’.

Q3. Как скачать несколько файлов, используя curl?

Это тоже не сложно — просто передайте URL следующим образом:

Вот эта команда в действии:

Таким образом, вы можете видеть процесс загрузки для обоих URL-адресов.

Q4. Как решить проблему с «Moved»?

Иногда, когда вы передаете URL команде curl, вы получаете сообщения об ошибках типа «Moved» или «Moved Permanently». Это обычно происходит, когда входной URL перенаправляет на какой-либо другой URL. Например, вы открываете веб-сайт, скажем oneplus.com, и он перенаправляет вас на URL-адрес для вашей страны (например, oneplus.in), поэтому вы получаете сообщение об ошибке, подобное следующему:

Если вы хотите, чтобы curl следовал за перенаправлением, используйте параметр командной строки -L.

Q5. Как возобновить загрузку с точки прерывания?

Иногда загрузка прерывается. Поэтому, естественно, чтобы сэкономить время и данные, при повторной попытке вы захотите, чтобы загрузка началась с того момента, на котором она была прервана. Curl позволяет вам сделать это, используя опцию командной строки -C.

На следующем снимке экрана показана команда curl, возобновляющая загрузку после ее прерывания.

Заключение

Итак, вы можете видеть, что команда curl — полезная утилита, если вы хотите загружать файлы в командной строке. Мы показали только основы, так как она предлагает намного больше возможностей. Как только вы закончите практиковать параметры командной строки, обсуждаемые в этом руководстве, вы можете перейти на страницу руководства curl, чтобы узнать больше о ней.

Источник

Команда Curl в Linux с примерами

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 не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.

Установите Curl в Ubuntu и Debian

Установите Curl на CentOS и Fedora

Как использовать Curl

Синтаксис команды curl следующий:

В простейшей форме при вызове без каких-либо параметров curl выводит указанный ресурс на стандартный вывод.

Например, чтобы получить домашнюю страницу example.com вы должны запустить:

Команда напечатает исходный код домашней страницы example.com в окне вашего терминала.

Если протокол не указан, curl пытается угадать протокол, который вы хотите использовать, и по умолчанию будет использовать HTTP .

Сохранить вывод в файл

Чтобы сохранить результат команды curl , используйте параметр -o или -O .

Читайте также:  Дистрибутивы linux для восстановления данных

vue-v2.6.10.js -o сохраняет файл с предопределенным именем файла, которым в приведенном ниже примере является vue-v2.6.10.js :

Верхний регистр -O сохраняет файл с исходным именем:

Скачать несколько файлов

Чтобы загрузить сразу несколько файлов, используйте несколько параметров -O , за которыми следует URL-адрес файла, который вы хотите загрузить.

В следующем примере мы загружаем iso-файлы Arch Linux и Debian:

Возобновить загрузку

Вы можете возобновить загрузку, используя параметр -C — . Это полезно, если ваше соединение прерывается во время загрузки большого файла, и вместо того, чтобы начинать загрузку с нуля, вы можете продолжить предыдущую.

Например, если вы загружаете iso-файл Ubuntu 18.04 с помощью следующей команды:

и внезапно ваше соединение прерывается, вы можете возобновить загрузку с помощью:

Получить HTTP-заголовки URL-адреса

Заголовки HTTP — это пары ключ-значение, разделенные двоеточиями, содержащие такую информацию, как пользовательский агент, тип контента и кодировка. Заголовки передаются между клиентом и сервером с запросом или ответом.

Используйте параметр -I чтобы получить только HTTP-заголовки указанного ресурса:

Проверьте, поддерживает ли веб-сайт HTTP / 2

Чтобы проверить, поддерживает ли конкретный URL новый протокол HTTP / 2 , —http2 заголовки HTTP с помощью -I вместе с параметром —http2 :

Параметр -s указывает curl работать в автоматическом (тихом) режиме и скрывать индикатор выполнения и сообщения об ошибках.

Если удаленный сервер поддерживает HTTP / 2, curl печатает HTTP/2.0 200 :

В противном случае ответ будет HTTP/1.1 200 :

Если у вас curl версии 7.47.0 или новее, вам не нужно использовать параметр —http2 поскольку HTTP / 2 включен по умолчанию для всех соединений HTTPS.

Следить за перенаправлениями

По умолчанию curl не следует за заголовками HTTP Location.

Если вы попытаетесь получить версию google.com без www, вы заметите, что вместо получения источника страницы вы будете перенаправлены на версию с www:

Параметр -L указывает curl следовать любому перенаправлению, пока не достигнет конечного пункта назначения:

Сменить User-Agent

Иногда при загрузке файла удаленный сервер может быть настроен так, чтобы блокировать пользовательский агент Curl или возвращать различное содержимое в зависимости от устройства посетителя и браузера.

В подобных ситуациях для эмуляции другого браузера используйте параметр -A .

Например, для эмуляции Firefox 60 вы должны использовать:

Укажите максимальную скорость передачи

Параметр —limit-rate позволяет ограничить скорость передачи данных. Значение может быть выражено в байтах, килобайтах с суффиксом k , мегабайтах с суффиксом m и гигабайтах с суффиксом g .

В следующем примере curl загрузит двоичный файл Go и ограничит скорость загрузки до 1 МБ:

Эта опция полезна для предотвращения использования curl всей доступной полосы пропускания.

Передача файлов через FTP

Чтобы получить доступ к защищенному FTP-серверу с помощью curl , используйте параметр -u и укажите имя пользователя и пароль, как показано ниже:

После входа в систему команда выводит список всех файлов и каталогов в домашнем каталоге пользователя.

Вы можете загрузить один файл с FTP-сервера, используя следующий синтаксис:

Чтобы загрузить файл на FTP-сервер, используйте -T за которым следует имя файла, который вы хотите загрузить:

Иногда вам может потребоваться выполнить HTTP-запрос с определенными файлами cookie для доступа к удаленному ресурсу или для отладки проблемы.

По умолчанию при запросе ресурса с помощью curl файлы cookie не отправляются и не сохраняются.

Чтобы отправить файлы cookie на сервер, используйте переключатель -b за которым следует имя файла, содержащего файлы cookie, или строку.

Например, чтобы загрузить rpm-файл Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm вам необходимо передать файл cookie с именем oraclelicense со значением a :

Использование прокси

curl поддерживает различные типы прокси, включая HTTP, HTTPS и SOCKS. Для передачи данных через прокси-сервер используйте параметр -x ( —proxy ), за которым следует URL-адрес прокси.

Следующая команда загружает указанный ресурс с помощью прокси на 192.168.44.1 порт 8888 :

Если прокси-сервер требует аутентификации, используйте параметр -U ( —proxy-user ), за которым следует имя пользователя и пароль, разделенные двоеточием ( user:password ):

Выводы

curl — это инструмент командной строки, который позволяет передавать данные с удаленного хоста или на него. Это полезно для устранения неполадок, загрузки файлов и многого другого.

Примеры, показанные в этом руководстве, просты, но демонстрируют наиболее часто используемые параметры curl и призваны помочь вам понять, как работает команда curl .

Для получения дополнительной информации о curl посетите страницу документации по Curl .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Оцените статью