Получите CURLy: 10 полезных вещей, которые вы можете сделать с CURL

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

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

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

локон-команда введение

На этот раз мы сосредоточимся на cURL, инструменте для передачи данных через ряд интернет-протоколов, таких как HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP и другие.

Проще говоря, cURL выполняет различные запросы от клиента к серверу, устанавливая соединение между ними посредством определенного протокола и связанных с ним методов. Например, в качестве HTTP-клиента cURL может отправлять запрос на просмотр или загрузку контента (метод запроса GET) или разместить контент через форму на веб-сайте (метод запроса POST). Многие веб-приложения и службы позволяют cURL взаимодействовать со своими API-интерфейсами (интерфейс прикладного программирования).

Поскольку их функциональность в некоторой степени перекрывается, cURL и wget

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

Wget, вероятно, лучший выбор.

С другой стороны, если вам нужны продвинутые методы HTTP-аутентификации и вы хотите загружать и скачивать файлы, стоит научиться делать cURL. Кроме того, wget поддерживает только HTTP (S) и FTP, а cURL охватывает широкий спектр протоколов. Это означает, что cURL может делать больше крутых вещей — и вот десять примеров, чтобы доказать это.

1. Получить отчет о погоде

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

curl http://wttr.in/LOCATION

локон-команды всепогодный

Информация предоставляется приложением CLI под названием wego, но если вы не хотите его устанавливать, cURL может получить прогноз с веб-интерфейса wttr.in. Все, что ему нужно — это место, для которого вы хотите получить прогноз. Просто введите название города, код аэропорта или текущий IP-адрес. Новая функция показывает информацию о фазах луны, если вы наберете:

curl wttr.in/Moon

локон-команда-Moonphase

2. Скачать файлы и возобновить загрузку

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

; например, при загрузке нескольких файлов одновременно или если вы хотите приостановить загрузку. Хотя cURL не является популярным выбором для одновременной загрузки (рекомендуется wget), вы все равно можете использовать его для этой цели, комбинируя его мощные опции (переключатели). Для начала вам понадобится прямая ссылка на файл. В этом примере мы будем использовать PDF-файл журнала Linux Voice.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

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

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

По умолчанию файлы сохраняются в текущем каталоге (проверьте с помощью PWD команда). Чтобы сохранить их в другом месте, укажите путь после ключа -o. Ключ -C — позволяет cURL возобновить загрузку. Вы можете приостановить его, нажав Ctrl + C в терминале, и возобновить, снова выполнив ту же команду загрузки:

локон-команда-резюме-скачать

cURL отображает ход загрузки в виде таблицы, со столбцами, содержащими информацию о скорости загрузки, общем размере файла, прошедшем времени и т. д. Если вам это не нравится, вы можете выбрать более простой индикатор выполнения, добавив — # или –progress-bar к вашей команде cURL.

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

curl -O file1.txt -O file2.pdf -O file3.zip

С помощью других инструментов командной строки мы можем пакетно загрузить все изображения PNG и JPG из блога Tumblr:

локон http://concept-art.tumblr.com/ | grep -o 'src = "[^"] *. [png-jpg] "' | cut -d \" -f2 | пока читаю л; do curl "$ l" -o "$ {l ## * /}"; сделанный

В этом случае, резать а также Grep Соберите информацию об именах файлов и отформатируйте ее так, чтобы отображались только файлы с указанными расширениями. Если вы запустите команду без последнего канала:

локон http://concept-art.tumblr.com/ | grep -o 'src = "[^"] *. [png-jpg] "' | cut -d \" -f2

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

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src = "[^"] *. [png-jpg] "' | cut -d \" -f2

