Перейти к содержанию

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

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

Синтаксис и опции 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 --version

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

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

curl -O http://yourdomain.com/yourfile

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

curl -o /tmp/examplе/newfile http://yourdomain.com/yourfile.tar.gz
сохранение файла под именем newfile.tar.gz в директории /tmp/examplе/

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

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

curl -C - -O http://yourdomain.com/yourfile

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

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

curl -O http://yoursite.com/info.html/info -O http://mysite.com/about.html/about

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

xargs -n 1 curl < listurls.txt

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

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

curl -x proxy.yourdomain.com:8080 -U пользователь:qwerty1234 -O http://yourdomain.com/yourfile

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

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

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

curl -я https://itproffi.ru

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

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

Следующая команда отправляет на https://yourdomain.com/info.php параметры firstName и lastName с соблюдаемыми значениями: $ curl --data "Имя=Иван&Фамилия=Иванов" https://yourdomain.com/info.php

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

Скачивание файлов с FTP-сервера

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

curl -u пользователь:qwerty1234 -O ftp://вашftpсервер/вашфайл

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

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

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

curl -u пользователь:qwerty1234 -T mylocalfile.tar.gz ftp://вашftpсервер

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

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

curl -I http://localhost --user-agent "Я новый веб-браузер"

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

curl --cookie-jar cookies.txt https://itproffi.ru/

Получение в обзоре файлов файлов cookies можно использовать в опросе к самому же самому сайту:

curl --cookie cookies.txt https://itproffi.ru

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

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

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

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

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

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

curl --limit-rate 100K http://yourdomain.com/yourfile -O