Еще в середине 1990-х годов, когда Интернет был в зачаточном состоянии, шведский программист по имени Даниэль Стенберг начал проект, который в конце концов перерос в то, что мы сегодня знаем как команду curl. Первоначально он стремился создать бот, который будет периодически загружать курсы обмена валют с веб-страницы и предоставлять пользователям IRC эквиваленты шведских крон в долларах США. С тех пор проект процветал, к нему добавились несколько протоколов и различные возможности.
Прежде всего curl представляет собой кроссплатформенную служебную программу для командной строки. Она позволяет взаимодействовать с различными серверами по множеству различных протоколов, использующих синтаксис URL.
Мы подготовили список из 15 способов использования команды curl для передачи данных и многого другого в Linux.
Содержание:
- Просмотр версии curl
- Загрузка файла
- Возобновление прерванной загрузки
- Загрузка нескольких файлов
- Загрузка URL-адреса из файла
- Использование прокси-сервера с аутентификацией или без нее
- Запрос HTTP-заголовков
- Создание запроса POST с помощью параметров
- Загрузка файлов с FTP-сервера с аутентификацией или без неё
- Загрузка URL-адреса из файла
- Указание агента пользователя
- Просмотр cookie-файлов сайта
- Отправка cookie-файлов сайта
- Изменение разрешения имени
- Ограничение скорости скачивания
- Выводы
Просмотр версии curl
Опции -V
или --version
возвращают не только версию, но и поддерживаемые протоколы и функции Вашей текущей версии.
Загрузка файла
Если хотите загрузить файл, можете использовать curl с опциями -O
или -o
. Первая сохранит файл в текущем рабочем каталоге с тем же именем, что и в удаленном хранилище, а вторая позволит указать другое имя файла и / или местоположение.
Возобновление прерванной загрузки
Если загрузка была прервана по какой-то причине (например, использованием Ctrl + C
), её можно очень легко возобновить. Использование -C -
(тире C, тире) указывает на то, что загрузка должна возобновиться с того места, где она была прервана.
Загрузка нескольких файлов
Следующей командой одновременно инициируется загрузка info.html
и about.html
с http://yoursite.com
и http://mysite.com
, соответственно.
Загрузка URL-адреса из файла
Если совместить curl с xargs, можно скачать файлы из списка URL-адресов в файле.
Использование прокси-сервера с аутентификацией или без нее
Если прокси-сервер находится за портом 8080 на proxy.yourdomain.com:
Можно пропустить -U user:password
, если прокси не требует аутентификации.
Запрос HTTP-заголовков
HTTP-заголовки позволяют удаленному веб-серверу отправлять дополнительную информацию о себе вместе с фактическим запросом. Это предоставляет клиенту подробную информацию о том, как обрабатывается запрос.
Чтобы запросить HTTP-заголовки с веб-сайта, нужно выполнить следующие действия:
Эта информация также доступна в инструментах разработчика браузера.
Создание запроса POST с помощью параметров
Следующая команда отправит параметры firstName
и lastName
вместе с соответствующими значениями на адрес https://yourdomain.com/info.php
.
Эту команду можно использовать для моделирования поведения обычной HTML-формы.
Загрузка файлов с FTP-сервера с аутентификацией или без неё
Если удаленный FTP-сервер ожидает соединения по адресу ftp://yourftpserver
, следующая команда загрузит файл yourfile.tar.gz
в текущую рабочую директорию. Можно пропустить -u username:password
, если FTP-сервер разрешает анонимные входы.
Загрузка файлов на FTP-сервер с аутентификацией или без неё
Чтобы загрузить локальный файл mylocalfile.tar.gz
на сайт ftp://yourftpserver
с помощью curl, выполните следующие действия:
Указание агента пользователя
Агент пользователя является частью информации, которая отправляется вместе с запросом HTTP. Он указывает браузер, который использовался клиентом для создания запроса. Давайте посмотрим, что использует наша текущая версия curl
по умолчанию, а позже изменим её на "I am a new web browser"
:
Просмотр cookie-файлов сайта
Чтобы узнать, какие файлы cookie загружаются на компьютер, нужно перейти по ссылке https://www.cnn.com?
и использовать следующую команду, чтобы сохранить их в файле cnncookies.txt
:
Затем можно использовать команду cat
для просмотра файла:
Отправка cookie-файлов сайта
Можно использовать файлы cookie, восстановленные в предыдущем разделе в последующих запросах на тот же сайт.
Изменение разрешения имени
Если Вы веб-разработчик и хотите протестировать локальную версию сайта yourdomain.com
, прежде чем запускать его для публичного доступа, вы можете сделать так, чтобы curl разрешил запуск http://www.yourdomain.com
на локальный хост. Таким образом, запрос на http://www.yourdomain.com
скажет curl запросить сайт у localhost
, вместо использования DNS или файла /etc/hosts
.
Ограничение скорости скачивания
Для того, чтобы curl не ограничивал Вашу пропускную способность, скорость загрузки можно ограничить до 100 Кб/с с помощью следующей команды:
Выводы
Спасибо за время, уделенное на прочтение статьи! Теперь Вы знаете о том, как можно использовать удобную и полезную команду curl в Linux.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
А можно ли сделать так, что бы CURL перекладывал файлы с одного интернет ресурса на другой. При этом у сайта-отправителя авторизация не требуется, а у сайта получателя, наоборот нужна.