Вы можете изменить диапазон, изменив числа в квадратных скобках. Опять же, эта команда будет только перечислять изображения; чтобы скачать их, запустите полную команду в каталоге, где вы хотите сохранить изображения:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src = "[^"] *. [png-jpg] "' | cut -d \" -f2 | пока читаю л; do curl "$ l" -o "$ {l ## * /}"; сделанный

Если вы хорошо разбираетесь в регулярных выражениях

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

3. Управление файлами на FTP-сервере

В настоящее время мы мало слышим о FTP, но это не значит, что он устарел. Фактически, многие проекты с открытым исходным кодом и дистрибутивы Linux делятся своим программным обеспечением на FTP-серверах. Поскольку FTP поддерживается cURL, вы можете использовать его как простой FTP-клиент

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

curl ftp://ftp.debian.org/debian/

Чтобы ввести подкаталог, введите его имя и косую черту (/).

завиток-команда-FTP-просмотр

Загрузка файлов аналогична загрузке HTTP, описанной в предыдущем разделе. Вы можете использовать -o или -O и добавить -C — если вы хотите приостановить загрузку.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

Хотя cURL не поддерживает рекурсивную загрузку (помните, wget поддерживает!), Он все же может загружать сразу несколько файлов. Единственное условие — имена файлов следуют шаблону. Например, мы могли бы скачать с сервера хостинга обоев, где все обои называются «wallpaperNUMBER»:

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

Некоторые FTP-серверы требуют проверки подлинности перед загрузкой файлов. cURL позволяет войти в систему с опцией -u (user):

curl -u имя пользователя: пароль -O ftp://ftp.protectedserver.com/files/example.txt

Вы также можете загружать файлы на FTP-сервер с опцией -T (передача):

curl -u имя пользователя: пароль -T /home/user/Documents/test.txt ftp://ftp.myserver.com

Здесь вы также можете определить несколько файлов в качестве диапазона. Эту функцию иногда называют «глобализация». Если имена файлов не соответствуют шаблону, просто перечислите их в фигурных скобках (-T "{file1.txt, image27.jpg}"). И наоборот, если у них одинаковые имена, примените ту же логику из примера загрузки Tumblr и используйте квадратные скобки (-Т "фото [1-50] .jpg"). Обязательно укажите полный путь к файлам, если они не находятся в вашем текущем каталоге.

4. Проверьте, не работает ли веб-сайт

Мы все были там. Веб-сайт, который вам абсолютно необходим, внезапно перестает работать. Тогда Facebook не загрузится. Столкнувшись с настоящей проблемой первого мира, что вы делаете?

Вы можете найти его в Google, попросить друга протестировать его для вас или использовать один из тех сайтов, обслуживающих один человек, которые сообщают вам, не работает ли веб-сайт. Или вы можете просто запустить терминал и запустить cURL:

curl - это https://www.twitter.com -L | grep HTTP /

Переключатель I в верхнем регистре (-I) проверяет заголовок HTTP веб-страницы, и добавляется опция -L (расположение), чтобы cURL следовал за перенаправлениями. Это означает, что вам не нужно вводить полный URL-адрес Facebook; просто напишите facebook.com, а cURL позаботится обо всем остальном благодаря -L. Если есть какие-либо перенаправления, они будут отображаться со своим собственным статусом HTTP.

локон-команда-клиент-статус

Сообщение, которое нас интересует, это «200 OK», что означает, что с веб-сайтом все в порядке. Если это действительно не работает, вы увидите что-то вроде этого:

локон-команда-клиент-статус вниз

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

5. Разверните Сокращенные URL

Сокращенные URL-адреса не являются плохими. Без них было бы сложно делиться ссылками в твиттере

и другие ограниченные по характеру социальные сети. Некоторые сервисы сокращения URL

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

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

curl -sIL http://buff.ly/1lTcZSM | grep ^ Местоположение;

или же

curl -sI http://buff.ly/1lTcZSM | sed -n 's / Location: * // p';

локон-команда-расширение

Вы можете комбинировать cURL с Grep или же СЕПГ; Основное отличие заключается в форматировании. Sed — это один из тех инструментов, который должен знать каждый пользователь Linux

и дополняет cURL в этом и нескольких других случаях использования. Давайте не будем забывать, что cURL может загружать файлы с укороченного URL (при условии, что URL действительно указывает на файл):

curl -L -o filename.txt http: //short.url

Синтаксис такой же, как и для других загрузок cURL, а опция -L обеспечивает перенаправление с сокращенного URL-адреса на исходный.

6. Покажите свою признательность за ASCII Art

Правда, это не особенно полезно, но выглядит круто. С помощью ру, Утилита для мониторинга прогресса данных, cURL может отображать анимации ASCII в терминале.

curl -s http: //artscene.textfiles \ .com / vt100 / wineglas.vt | pv -L9600 -q

локон-команд-ASCII-анимация

Опции -s и -q держат обе команды в тихом (тихом) режиме. Параметр -L здесь относится к команде pv и позволяет вам изменять скорость передачи данных в байтах в секунду. Другими словами, если анимация движется слишком быстро или слишком медленно, попробуйте поиграть с этим числом. Помимо анимации, cURL может отображать простое, статичное искусство ASCII:

локон-команда-AsciiArt

В Интернете есть множество веб-сайтов со всеми видами ASCII-произведений искусства: от удивительно подробных, высококачественных произведений до странных, глупых и даже NSFW-материалов. Эта техника цифрового искусства восходит к 1960-м годам, и сегодня она является частью интернет-культуры и истории.

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

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

7. Экспериментируйте с социальными медиа

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

, Хотя вы, вероятно, не переключитесь на cURL в качестве онлайн-инструмента для общения, полезно знать, что вы можете публиковать в нем Facebook, как описано здесь.

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

завиток-facebook11

Что касается Twitter, раньше можно было управлять им напрямую из терминала с помощью cURL. Тогда Twitter изменил свой API, и теперь есть специальный клиент cURL для Twitter под названием Twurl. Это не самая простая вещь для использования, особенно для начинающих, и она требует аутентификации с помощью рекламной платформы Twitter. Это имеет смысл, если вы разработчик или опытный пользователь, но не так много, если вы просто хотите твитнуть из командной строки. Тем не менее, есть способы повеселиться с Twitter. Вы можете использовать cURL для проверки количества подписчиков пользователя:

curl -s https://twitter.com/username | grep -o '[0-9,] * Followers';

локон-команда-твиттер-последователи

8. Найдите свой внешний IP-адрес

Найти ваш локальный IP-адрес достаточно просто — просто запустите Ifconfig или обратитесь к апплету управления сетью. Что касается внешнего IP, большинство людей используют специализированные веб-сайты для получения этой информации. Тем не менее, некоторые вещи проще сделать из терминала

и это может быть одним из них. Вы также можете создать псевдоним

для команды cURL. Есть несколько онлайн-сервисов, которые сотрудничают с cURL:

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

Некоторые могут рассказать вам больше о любом внешнем IP-адресе:

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

локон-команда-IPAddress

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

9. Вставьте текст и обмениваться изображениями

Нарушение вашего рабочего процесса никогда не идет на пользу продуктивности и концентрации

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

Clbin и Sprunge.us имеют схожий синтаксис. С Clbin вы передаете локальный файл или вывод команды, и он возвращает ссылку на ваш загруженный текст:

кот textfile.txt | curl -F 'clbin =<-' https://clbin.com

Он также поддерживает загрузку изображений (PNG, JPG и GIF):

curl -F 'clbin=@image.png' https://clbin.com

Если вы хотите использовать Sprunge.us вместо этого, введите:

кот textfile.txt | curl -F 'sprunge =<-' http://sprunge.us

Sprunge.us пока не поддерживает загрузку изображений.

Ix.io основан на том же принципе, что и предыдущие два сервиса, с некоторыми дополнительными функциями. Чтобы загрузить файл, введите:

кошка file.txt | curl -F 'f: 1 =<-' ix.io

или же

curl -F 'f: 1=@file.txt' ix.io

Когда вы получаете ссылку на загруженный текст, вы можете изменить его URL, чтобы показать подсветку синтаксиса (с помощью ix.io/yourpaste+, ix.io/yourpaste/, или же ix.io/yourpaste/language для конкретного сценария или языка программирования). Также можно ограничить количество просмотров ссылки, изменив число после 'Следующим образом: 1' значение:

кошка file.txt | curl -F 'f: 1 =<-' -F 'read:1=2' ix.io

Ix.io в первую очередь предназначен для текстовых файлов, таких как исходный код или системные журналы. Если вы хотите загрузить различные форматы файлов, используйте Transfer.sh. Он поддерживает изображения, шифрование файлов и поддерживает ваши файлы в сети в течение двух недель. Вы можете загрузить до 5 ГБ данных в Transfer.sh. Вот как:

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

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

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. Проверьте непрочитанную почту на GMail

Существует огромный потенциал для разблокировки в cURL, если вы хотите вникнуть в детали протоколов, связанных с электронной почтой (SMTP, POP, IMAP). Для быстрой проверки электронной почты подойдет эта команда. Он анализирует ваш канал GMail и форматирует выходные данные (тему и адрес электронной почты) с тр, AWK, СЕПГ и / или Grep команды. Обратите внимание, что это решение крайне небезопасно, поскольку оно предоставляет ваши учетные данные для входа любому, кто имеет доступ к вашему терминалу. Первая версия показывает имя отправителя, а вторая печатает только непрочитанные темы письма:

curl -u username: password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\ n' | awk -F '' '{for (i = 2; i<=NF; i++) {print $i}}' | sed -n "s/\(.*\)\(.*\).*/\2 - \1/p"


curl -u username: password --silent "https://mail.google.com/mail/feed/atom" | grep -oPm1 "(?<=)[^<]+" | sed '1d'

локон-команда-чек-Gmail

Что еще может сделать cURL?

cURL редко используется как отдельная команда. Большинство людей используют его как часть сценария или приложения. Тем не менее, как мы продемонстрировали здесь, возможно создать практичные однострочные с помощью cURL. Многие из этих примеров были адаптированы из CommandLineFu

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

Обладая достаточными знаниями и опытом, мы можем изменить каждую команду, отформатировать ее по-разному или полностью заменить ее на лучшее решение. Можете ли вы улучшить наши предлагаемые команды cURL? Знаете ли вы какие-либо другие интересные варианты использования cURL? Поделитесь своими советами в комментариях.

Кредиты изображений: Внутри Введение в командную строку Усамы Халида через Flickr.

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