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

Curl Command in Linux with Examples

22 Июня 2020 | Терминал

В этом руководстве мы покажем вам, как использовать инструмент скручивания, на практических примерах и подробных объяснениях наиболее распространенных опций скручивания.

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

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


Установка Curl 

Пакет curl уже предустановлен в большинстве дистрибутивов Linux.

Чтобы проверить, установлен ли пакет Curl в вашей системе, откройте консоль, введите curl и нажмите клавишу ввода. Если вы curl установили, система напечатает curl: try 'curl --help' or 'curl --manual' for more information . В противном случае вы увидите нечто подобное curl command not found .

Если curl он не установлен, вы можете легко установить его, используя менеджер пакетов вашего дистрибутива.

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

sudo apt update sudo apt install curl 


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

sudo yum install curl 


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

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

curl [options] [URL...]
 

В простейшем виде, когда вызывается без какой-либо опции, curl отображает указанный ресурс для стандартного вывода.

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

curl example.com 


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

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


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

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

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

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js 


    Прописные буквы -O сохраняют файл с исходным именем файла:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js 


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

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

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

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \      -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso 


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

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

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

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso 


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

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso 


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

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

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

curl -I --http2 https://www.ubuntu.com/ 




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

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

curl -I --http2 -s https://baks.dev | grep HTTP 


 -s
Опция указывает curl работать в тихой (Quiet) и скрыть сообщения метровые прогресса и ошибок.

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

HTTP/2 200
 

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

HTTP/1.1 200 OK
 

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

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

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

curl google.com 



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

curl -L google.com 


Изменить User-Agent 

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

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

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

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/ 


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

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

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

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz 


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


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

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

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/ 


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

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

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz 


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

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/ 


Отправить куки

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

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

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

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

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm 


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

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

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

curl -x 192.168.44.1:8888 http://linux.com/ 


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

curl -U username:password -x 192.168.44.1:8888 http://linux.com/ 


Вывод

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

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

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


    Комментарии

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

Загрузка комментариев...