Пример использования команды Linux Curl

Команда curl может использоваться для передачи файлов по сети или из Интернета с использованием различных форматов, включая http, https, ftp и даже smb.

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

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

Основное использование команды curl

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

Например, введите следующую команду в окне терминала:

локон http://linux.lifewire.com/cs/linux101/g/curl.htm

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

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

curl http://linux.lifewire.com/cs/linux101/g/curl.htm | Больше

Вывести содержимое curl в файл

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

Чтобы сохранить содержимое в файл, все, что вам нужно сделать, это указать переключатель минус o (-o) следующим образом:

завиток -o  

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

curl -o curl.htm http://linux.lifewire.com/cs/linux101/g/curl.htm

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

Вы можете упростить это далее, используя минус O (-O) следующим образом:

curl -O http://linux.lifewire.com/cs/linux101/g/curl.htm

Это будет использовать часть имени файла в URL и сделать его именем файла, в который будет сохранен URL. В приведенном выше примере файл будет называться curl.htm.

Запустите команду Curl в фоновом режиме

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

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

Чтобы выполнить команду без вывода сообщений, используйте следующую команду:

завиток -s -O 

Чтобы заставить команду работать в фоновом режиме, вам нужно использовать амперсанд () следующим образом:

завиток -s -O  

Выполнение команды culr без индикатора выполнения более упрощено, но вы не будете знать, сколько времени займет передача или примерное время ее выполнения.

Загрузка нескольких URL с помощью Curl

Вы можете скачать с нескольких URL, используя одну команду curl. 

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

curl -O http://www.mysite.com/page1.html -O http://www.mysite.com/page2.html

Представьте, что у вас есть папка с 100 изображениями, которая называется image1.jpg, image2.jpg, image3.jpg и т. Д. Вам не нужно вводить все эти URL-адреса.

Для этого вы можете использовать квадратные скобки для указания диапазона. Например, чтобы получить файлы с 1 по 100, вы можете указать следующее:

локон -O http://www.mysite.com/images/image[1-100].jpg

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

Например, представьте, что вы хотите загрузить www.google.com и www.bing.com. Вы можете просто использовать следующую команду для выполнения этого:

curl -O http: // www. {google, bing} .com

Отображение прогресса

По умолчанию команда curl возвращает следующую информацию при загрузке URL:

  • Общее количество %: Процент от общего числа выполненных переводов.
  • Всего байт: Общий размер передачи в байтах.
  • Получено / Передано%Процент передачи завершен.
  • Получено / Передано байтов: Количество загруженных байтов.
  • Средняя скорость загрузки: Скорость загрузки в байтах в секунду.
  • Средняя скорость загрузки: Скорость загрузки в байтах в секунду.
  • Общее время: Расчетное время для завершения текущей операции.
  • Время проведено: Время прошло с начала передачи.
  • Время вышло: Ожидаемое время для завершения передачи.
  • Текущая скорость: Текущая скорость передачи в байтах в секунду.

Если вы предпочитаете простой индикатор выполнения, просто укажите переключатель минус хеш (- #) следующим образом:

завиток - # -O 

Обработка перенаправлений

Представьте, что вы указали URL-адрес как часть команды curl, и думаете, что у вас есть правильный адрес для загрузки большого файла, чтобы вернуться позже и обнаружить, что все, что у вас есть, это веб-страница с сообщением «эта страница была перенаправлена ​​на сайт www.blah». ком». Это было бы раздражающим, не так ли?

Команда curl умна в том, что она может следовать за перенаправлениями. Все, что вам нужно сделать, это использовать переключатель минус L (-L) следующим образом:

завиток -OL 

Уменьшить скорость загрузки

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

К счастью, вы можете уменьшить скорость загрузки с помощью команды curl.

curl -O - предельная скорость 1м 

Скорость может быть указана в килобайтах (k или K), мегабайтах (m или m) или гигабайтах (g или G).

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

Скачать файлы с FTP-сервера

Команда curl может обрабатывать не только передачу файлов HTTP. Он может обрабатывать FTP, GOPHER, SMB, HTTPS и многие другие форматы.

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

curl -u пользователь: пароль -o 

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

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

curl -u пользователь: пароль -T  

Имена файлов и могут использовать тот же шаблон сопоставления, что и для загрузки нескольких файлов HTTP.

Передача данных формы в форму

Вы можете использовать curl для заполнения онлайн-формы и отправки данных, как если бы вы заполнили их самостоятельно. Многие популярные сервисы, такие как Google, блокируют такой вид использования.

Представьте, что есть форма с именем и адресом электронной почты. Вы можете отправить эту информацию следующим образом:

curl -d name = john email=john@mail.com www.mysite.com/formpage.php

Существуют различные способы передачи информации о форме. Приведенная выше команда использует базовый текст, но если вы хотите использовать множественное кодирование, которое позволяет передавать изображения, вам нужно будет использовать переключатель минус F (-F).

Ссылка на основную публикацию