Что такое команда curl в Linux и что с ней можно делать?

Команда curl в Linux – отличный способ автоматизировать процесс загрузки и выгрузки данных с сервера. Curl поддерживает все важные протоколы, такие как HTTP, HTTPS, SFTP, FTP и другие.

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

Давайте углубимся и разберемся, что такое локон и как его использовать.

Что такое команда curl?

Изначально Curl был разработан для автоматизации периодической загрузки курсов валют с веб-страницы. Курсы валют в реальном времени предоставили пользователям IRC эквиваленты шведских крон в долларах США. Популярность curl росла в геометрической прогрессии, поскольку люди начали использовать его широко распространенные приложения.

Curl – один из старейших и самых популярных проектов с открытым исходным кодом из когда-либо существовавших. Название расшифровывается как Client URL и используется в бесчисленных системах по всему миру. Curl находит свое применение во множестве приложений, таких как веб-разработка и тестирование ошибок.

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

Установка curl в Linux

Хотя этот популярный пакет предустановлен в большинстве дистрибутивов Linux, вы можете легко загрузить curl, если он еще не установлен на вашем. Используйте следующие команды, чтобы установить curl на свой компьютер.

В Ubuntu и Debian:

 sudo apt install curl

В дистрибутивах на основе RHEL, таких как CentOS и Fedora:

 sudo yum install curl

Чтобы установить curl в Arch Linux, введите:

 sudo pacman -S curl

Связанный: Как управлять службами systemd с помощью команды systemctl в Linux

Как использовать команду curl

Curl использует следующий синтаксис для всех своих команд:

 curl options url

… где параметры и URL-адрес меняются в зависимости от поставленной задачи. Curl загружает исходный код URL-адреса всякий раз, когда вы не упоминаете параметр / задачу. Последняя версия curl также определяет протокол, если он не упоминается в URL-адресе, и по умолчанию использует HTTP.

Вот несколько полезных команд curl для выполнения различных функциональных задач:

Скачать файл с помощью curl

Вы можете загружать ресурсы по указанному URL-адресу с помощью curl. У этой команды есть два флага, которые вы можете использовать; -o и -O .

  • Команда -O сохраняет файл в текущем каталоге с тем же именем, что и на удаленном сервере.
  • С другой стороны, команда -o позволяет вам выбрать имя и расположение файла.

Вот пример обеих этих команд:

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

Файл загружается в текущий каталог с исходным именем, как на удаленном сервере.

 curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz

Когда вы запустите вышеупомянутую команду, curl загрузит и сохранит файл как newfile.tar.gz . Обратите внимание, что вам нужно будет указать имя файла и путь к каталогу в качестве входных данных.

Возобновление прерванной загрузки с помощью curl

Загрузки могут быть прерваны по нескольким причинам, например из-за сбоев в сети или просроченной ссылки. Функция возобновления прерванной загрузки помогает в таких ситуациях, избавляя вас от хлопот повторной загрузки всего файла.

Используйте флаг -C с -o или -O, чтобы возобновить прерванную загрузку с помощью curl.

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

Загрузка нескольких файлов с помощью curl

Не существует специальной команды для одновременной загрузки нескольких файлов через curl, но вы можете использовать флаги -o или -O несколько раз в одной команде для достижения аналогичных результатов.

Например:

 curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso

Вышеупомянутая команда загрузит файлы ISO с обоих URL-адресов одновременно в текущий каталог.

Получить HTTP-заголовки веб-страницы

Заголовки HTTP содержат важную информацию, такую ​​как пользовательский агент, тип контента и кодировка. Вы можете запросить HTTP-заголовок URL-адреса, используя флаги -I (с заглавной буквы i, а не L) и –http2 :

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

Выход:

Команда -I отображает различную информацию, включая сведения о серверном программном обеспечении, дату, тип содержимого, состояние X-кеша и многое другое.

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

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

Чтобы решить эту проблему, вы можете установить максимальную скорость передачи для своих загрузок с помощью curl. Используйте метод –limit-rate, за которым следует модификатор k , m или g (обозначает килобайты, мегабайты или гигабайты соответственно).

Следующая команда ограничивает скорость передачи до 1 МБ / с:

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

Выход:

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

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

Используйте следующую команду для подключения к FTP-серверу:

 curl -u username:password ftp://ftp.example.com/

… где имя пользователя и пароль – это учетные данные для входа на сервер.

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

 curl -u username:password -O ftp://ftp.example.com/file.tar.gz

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

 curl -T newfile.tar.gz -u username:password ftp://ftp.example.com

Команда -T, за которой следует указанный файл, загружает его на FTP-сервер.

Связанный: Как безопасно передавать файлы в Linux с помощью sftp

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

Curl поддерживает множество различных прокси, таких как HTTPS, HTTP и SOCKS. Вы можете использовать эти прокси для безопасной передачи данных с помощью curl.

Используйте следующую команду для настройки прокси в curl:

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

Параметр -x подключает вас к порту 8888 на сервере 192.168.44.1. Убедитесь, что вы заменили сведения о прокси в команде на прокси, к которому вы хотите подключиться. Вышеупомянутый прокси-сервер не требует аутентификации, но вы можете получить доступ к защищенному прокси, используя следующий синтаксис:

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

Укажите имя пользователя и пароль, разделенные знаком C olon рядом с флагом -U .

Просмотр сведений о версии

Эта команда пригодится, когда вы хотите проверить информацию о версии пакета. Используйте флаг –version, чтобы просмотреть версию curl:

 curl --version

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

Определение преимуществ команды curl в Linux

Curl оснащен множеством опций для автоматизации передачи данных на вашем компьютере. Функция возобновления прерванных загрузок и поддержка FTP пригодится в нескольких приложениях.

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