Вземете cURLy: 10 полезни неща, които можете да направите с cURL

Вземете cURLy: 10 полезни неща, които можете да направите с cURL

Когато започнем да научаваме за инструментите на командния ред, ние сме склонни да ги разглеждаме като едноцелеви. На това сте научени





cat

отпечатва съдържанието на файла,





ls

изброява всички елементи в директория и





du

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

man

файлове. Някои от тях могат да правят чудеса, когато се комбинират с други команди.



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

Този път се фокусираме върху къдрица , инструмент за прехвърляне на данни чрез редица интернет протоколи като HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP и др.





Опростено казано, cURL изпълнява различни заявки от клиент към сървър, установявайки връзка между тях посредством специфичен протокол и свързаните с него методи. Например, като HTTP клиент, cURL може да изпрати заявка за преглед или изтегляне на съдържание (метод на GET заявка) или за публикуване на съдържание чрез формуляр на уебсайт (метод на POST заявка). Много уеб приложения и услуги позволяват на cURL да взаимодейства с техните API (Application Programming Interface).

Тъй като функционалността им се припокрива до известна степен, cURL и wget често се сравняват помежду си. И двата инструмента могат да изтеглят съдържание от Интернет, но wget поддържа рекурсивно изтегляне, изстъргване на уеб и като цяло се чувства по -лесен за използване. Ако просто искате да изтеглите файлове от терминала, wget вероятно е по -добър избор.





От друга страна, ако имате нужда от усъвършенствани методи за HTTP удостоверяване и искате да качвате файлове, както и да ги изтегляте, струва си да се научите как да cURL. Също така, wget поддържа само HTTP (S) и FTP, докато cURL обхваща широк спектър от протоколи. Това означава, че cURL може да прави още готини неща - и ето десет примера, които го доказват.

1. Вземете метеорологичния отчет

Ако някой ви е казал да проверите времето от терминала, бихте очаквали да видите някои скучни номера. Не с тази команда.

curl http://wttr.in/LOCATION

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

curl wttr.in/Moon

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:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

В такъв случай,

cut

и

grep

събира информация за имената на файловете и я форматира така, че да се показват само файлове с посочени разширения. Ако изпълните командата без последната тръба:

curl 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 | while read l; do curl '$l' -o '${l##*/}'; done

Ако сте добре запознати регулярни изрази , можете да подобрите външния вид и ефективността на тази команда и да споделите резултата в коментарите.

3. Управление на файлове на FTP сървър

В наши дни не чуваме много за FTP, но това не означава, че е остарял. Всъщност много проекти с отворен код и дистрибуции на Linux споделят своя софтуер на FTP сървъри. Тъй като FTP се поддържа от cURL, можете да го използвате като прост FTP клиент за качване и изтегляне на файлове. Можете да разглеждате файловете на FTP сървър, като получите достъп до директориите:

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

За да влезете в поддиректория, въведете нейното име, последвано от наклонена черта (/).

Изтеглянето на файлове е подобно на изтеглянето на 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 (потребител):

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

Можете също да качвате файлове на FTP сървър с опцията -T (прехвърляне):

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

Тук можете също да дефинирате множество файлове като диапазон. Тази функция понякога се нарича „глобиране“. Ако имената на файловете не следват модел, просто ги избройте в къдрави скоби (

-T '{file1.txt,image27.jpg}'

). Обратно, ако имат подобни имена, приложете същата логика от примера за изтегляне на Tumblr и използвайте квадратни скоби (

-T 'photo[1-50].jpg'

). Уверете се, че сте предоставили пълния път към файловете, ако те не са в текущата ви директория.

4. Проверете дали даден уебсайт не работи

Всички сме били там. Уебсайт, от който абсолютно се нуждаете, изведнъж спира да работи. Тогава Facebook няма да се зареди. Изправени пред истински проблем от първия свят, какво правите?

Можете да го потърсите в Google, да помолите приятел да го тества вместо вас или да използвате един от онези сайтове с единично обслужване, които ви казват дали даден уебсайт не работи. Или можете просто да стартирате терминала и да стартирате cURL:

curl -Is https://www.twitter.com -L | grep HTTP/

Голямата буква I превключвам (-I) проверява HTTP заглавката на уеб страница и се добавя опцията -L (местоположение), за да накара cURL да следва пренасочванията. Това означава, че не е нужно да въвеждате пълния URL на Facebook; просто пиши facebook.com и cURL ще се погрижи за останалото благодарение на -L. Ако има пренасочвания, те ще бъдат показани със собствен HTTP статус.

Съобщението, което ни интересува, е „200 ОК“, което означава, че всичко с сайта е наред. Ако наистина е надолу, ще видите нещо подобно:

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

5. Разгънете Съкратени URL адреси

Съкратените URL адреси не са лоши по своята същност. Без тях би било трудно да се споделят връзки в Twitter и други социални мрежи с ограничен характер. Някои услуги за съкращаване на URL адреси предлагат и полезни анализи. Но винаги съществува риск някой да се опитва да скрие злонамерено съдържание зад съкратен URL адрес или че трол маскира Rickroll (или нещо много, много по -лошо). Ако някога изпитате подозрение за съкратен URL адрес по някаква причина, cURL може да ви помогне да го разширите и да разберете къде точно води до:

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

