Gaukite cURLy: 10 naudingų dalykų, kuriuos galite padaryti naudodami cURL

Gaukite cURLy: 10 naudingų dalykų, kuriuos galite padaryti naudodami cURL

Kai pradedame mokytis apie komandinės eilutės įrankius, mes linkę juos laikyti vienkartiniais. Jūs to mokote





cat

spausdina failo turinį,





ls

išvardija visus katalogo elementus ir





du

rodo disko vietos naudojimą. Tačiau daugelis komandinės eilutės įrankių turi daugybę variantų, visi jie yra tiksliai aprašyti

man

failus. Kai kurie iš jų gali daryti stebuklus, kai jie derinami su kitomis komandomis.



Žinoma, nepagrįsta tikėtis, kad kas nors prisimins kiekvieną pasirinkimą. Turint tai omenyje, gera retkarčiais atnaujinti savo Linux komandų išmanymas , nes galite atrasti naujų jų panaudojimo būdų.

Šį kartą mes sutelkiame dėmesį CURL , įrankis duomenims perduoti per daugybę interneto protokolų, tokių kaip HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP ir kt.





Paprasčiau tariant, „cURL“ atlieka įvairias užklausas iš kliento į serverį, užmezga ryšį tarp jų naudodami specialų protokolą ir su juo susijusius metodus. Pvz., Kaip HTTP klientas, „cURL“ gali nusiųsti užklausą peržiūrėti ar atsisiųsti turinį (GET užklausos metodas) arba paskelbti turinį per formą svetainėje (POST užklausos metodas). Daugelis žiniatinklio programų ir paslaugų leidžia CURL sąveikauti su jų API (programų programavimo sąsaja).

Kadangi jų funkcionalumas tam tikru mastu sutampa, cURL ir wget dažnai lyginami. Abu įrankiai gali atsisiųsti turinį iš interneto, tačiau „wget“ palaiko rekursinius atsisiuntimus, žiniatinklio nuskaitymą ir paprastai jaučiasi paprastesnis. Jei norite tiesiog atsisiųsti failus iš terminalo, „wget“ tikriausiai yra geresnis pasirinkimas.





Kita vertus, jei jums reikia pažangių HTTP autentifikavimo metodų ir norite įkelti bei atsisiųsti failus, verta išmokti CURL. Be to, „wget“ palaiko tik HTTP (S) ir FTP, o „cURL“ apima platų protokolų spektrą. Tai reiškia, kad „CURL“ gali padaryti daugiau įdomių dalykų - čia yra dešimt pavyzdžių, kaip tai įrodyti.

1. Gaukite orų prognozę

Jei kas nors jums lieptų patikrinti orą iš terminalo, tikėtumėte pamatyti nuobodžius skaičius. Ne su šia komanda.

curl http://wttr.in/LOCATION

Informaciją teikia CLI programa, vadinama mes einame , bet jei nenorite jos įdiegti, „CURL“ gali nuskaityti prognozę iš savo žiniatinklio sąsajos wttr.in. Viskas, ko reikia, yra vieta, kuriai norite gauti prognozę. Tiesiog įveskite miesto pavadinimą, jo oro uosto kodą arba dabartinį IP adresą. Nauja funkcija rodo informaciją apie mėnulio fazes, jei įvedate:

curl wttr.in/Moon

2. Atsisiųskite failus ir atnaujinkite atsisiuntimus

Failų atsisiuntimą dažniausiai atliekame naršyklėje. Kartais norėsite naudoti atsisiuntimų tvarkyklę; pavyzdžiui, kai atsisiunčiate kelis failus vienu metu arba kai norite pristabdyti atsisiuntimą. Nors „CURL“ nėra populiarus pasirinkimas vienu metu atsisiunčiant (vietoj to rekomenduojama naudoti „wget“), vis tiek galite jį naudoti tam tikslui, derindami galingas parinktis (jungiklius). Pirmiausia jums reikės tiesioginės nuorodos į failą. Šiame pavyzdyje naudosime žurnalo „Linux Voice“ PDF failą.

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

