Не работает команда curl

Curl не распознается как внутренняя или внешняя команда, операционная программа или командный файл

Я установил curl и установил его как environment variable в моей системе. Но при запуске команды curl , которая дает ошибку ‘curl’ is not recognized as an internal or external command, operable program or batch file. , я попытался перезагрузить мою систему, но не нужен. Мне нужно, чтобы это приложение было загружено в HockeyApp . Пожалуйста, помогите мне. Я использую Windows 8.1.

Шаги по установке завитка в windows

Установить cURL в Windows

Для установки cURL в Windows предусмотрено 4 шага.

Шаг 1 и шаг 2 — установить библиотеку SSL.
Шаг 3 — установить cURL.
Шаг 4 — установить последний сертификат

Шаг первый: установите распространенные распространяемые компоненты Visual С++ 2008

От https://www.microsoft.com/en-za/download/details.aspx?id=29
Для 64-битных систем
Распространяемые материалы Visual С++ 2008 (x64)
Для 32-битных систем
Распространяемые материалы Visual С++ 2008 (x32)

Шаг второй: установите Win (32/64) OpenSSL v1.0.0k Light

От http://www.shininglightpro.com/products/Win32OpenSSL.html
Для 64-битных систем
Win64 OpenSSL v1.0.0k Light
Для 32-битных систем
Win32 OpenSSL v1.0.0k Light

Шаг третий: установите cURL

В зависимости от того, является ли ваша система 32 или 64 бит, загрузите соответствующий ** curl.exe. **
Например, перейдите в раздел Win64 — Generic и загрузите двоичный файл Win64 с поддержкой SSL (тот, где SSL не вычеркнут).
Посетите http://curl.haxx.se/download.html
Более конкретная ссылка: http://curl.haxx.se/latest.cgi?curl=win64-ssl-sspi

Скопировать файл curl.exe в C:\Windows\System32

Шаг четвертый: установите последние сертификаты

Не пропустите этот шаг.
Загрузите последнюю копию действительных файлов CERT из https://curl.haxx.se/ca/cacert.pem
Скопируйте его в ту же папку, куда вы поместили curl.exe(C:\Windows\System32), и переименуйте ее как curl-ca-bundle.crt

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

1 — На рабочем столе щелкните правой кнопкой мыши Мой компьютер и выберите Свойства.

2 — Нажмите Расширенные настройки системы.

3 — В окне «Свойства системы» нажмите кнопку Переменные среды.

4 — Выберите Путь и нажмите Изменить.

5 — добавьте ; c:\путь для завивки каталога в конце.

5 — Нажмите ОК.

6 — Закрыть и заново открыть командную строку

Источник

Как пользоваться curl

Нам часто приходится загружать различные файлы из интернета, например, исполняемые файлы программ, файлы скриптов, архивы с исходниками. Но не всегда это нужно делать через браузер. Во многих ситуациях гораздо проще выполнить все действия через терминал. Поскольку таким образом вы можете автоматизировать процесс. С другой стороны, веб-мастерам время от времени приходится тестировать доступность веб-сайтов, проверять отправляемые и получаемые заголовки и многое другое.

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

Что такое curl?

На самом деле, curl — это больше чем просто утилита командной строки для Linux или Windows. Это набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах и других операций с URL адресами.

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

Читайте также:  Почему не работает фемида

Команда curl

Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:

$ curl опции ссылка

Теперь рассмотрим основные опции:

  • -# — отображать простой прогресс-бар во время загрузки;
  • -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 linux, но здесь перечислено все основное, что вам придется использовать.

Как пользоваться curl?

Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.

Загрузка файлов

Самая частая задача — это загрузка файлов linux. Скачать файл очень просто. Для этого достаточно передать утилите в параметрах имя файла или html страницы:

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

curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md

А если вы хотите, чтобы полученный файл назывался так же, как и файл на сервере, используйте опцию -O:

curl -O https://raw.githubusercontent.com/curl/curl/master/README.md

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

curl -# -C — -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Если нужно, одной командой можно скачать несколько файлов:

curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Еще одна вещь, которая может быть полезной администратору — это загрузка файла, только если он был изменен:

curl -z 21-Dec-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

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

Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:

curl —limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Здесь нужно указать количество килобайт в секунду, которые можно загружать. Также вы можете разорвать соединение если скорости недостаточно, для этого используйте опцию -Y:

curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md

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

Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:

curl -T login.txt ftp://speedtest.tele2.net/upload/

Или проверим отправку файла по HTTP, для этого существует специальный сервис:

В ответе утилита сообщит где вы можете найти загруженный файл.

Отправка данных POST

Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:

Читайте также:  Не работают дворники ниссан пульсар

curl -d «field1=val&fileld2=val1″http://posttestserver.com/post.php

Если вас не устраивает такой вариант отправки, вы можете сделать вид, что отправили форму. Для этого есть опция -F:

curl -F «password=@pass;type=text/plain» http://posttestserver.com/post.php

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

Передача и прием куки

Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:

curl -c cookie.txt http://posttestserver.com/post.php

Затем можно отправить cookie curl обратно:

curl -b cookie.txt http://posttestserver.com/post.php

Передача и анализ заголовков

Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:

curl -I https://losst.ru

А опция -H позволяет отправить нужный заголовок или несколько на сервер, например, можно передать заголовок If-Modified-Since чтобы страница возвращалась только если она была изменена:

curl -I —header ‘If-Modified-Since: Mon, 26 Dec 2016 18:13:12 GMT’ https://losst.ru

Аутентификация curl

Если на сервере требуется аутентификация одного из распространенных типов, например, HTTP Basic или FTP, то curl очень просто может справиться с такой задачей. Для указания данных аутентификации просто укажите их через двоеточие в опции -u:

curl -u ftpuser:ftppass -T — ftp://ftp.testserver.com/myfile_1.txt

Точно так же будет выполняться аутентификация на серверах HTTP.

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

Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:

curl -x proxysever.test.com:3128 http://google.co.in

Выводы

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

Источник

Команда 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 .

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 .

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

Источник

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