или

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

Можете да комбинирате cURL с

grep

или

sed

; основната разлика е във форматирането. Sed е един от онези инструменти, които всеки потребител на Linux трябва да знае, и допълва cURL в този и няколко други случая на използване. Нека не забравяме, че cURL може да изтегля файлове от съкратен URL адрес (при условие, че URL адресът всъщност сочи към файл):

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

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

6. Покажете своята признателност за ASCII чл

Разбира се, това не е особено полезно, но изглежда страхотно. С помощта на

pv

, помощна програма за наблюдение на напредъка на данните, cURL може да показва ASCII анимации в терминала.

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

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

В мрежата има много уебсайтове с всички видове ASCII изкуство: от невероятно детайлни, висококачествени парчета до странни, глупави и дори NSFW материали. Тази техника за дигитално изкуство датира от 60 -те години на миналия век и днес е част от интернет културата и историята, поддържана жива в множество колекции и инструменти, които ви позволяват конвертирате текст и изображения в ASCII арт . Можете да го използвате, за да украсите терминала си или да пошегувате приятелите си - каквото и да плава с вашата лодка.

7. Експериментирайте със социалните медии

Използването на социални медии от терминала не е нищо ново-вече ви показахме клиенти на Twitter от командния ред за Linux. Въпреки че вероятно няма да преминете към cURL като вашия онлайн инструмент за социализиране, добре е да знаете, че можете да публикувате във Facebook с него, както е описано тук. Ще забележите, че технически cURL не го прави сам; комбинация от инструменти свършва работата.

Що се отнася до 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

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

9. Поставяне на текст и споделяне на изображения

Нарушаването на работния ви процес никога не е добро за производителността и фокуса. Ако вършите по -голямата част от работата си в терминала, превключването към браузър само за споделяне на няколко файла може да бъде непрактично, ако не и досадно. За щастие някои услуги за pastebin и споделяне на файлове са родени да работят с cURL, така че можете да ги използвате директно от терминала, без потребителски акаунт.

Клин и Sprunge.us имат подобен синтаксис. С Clbin, вие изпращате локален файл или изхода на команда и той връща връзка към качения от вас текст:

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

Той също така поддържа качване на изображения (PNG, JPG и GIF):

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

Ако вместо това искате да използвате Sprunge.us, въведете:

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us засега не поддържа качване на изображения.

Ix.io се основава на същия принцип като предишните две услуги, с няколко допълнителни функции. За да качите файл, въведете:

cat 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

за специфичен скриптов или език за програмиране). Възможно е също да се ограничи колко пъти дадена връзка може да бъде видяна, като промените номера след

'read:1'

стойност:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.io е предназначен предимно за текстови файлове като изходен код или системни регистрационни файлове. Ако искате да качите различни файлови формати, използвайте Transfer.sh . Той поддържа изображения, криптиране на файлове и поддържа вашите файлове онлайн две седмици. Можете да качите до 5 GB данни в 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 и форматира изхода (тема на имейл и подател) с

tr

,

awk

,

sed

и/или

grep

команди. Обърнете внимание, че това решение е изключително опасно, защото излага вашите идентификационни данни за вход за всеки, който има достъп до вашия терминал. Първата версия показва името на изпращача, докато втората отпечатва само непрочетени теми на имейла:


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

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

Какво друго може да направи cURL?

cURL рядко се използва като самостоятелна команда. Повечето хора го използват като част от скрипт или приложение. Все пак е възможно да се създадат практически еднолинейни с cURL, както показахме тук. Много от тези примери са адаптирани от CommandLineFu, фантастичен източник на интелигентни хакове за командния ред и не трябва да ги считате за поставени в камък.

С достатъчно знания и опит можем да променим всяка команда, да я форматираме по различен начин или напълно да я заменим с по -добро решение. Можете ли да подобрите предложените ни cURL команди? Знаете ли за други готини приложения за cURL? Споделете вашите съвети в коментарите.

Кредити за изображения: Вътрешно въведение в командния ред от Осама Халид чрез Flickr.

Дял Дял Туит електронна поща Изтрийте тези файлове и папки на Windows, за да освободите дисково пространство

Трябва да изчистите дисковото пространство на вашия компютър с Windows? Ето файловете и папките на Windows, които могат безопасно да бъдат изтрити, за да се освободи място на диска.

Прочетете Напред
Свързани теми
  • Linux
  • FTP
  • Изтегляне на управление
  • Терминал
За автора Ивана Исадора Девчич(24 статии са публикувани)

Ивана Айседора е писател и преводач на свободна практика, любител на Linux и фенди KDE. Тя поддържа и популяризира безплатен софтуер с отворен код и винаги търси свежи, иновативни приложения. Разберете как да се свържете тук .

Още от Ивана Исадора Девчич

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате
Категория Linux