Didžiųjų raidžių O jungiklis (-O) priverčia cURL įrašyti failą numatytuoju failo pavadinimu (dažniausiai tokiu, kuris yra iš pačios nuorodos). Jei norite išsaugoti jį kitu pavadinimu, naudokite mažąsias raides o po to naują pavadinimą:

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

Pagal numatytuosius nustatymus failai išsaugomi dabartiniame kataloge (patikrinkite jį naudodami

pwd

komanda). Jei norite juos išsaugoti kitur, nurodykite kelią po jungiklio -o. -C - jungiklis leidžia CURL atnaujinti atsisiuntimą. Jūs pristabdytumėte jį paspausdami Ctrl+C terminale ir tęstumėte dar kartą paleisdami tą pačią atsisiuntimo komandą:

„cURL“ rodo atsisiuntimo eigą lentelės pavidalu, su stulpeliais, kuriuose yra informacijos apie atsisiuntimo greitį, bendrą failo dydį, praėjusį laiką ir dar daugiau. Jei jums tai nepatinka, galite pasirinkti paprastesnę pažangos juostą, pridėdami -# arba --progress -bar prie komandos cURL.

Norėdami atsisiųsti kelis failus vienu metu, tiesiog išvardykite nuorodas vieną po kitos:

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

Naudodami kitus komandinės eilutės įrankius, galime iš paketo atsisiųsti visus PNG ir JPG vaizdus iš „Tumblr“ tinklaraščio:

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

Tokiu atveju,

cut

ir

grep

rinkti informaciją apie failų pavadinimus ir formatuoti juos taip, kad būtų rodomi tik failai su nurodytais plėtiniais. Jei komandą vykdote be paskutinio vamzdžio:

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

jūs tiesiog gausite failų, atitinkančių mūsų kriterijus, sąrašą, tačiau jie nebus atsisiunčiami. „cURL“ gali gauti vaizdų iš įvairių puslapių sąrašą, jei tinklaraštyje naudojamas standartinis puslapių numeris:

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

Diapazoną galite keisti keisdami skaičius laužtiniuose skliaustuose. Vėlgi, ši komanda išvardytų tik vaizdus; Norėdami juos atsisiųsti, paleiskite visą komandą kataloge, kuriame norite išsaugoti vaizdus:

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

Jei gerai išmanai taisyklingos išraiškos , galite pagerinti šios komandos išvaizdą ir efektyvumą bei pasidalyti rezultatu komentaruose.

3. Tvarkykite failus FTP serveryje

Šiais laikais apie FTP daug negirdime, tačiau tai nereiškia, kad jis pasenęs. Tiesą sakant, daugelis atvirojo kodo projektų ir „Linux“ platinimų dalijasi savo programine įranga FTP serveriuose. Kadangi FTP palaiko cURL, galite jį naudoti kaip paprastą FTP klientą, norėdami įkelti ir atsisiųsti failus. Galite naršyti FTP serverio failus, pasiekdami katalogus:

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

Norėdami įvesti pakatalogį, įveskite jo pavadinimą ir pasvirąjį brūkšnį (/).

Failų atsisiuntimas yra panašus į HTTP atsisiuntimus, aprašytus ankstesniame skyriuje. Jei norite pristabdyti atsisiuntimus, galite naudoti -o arba -O ir pridėti -C.

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

Nors „CURL“ nepalaiko rekursyvių atsisiuntimų (atminkite, „wget“ tai daro!), Jis vis tiek gali atsisiųsti daugybę failų vienu metu. Vienintelė sąlyga yra tai, kad failų pavadinimai atitinka modelį. Pavyzdžiui, galėtume atsisiųsti iš tapetų prieglobos serverio, kuriame visi tapetai pavadinti „wallpaperNUMBER“:

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

Norint atsisiųsti failus, kai kuriems FTP serveriams reikalingas autentifikavimas. „cURL“ leidžia prisijungti naudojant parinktį -u (vartotojas):

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

Taip pat galite įkelti failus į FTP serverį naudodami parinktį -T (perdavimas):

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

