Главная > Программы Команда curl. Синтаксис. Примеры использованияСurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом. Содержание
Синтаксис и опции curlСинтаксис команды следующий: curl [ОПЦИИ] [АРГУМЕНТ] В качестве аргумента задается, как правило, URL скачиваемого файла. Основные опции перечислены ниже -# — отображать простой прогресс-бар во время загрузки; Основные опции мы рассмотрим на простых примерах. Просмотр версии 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 c 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, имя пользователя user, пароль qwerty1234): # curl -x proxy.yourdomain.com:8080 -U user:qwerty1234 -O http://yourdomain.com/yourfile Если ваш прокси-сервер не требует аутентификации, опцию -U user:qwerty1234 указывать не нужно. Запрос HTTP-заголовковHTTP-заголовки позволяют удаленному веб-серверу помимо ответа на сам запрос отправлять дополнительную информацию. Она предоставляет клиенту данные о том, как обрабатывать ответ: Для запроса HTTP-заголовков веб-сайта выполните команду с опцией -I: # curl -I https://yourdomain.com ![]() Также эту информацию можно получить, воспользовавшись функциями браузера для разработчиков. cURL POST-запросы с параметрамиСледующая команда отправит на https://yourdomain.com/info.php параметры firstName и lastName с соответствующими значениями: # curl --data "firstName=Ivan&lastName=Ivanov" https://yourdomain.com/info.php Этим приемом можно пользоваться для симуляции работы обычных веб-форм. Скачивание файлов с FTP-сервераСледующая команда скачивает в текущую рабочую директорию файл yourfile с удаленного FTP-сервера ftp://yourftpserver (имя пользователя user, пароль qwerty1234): # curl -u user:qwerty1234 -O ftp://yourftpserver/yourfile Если FTP-сервер поддерживает анонимный вход, параметр –u с именем пользователя и пароля указывать не нужно. Загрузка файлов на FTP-серверДля загрузки локального файла mylocalfile.tar.gz воспользуйтесь следующей командой: # curl -u user:qwerty1234 -T mylocalfile.tar.gz ftp://yourftpserver Указание агента пользователяАгент пользователя – часть информации HTTP-запроса. Она показывает, каким браузером пользуется клиент. Можно посмотреть, что имеющаяся версия curl передает по умолчанию и установить новое значение: # curl -I http://localhost --user-agent "I am a new web browser" Запись файлов cookie с веб-сайтаХотите посмотреть, какие файлы cookie скачиваются на ваш компьютер, когда вы заходите на определенный сайт? Опция —cookie-jar сохраняет их список в файл, который в дальнейшем можно просмотреть при помощи команды cat. # curl --cookie-jar cookies.txt https://yourdomain.com/ Отправка файлов cookie на сайтПолученные в предыдущем примере файлы cookie можно использовать в дальнейших запросах к тому же самому сайту: # curl --cookie cookies.txt https://yourdomain.com Изменение разрешения именЕсли вы веб-разработчик и хотите протестировать локальную версию сайта, прежде чем загружать его на сервер, при помощи опции —resolve можно указать curl выполнять разрешение имени вашего сайта на адрес локального узла, например: # curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/ Таким образом, при запросе на http://www.yourdomain.com curl будет запрашивать сайт с локального узла, а не использовать DNS или файл /etc/hosts. Ограничение скорости скачиванияЧтобы curl не занимал всю пропускную способность канала, можно ограничить скорость скачивания при помощи опции —limit-rate: # curl --limit-rate 100K http://yourdomain.com/yourfile -O ЗаключениеМы рассмотрели краткую историю появления curl и наиболее характерные примеры применения этой команды. Для более подробной информации можно обратиться к соответствующей man-странице. Материал взят с сайта:Главная > Программы |