Čia taip pat galite apibrėžti kelis failus kaip diapazoną. Ši funkcija kartais vadinama „gaubimu“. Jei failų pavadinimai neatitinka modelio, tiesiog išvardykite juos garbanotuose skliausteliuose (

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

). Ir atvirkščiai, jei jie turi panašius pavadinimus, taikykite tą pačią logiką iš „Tumblr“ atsisiuntimo pavyzdžio ir naudokite laužtinius skliaustus (

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

). Būtinai nurodykite visą failų kelią, jei jie nėra jūsų dabartiniame kataloge.

4. Patikrinkite, ar svetainė neveikia

Mes visi ten buvome. Svetainė, kurios jums tikrai reikia, staiga nustoja veikti. Tada „Facebook“ nebus įkelta. Ką jūs darote susidūrę su tikra pirmojo pasaulio problema?

Galite jį „Google“ naršyti, paprašyti draugo išbandyti už jus arba naudoti vieną iš tų vienkartinių svetainių, kurios nurodo, ar svetainė neveikia. Arba galite tiesiog įjungti terminalą ir paleisti „CURL“:

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

Didžiųjų raidžių I jungiklis (-I) patikrina tinklalapio HTTP antraštę, o parinktis -L (vieta) pridedama, kad cURL atitiktų peradresavimus. Tai reiškia, kad jums nereikia įvesti viso „Facebook“ URL; tik rašyk facebook.com ir cURL pasirūpins likusiu požiūriu -L dėka. Jei yra peradresavimų, jie bus rodomi su savo HTTP būsena.

Mus dominantis pranešimas yra „200 Gerai“, o tai reiškia, kad su svetaine viskas gerai. Jei tai tikrai sumažėjo, pamatysite kažką panašaus:

HTTP būsenos kodai yra tik informaciniai, kiek leidžia jūsų supratimas. Šis metodas nėra visiškai patikimas, nes svetainė gali grąžinti būsenos kodą, rodantį sėkmingai apdorotą užklausą, tačiau atidarius ją naršyklėje ji bus tuščia. Vis dėlto daugeliu atvejų jis turėtų atitikti tikrąją situaciją ir pranešti jums, kas pakilo ar nusileido.

5. Išskleiskite sutrumpintus URL

Sutrumpinti URL nėra blogi. Be jų būtų sunku dalytis nuorodomis „Twitter“ ir kituose socialiniuose tinkluose, kuriuose yra ribotas charakteris. Kai kurios URL sutrumpinimo paslaugos taip pat siūlo naudingą analizę. Tačiau visada yra rizika, kad kažkas bando paslėpti kenkėjišką turinį už sutrumpinto URL arba kad trolis slepia „Rickroll“ (ar kažką daug, daug blogiau). Jei dėl kokių nors priežasčių įtariate sutrumpintą URL, „cURL“ gali padėti jį išplėsti ir sužinoti, kur tiksliai jis nukreipia:

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

arba

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

CURL galite derinti su

grep

arba

sed

; pagrindinis skirtumas yra formatavime. „Sed“ yra vienas iš tų įrankių, kurį turėtų žinoti kiekvienas „Linux“ vartotojas, ir jis papildo cURL šiuo ir keliais kitais naudojimo atvejais. Nepamirškime, kad „CURL“ gali atsisiųsti failus iš sutrumpinto URL (jei URL iš tikrųjų nurodo failą):

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

Sintaksė yra tokia pati kaip ir kitų CURL atsisiuntimų atveju, o parinktis -L pasirūpina nukreipimu iš sutrumpinto URL į pradinį.

6. Parodykite savo dėkingumą už ASCII str

Tiesa, tai nėra ypač naudinga, bet atrodo šauniai. Su pagalba

pv

, programa, skirta stebėti duomenų eigą, cURL gali rodyti ASCII animacijas terminale.

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

Parinktys -s ir -q išlaiko abi komandas tyliu (tyliu) režimu. Parinktis -L čia nurodo komandą pv ir leidžia keisti duomenų perdavimo greitį baitais per sekundę. Kitaip tariant, jei animacija juda per greitai arba per lėtai, pabandykite žaisti su tuo skaičiumi. Be animacijų, „CURL“ gali rodyti paprastą, statinį ASCII vaizdą:

Žiniatinklyje yra daugybė svetainių, kuriose yra visų rūšių ASCII meno: nuo nuostabiai detalių, aukštos kokybės kūrinių iki keistos, kvailos ir net NSFW medžiagos. Ši skaitmeninio meno technika atsirado 1960 -aisiais, o šiandien ji yra interneto kultūros ir istorijos dalis, išlikusi gyvybinga daugybėje kolekcijų ir įrankių, leidžiančių jums konvertuoti tekstą ir vaizdus į ASCII meną . Jį galite naudoti savo terminalo dekoravimui ar draugų išdaigoms - nesvarbu, kas plaukioja jūsų valtimi.

7. Eksperimentuokite su socialine žiniasklaida

Socialinės žiniasklaidos naudojimas iš terminalo nėra nieko naujo-mes jau parodėme jums komandinės eilutės „Twitter“ klientus, skirtus „Linux“. Nors tikriausiai nepersijungsite į „CURL“ kaip internetinį bendravimo įrankį, naudinga žinoti, kad galite su juo paskelbti „Facebook“, kaip aprašyta čia. Jūs pastebėsite, kad techniškai „CURL“ to nedaro savarankiškai; įrankių derinys atlieka darbą.

Kalbant apie „Twitter“, anksčiau buvo galima jį valdyti tiesiogiai iš terminalo naudojant „cURL“. Tada „Twitter“ pakeitė savo API, o dabar „Twitter“ yra specialus „CURL“ klientas, vadinamas „Twurl“. Tai nėra lengviausias būdas naudoti, ypač pradedantiesiems, todėl reikia autentifikuoti naudojant „Twitter“ skelbimų platformą. Tai prasminga, jei esate kūrėjas ar pažengęs vartotojas, bet ne tiek, jei norite tiesiog įrašyti „Twitter“ iš komandinės eilutės. Vis dėlto yra būdų, kaip smagiai praleisti laiką naudojant „Twitter“. Naudodami cURL galite patikrinti naudotojo sekėjų skaičių:

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

8. Raskite savo išorinį IP adresą

Surasti vietinį IP adresą yra pakankamai paprasta - tiesiog paleiskite

akumuliatoriaus piktograma nerodoma užduočių juostoje
ifconfig

arba apsilankykite tinklo valdymo programėlėje. Norėdami gauti išorinę IP, dauguma žmonių naudoja specializuotas svetaines šiai informacijai gauti. Vis dėlto kai kuriuos dalykus tiesiog lengviau padaryti iš terminalo, ir tai gali būti vienas iš jų. Taip pat galite sukurti komandos cURL slapyvardį. Yra keletas internetinių paslaugų, kurios bendradarbiauja su cURL:

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

Kai kurie gali pasakyti daugiau apie bet kokį išorinį IP adresą:

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

Viskas, ką jums reikia padaryti, tai pasirinkti paslaugą. Jei esate neryžtingas, tiesiog įtraukite juos visus į savo slapyvardį kaip atsarginius sprendimus.

9. Įklijuokite tekstą ir bendrinkite vaizdus

Sustabdyti darbo eigą niekada nėra naudinga produktyvumui ir susikaupimui. Jei didžiąją dalį savo darbo atliekate terminale, pereiti prie naršyklės, kad galėtumėte bendrinti kelis failus, gali būti nepraktiška, jei ne erzina. Laimei, kai kurios „pastebin“ ir failų bendrinimo paslaugos buvo sukurtos dirbti su „cURL“, todėl galite jas naudoti tiesiai iš terminalo be vartotojo abonemento.

Clbin ir Sprunge.us turi panašią sintaksę. Naudodami „Clbin“, jūs siunčiate vietinį failą arba komandos išvestį ir grąžina nuorodą į įkeltą tekstą:

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

Jis taip pat palaiko vaizdų įkėlimą (PNG, JPG ir GIF):

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

Jei norite naudoti „Sprunge.us“, įveskite:

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

„Sprunge.us“ kol kas nepalaiko vaizdų įkėlimo.

Ix.io yra pagrįstas tuo pačiu principu, kaip ir ankstesnės dvi paslaugos, su keliomis papildomomis funkcijomis. Norėdami įkelti failą, įveskite:

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

arba

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

Gavę nuorodą į įkeltą tekstą, galite pakeisti jo URL, kad būtų rodomas sintaksės paryškinimas (su

ix.io/yourpaste+

,

ix.io/yourpaste/

, arba

ix.io/yourpaste/language

konkrečiai scenarijaus ar programavimo kalbai). Taip pat galima apriboti, kiek kartų nuorodą galima peržiūrėti, pakeitus numerį po

'read:1'

vertė:

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

„Ix.io“ pirmiausia skirta tekstiniams failams, pvz., Šaltinio kodui ar sistemos žurnalams. Jei norite įkelti įvairių formatų failus, naudokite Transfer.sh . Jis palaiko vaizdus, ​​failų šifravimą ir saugo jūsų failus internete dvi savaites. Į „Transfer.sh“ galite įkelti iki 5 GB duomenų. Štai kaip:

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

Galite laisvai nustatyti įkelto failo pavadinimą. Norėdami įkelti kelis failus, išvardykite juos vieną po kito naudodami parinktį -F:

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

10. Patikrinkite neskaitytus laiškus „GMail“

Jei ketinate įsigilinti į išsamią su el. Paštu susijusių protokolų (SMTP, POP, IMAP) informaciją, cURL gali atverti didžiulį potencialą. Norėdami greitai patikrinti el. Paštą, ši komanda bus naudinga. Jis analizuoja jūsų „GMail“ sklaidos kanalą ir formato išvestį (el. Laiško temą ir siuntėją)

tr

,

awk

,

sed

ir (arba)

grep

komandas. Atminkite, kad šis sprendimas yra labai nesaugus, nes jis atskleidžia jūsų prisijungimo duomenis visiems, turintiems prieigą prie jūsų terminalo. Pirmoje versijoje rodomas siuntėjo vardas, o antrojoje spausdinamos tik neskaitytos el. Pašto temos:


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'

Ką dar gali padaryti CURL?

cURL retai naudojama kaip atskira komanda. Dauguma žmonių jį naudoja kaip scenarijaus ar programos dalį. Vis dėlto įmanoma sukurti praktiškus vieno sluoksnio įdėklus su cURL, kaip mes čia parodėme. Daugelis šių pavyzdžių buvo pritaikyti iš „CommandLineFu“-fantastiško išmaniųjų komandinės eilutės įsilaužimų šaltinio, ir neturėtumėte jų laikyti akmenimis.

Turėdami pakankamai žinių ir patirties, galime pakeisti kiekvieną komandą, suformatuoti ją kitaip arba visiškai pakeisti geresniu sprendimu. Ar galite patobulinti mūsų siūlomas CURL komandas? Ar žinote kitų įdomių cURL naudojimo būdų? Pasidalinkite savo patarimais komentaruose.

Vaizdo kreditai: Įvadas į komandų eilutę pateikė Osama Khalid per „Flickr“.

Dalintis Dalintis „Tweet“ Paštu Ištrinkite šiuos „Windows“ failus ir aplankus, kad atlaisvintumėte vietos diske

Reikia išvalyti vietos diske „Windows“ kompiuteryje? Čia yra „Windows“ failai ir aplankai, kuriuos galima saugiai ištrinti, kad būtų atlaisvinta vietos diske.

Skaityti toliau
Susijusios temos
  • Linux
  • FTP
  • Atsisiuntimų valdymas
  • Terminalas
Apie autorių Ivana Isadora Devcic(Paskelbti 24 straipsniai)

Ivana Isadora yra laisvai samdoma rašytoja ir vertėja, „Linux“ mylėtoja ir KDE mėgėja. Ji palaiko ir skatina nemokamą ir atviro kodo programinę įrangą, ir ji visada ieško naujų, novatoriškų programų. Sužinokite, kaip susisiekti čia .

Daugiau iš Ivana Isadora Devcic

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia