Nabavite cURLy: 10 korisnih stvari koje možete učiniti s cURL -om

Nabavite cURLy: 10 korisnih stvari koje možete učiniti s cURL -om

Kad počnemo učiti o alatima naredbenog retka, nastojimo ih vidjeti kao jednonamjenske. To ste naučili





cat

ispisuje sadržaj datoteke,





ls

navodi sve stavke u imeniku i



du

prikazuje korištenje prostora na disku. Međutim, mnogi alati naredbenog retka imaju desetke opcija, sve su lijepo opisane u njima

man

datoteke. Neki od njih mogu učiniti čuda u kombinaciji s drugim naredbama.



Naravno, nerazumno je očekivati ​​da bi se itko trebao sjetiti svake pojedinačne opcije. Imajući to na umu, dobro je povremeno osvježiti naše poznavanje Linux naredbi , jer biste mogli otkriti nove primjene za njih.

Ovaj put se fokusiramo na kovrča , alat za prijenos podataka putem brojnih internetskih protokola kao što su HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP i drugi.





Pojednostavljeno rečeno, cURL izvodi različite zahtjeve od klijenta do poslužitelja, uspostavljajući vezu između njih pomoću određenog protokola i njegovih pridruženih metoda. Na primjer, kao HTTP klijent, cURL može poslati zahtjev za pregled ili preuzimanje sadržaja (metoda GET zahtjeva) ili za objavljivanje sadržaja putem obrasca na web stranici (metoda POST zahtjeva). Mnoge web aplikacije i usluge dopuštaju cURL -u interakciju sa svojim API -jem (Application Programming Interface).

Budući da im se funkcionalnost donekle preklapa, cURL i wget često se međusobno uspoređuju. Oba alata mogu preuzimati sadržaj s interneta, ali wget podržava rekurzivna preuzimanja, struganje s weba i općenito se čini jednostavnijim za korištenje. Ako samo želite preuzeti datoteke s terminala, wget je vjerojatno bolji izbor.





S druge strane, ako su vam potrebne napredne metode HTTP provjere autentičnosti, a želite učitati datoteke kao i preuzeti ih, vrijedi naučiti kako cURL. Također, wget podržava samo HTTP (S) i FTP, dok cURL pokriva širok raspon protokola. To znači da cURL može učiniti više kul stvari - a evo deset primjera koji to dokazuju.

1. Preuzmite Izvješće o vremenu

Ako vam je netko rekao da provjerite vrijeme s terminala, očekivali biste da ćete vidjeti neke dosadne brojeve. Ne s ovom naredbom.

curl http://wttr.in/LOCATION

Informacije pruža CLI aplikacija tzv idemo , ali ako ga ne želite instalirati, cURL može dohvatiti prognozu sa svog web sučelja wttr.in. Sve što treba je mjesto za koje želite prognozu. Samo upišite naziv grada, kôd zračne luke ili svoju trenutnu IP adresu. Nova značajka prikazuje informacije o mjesečevim fazama ako upišete:

curl wttr.in/Moon

2. Preuzmite datoteke i nastavite preuzimanja

Preuzimanje datoteka je nešto što obično radimo u pregledniku. Ponekad ćete htjeti koristiti upravitelj preuzimanja; na primjer, pri preuzimanju nekoliko datoteka odjednom ili kada želite pauzirati preuzimanja. Iako cURL nije popularan izbor za istodobno preuzimanje (umjesto toga se preporučuje wget), ipak ga možete koristiti u tu svrhu kombinirajući njegove moćne opcije (prekidači). Prvo će vam trebati izravna veza do datoteke. U ovom primjeru koristit ćemo PDF časopisa Linux Voice.

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

Prekidač O velikim slovima (-O) čini da cURL sprema datoteku sa zadanim nazivom datoteke (obično onu sa same veze). Ako ga želite spremiti pod drugim imenom, upotrijebili biste mala slova o nakon kojih slijedi novi naziv:

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

Prema zadanim postavkama datoteke se spremaju u trenutni direktorij (provjerite pomoću

pwd

naredba). Da biste ih spremili na drugo mjesto, navedite put nakon prekidača -o. Prekidač -C - omogućuje cURL -u nastavak preuzimanja. Pauzirali biste ga pritiskom na Ctrl+C u terminalu i nastavili ponovnim pokretanjem iste naredbe za preuzimanje:

cURL prikazuje napredak preuzimanja u obliku tablice, sa stupcima koji sadrže podatke o brzini preuzimanja, ukupnoj veličini datoteke, proteklom vremenu i još mnogo toga. Ako vam se ovo ne sviđa, možete se odlučiti za jednostavniju traku napretka dodavanjem -# ili --progress -bar u svoju naredbu cURL.

Za preuzimanje više datoteka odjednom, samo navedite veze jednu za drugom:

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

Uz pomoć drugih alata za naredbeni redak možemo skupno preuzeti sve PNG i JPG slike s bloga Tumblr:

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

U ovom slučaju,

cut

i

grep

prikupljati podatke o imenima datoteka i oblikovati ih tako da se prikazuju samo datoteke s navedenim proširenjima. Ako pokrenete naredbu bez posljednje cijevi:

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

dobit ćete samo popis datoteka koje zadovoljavaju naše kriterije, ali one se zapravo neće preuzeti. cURL može dobiti popis slika s niza stranica, pod uvjetom da blog koristi standardnu ​​paginaciju:

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

Raspon možete izmijeniti mijenjanjem brojeva u uglatim zagradama. Opet, ova naredba bi samo navela slike; da biste ih preuzeli, pokrenite punu naredbu u direktoriju u koji želite spremiti slike:

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

Ako ste dobro upućeni regularni izrazi , možete poboljšati izgled i učinkovitost ove naredbe, a rezultat podijeliti u komentarima.

3. Upravljajte datotekama na FTP poslužitelju

O FTP -u ovih dana ne čujemo puno, ali to ne znači da je zastario. Zapravo, mnogi projekti otvorenog koda i Linux distribucije dijele svoj softver na FTP poslužiteljima. Budući da cTPL podržava FTP, možete ga koristiti kao jednostavan FTP klijent za prijenos i preuzimanje datoteka. Datoteke možete pregledavati na FTP poslužitelju pristupom direktorijima:

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

Da biste unijeli poddirektorij, upišite njegov naziv iza kojeg slijedi kosa crta (/).

Preuzimanje datoteka slično je preuzimanju HTTP -a opisanim u prethodnom odjeljku. Možete koristiti -o ili -O i dodati -C -ako želite pauzirati preuzimanja.

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

Iako cURL ne podržava rekurzivna preuzimanja (zapamtite, wget podržava!), Ipak može preuzeti niz datoteka odjednom. Jedini uvjet je da imena datoteka slijede uzorak. Na primjer, mogli bismo preuzeti s poslužitelja za hosting pozadina gdje su sve pozadine nazvane 'wallpaperNUMBER':

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

Neki FTP poslužitelji zahtijevaju provjeru autentičnosti prije nego što možete preuzeti datoteke. cURL vam omogućuje da se prijavite s opcijom -u (korisnik):

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

Također možete učitati datoteke na FTP poslužitelj s opcijom -T (prijenos):

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

Ovdje također možete definirati više datoteka kao raspon. Ova se značajka ponekad naziva 'globbing'. Ako nazivi datoteka ne slijede uzorak, samo ih navedite u kovrčavim zagradama (

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

). Nasuprot tome, ako imaju slične nazive, primijenite istu logiku iz primjera preuzimanja Tumblr -a i koristite uglate zagrade (

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

). Navedite puni put do datoteka ako se ne nalaze u vašem trenutnom direktoriju.

4. Provjerite je li web stranica neispravna

Svi smo bili tamo. Web stranica koja vam je apsolutno potrebna odjednom prestaje raditi. Tada se Facebook neće učitati. Suočeni s pravim problemom prvog svijeta, što radite?

Mogli biste ga proguglati, zamoliti prijatelja da ga testira umjesto vas ili upotrijebiti jednu od onih web stranica s jednim posluživanjem koje vam govore je li web stranica neispravna. Ili možete jednostavno pokrenuti terminal i pokrenuti cURL:

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

Velika slova I switch (-I) provjeravaju HTTP zaglavlje web stranice, a dodaje se i opcija -L (location) kako bi cURL slijedio preusmjeravanja. To znači da ne morate upisati cijeli Facebook URL; samo napiši facebook.com a cURL će se pobrinuti za ostalo zahvaljujući -L. Ako postoje preusmjeravanja, bit će prikazana s vlastitim HTTP statusom.

Poruka koja nas zanima je '200 OK', što znači da je sa web stranicom sve u redu. Ako je stvarno dolje, vidjet ćete nešto poput ovoga:

HTTP statusni kodovi samo su informativni koliko vam njihovo razumijevanje dopušta. Ova metoda nije potpuno pouzdana jer web stranica može vratiti statusni kôd koji označava uspješno obrađen zahtjev, no bit će prazan kada ga otvorite u pregledniku. Ipak, u većini slučajeva to bi trebalo odgovarati stvarnoj situaciji, te vas obavijestiti o tome što je gore - dolje.

5. Proširite Skraćene URL -ove

Skraćeni URL -ovi sami po sebi nisu loši. Bez njih bi bilo teško dijeliti veze na Twitteru i drugim društvenim mrežama ograničenim znakovima. Neke usluge skraćivanja URL -ova nude i korisnu analitiku. No uvijek postoji rizik da netko pokušava sakriti zlonamjerni sadržaj iza skraćenog URL -a ili da trol maskira Rickroll (ili nešto mnogo, puno gore). Ako iz bilo kojeg razloga osjetite sumnju u skraćeni URL, cURL vam može pomoći da ga proširite i saznate gdje točno vodi:

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

ili

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

CURL možete kombinirati sa

grep

ili

sed

; glavna razlika je u oblikovanju. Sed je jedan od onih alata koje svaki korisnik Linuxa treba znati, a nadopunjuje cURL u ovom i nekoliko drugih slučajeva uporabe. Ne zaboravimo da cURL može preuzeti datoteke s skraćenog URL -a (pod uvjetom da URL zapravo upućuje na datoteku):

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

Sintaksa je ista kao i kod drugih preuzimanja cURL -a, a opcija -L brine se o preusmjeravanju s skraćenog URL -a na izvorni.

6. Pokažite svoju zahvalnost za ASCII čl

Doduše, ovo nije osobito korisno, ali izgleda super. Pomoću

pv

, uslužni program za praćenje napretka podataka, cURL može prikazati ASCII animacije u terminalu.

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

Opcije -s i -q drže obje naredbe u tihom (tihom) načinu rada. Opcija -L ovdje se odnosi na naredbu pv i omogućuje vam da promijenite brzinu prijenosa podataka u bajtovima u sekundi. Drugim riječima, ako se animacija kreće prebrzo ili presporo, pokušajte se igrati s tim brojem. Osim animacija, cURL može prikazati običnu, statičku ASCII umjetnost:

Web ima mnogo web stranica sa svim vrstama umjetnosti ASCII: od nevjerojatno detaljnih, visokokvalitetnih komada do čudnih, blesavih, pa čak i NSFW materijala. Ova tehnika digitalne umjetnosti datira iz 1960 -ih, a danas je dio internetske kulture i povijesti, čuvana u brojnim zbirkama i alatima koji vam omogućuju pretvoriti tekst i slike u ASCII umjetnost . Možete ga upotrijebiti za ukrašavanje terminala ili za zezanje prijatelja - što god plovilo vašim brodom.

7. Eksperimentirajte s društvenim medijima

Korištenje društvenih medija s terminala nije ništa novo-već smo vam pokazali Twitter klijente iz naredbenog retka za Linux. Iako se vjerojatno nećete prebaciti na cURL kao svoj internetski alat za druženje, dobro je znati da s njim možete objavljivati ​​postove na Facebooku, kako je ovdje opisano. Primijetit ćete da tehnički cURL to ne radi sam; kombinacija alata obavi posao.

Što se tiče Twittera, nekada je bilo moguće njime upravljati izravno s terminala s cURL -om. Zatim je Twitter promijenio svoj API, a sada postoji poseban cURL klijent za Twitter pod nazivom Twurl. To nije najjednostavnija stvar za korištenje, osobito za početnike, a zahtijeva autentifikaciju pomoću Twitter oglasne platforme. Ovo ima smisla ako ste programer ili napredni korisnik, ali ne toliko ako samo želite tvitati iz naredbenog retka. Ipak, postoje načini da se zabavite uz Twitter. Pomoću cURL -a možete provjeriti broj sljedbenika korisnika:

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

8. Pronađite svoju vanjsku IP adresu

Pronalaženje vaše lokalne IP adrese dovoljno je jednostavno - samo pokrenite

kako ukloniti vodeni žig sa fotografije
ifconfig

ili se obratite apletu za upravljanje mrežom. Za vanjski IP, većina ljudi koristi specijalizirane web stranice za dobivanje ovih informacija. Ipak, neke stvari jednostavno je lakše učiniti s terminala, a ovo bi mogla biti jedna od njih. Također možete stvoriti pseudonim za naredbu cURL. Postoji nekoliko internetskih usluga koje surađuju s cURL -om:

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

Neki vam mogu reći više o bilo kojoj vanjskoj IP adresi:

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

Sve što trebate učiniti je odabrati uslugu. Ako ste neodlučni, samo ih sve uključite u svoj pseudonim, kao sigurnosna rješenja.

9. Zalijepite tekst i podijelite slike

Prekid vašeg radnog procesa nikada nije dobar za produktivnost i fokus. Ako većinu posla radite u terminalu, prebacivanje na preglednik samo radi dijeljenja nekoliko datoteka može biti nepraktično, ako ne i neugodno. Na sreću, neke usluge pastebin i razmjene datoteka rođene su za rad s cURL -om, pa ih možete koristiti izravno s terminala, bez korisničkog računa.

Clbin i Sprunge.us imaju sličnu sintaksu. S Clbinom prenosite lokalnu datoteku ili izlaz naredbe, a ona vraća vezu na vaš preneseni tekst:

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

Također podržava prijenos slika (PNG, JPG i GIF):

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

Ako umjesto toga želite koristiti Sprunge.us, upišite:

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

Sprunge.us za sada ne podržava prijenos slika.

Ix.io temelji se na istom principu kao i prethodne dvije usluge, s nekoliko dodatnih značajki. Za prijenos datoteke upišite:

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

ili

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

Kad dobijete vezu do prenesenog teksta, možete izmijeniti njegov URL tako da prikazuje isticanje sintakse (s

ix.io/yourpaste+

,

ix.io/yourpaste/

, ili

ix.io/yourpaste/language

za određeni skriptni ili programski jezik). Također je moguće ograničiti koliko se puta link može vidjeti promjenom broja iza

'read:1'

vrijednost:

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

Ix.io je prvenstveno namijenjen tekstualnim datotekama poput izvornog koda ili zapisnika sustava. Ako želite prenijeti različite formate datoteka, upotrijebite Prijenos.sh . Podržava slike, šifriranje datoteka i čuva vaše datoteke na mreži dva tjedna. Na Transfer.sh možete prenijeti do 5 GB podataka. Evo kako:

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

Možete slobodno definirati naziv prenesene datoteke. Da biste prenijeli više datoteka, navedite ih jednu za drugom s opcijom -F:

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

10. Provjerite nepročitanu poštu na GMailu

Postoji veliki potencijal za otključavanje u cURL-u ako ste voljni ući u detalje protokola vezanih za e-poštu (SMTP, POP, IMAP). Za brzu provjeru e -pošte ova će naredba biti dovoljna. On analizira vaš GMail feed i formatira izlaz (predmet e -pošte i pošiljatelj)

tr

,

awk

,

sed

i/ili

grep

naredbe. Imajte na umu da je ovo rješenje krajnje nesigurno jer izlaže vaše vjerodajnice za prijavu svima koji imaju pristup vašem terminalu. Prva verzija prikazuje ime pošiljatelja, dok druga ispisuje samo nepročitane teme e -pošte:


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'

Što drugo može učiniti cURL?

cURL se rijetko koristi kao samostalna naredba. Većina ljudi koristi ga kao dio skripte ili aplikacije. Ipak, moguće je stvoriti praktične jednoslojne slojeve s cURL-om, što smo ovdje pokazali. Mnogi od ovih primjera prilagođeni su CommandLineFu, fantastičnom izvoru pametnih hakova za naredbeni redak, pa ih ne biste trebali smatrati kamenom.

Uz dovoljno znanja i iskustva, svaku naredbu možemo izmijeniti, drugačije formatirati ili potpuno zamijeniti boljim rješenjem. Možete li poboljšati naše predložene naredbe cURL? Znate li za neku drugu cool primjenu za cURL? Podijelite svoje savjete u komentarima.

Zasluge za slike: Uvod u naredbeni redak autor Osama Khalid putem Flickra.

Udio Udio Cvrkut E -pošta Izbrišite ove Windows datoteke i mape kako biste oslobodili prostor na disku

Trebate očistiti prostor na disku na računalu sa sustavom Windows? Evo Windows datoteka i mapa koje se mogu sigurno izbrisati kako bi se oslobodio prostor na disku.

Pročitajte Dalje
Povezane teme
  • Linux
  • FTP
  • Upravljanje preuzimanjem
  • Terminal
O autoru Ivana Isadora Devčić(24 objavljena članka)

Ivana Isadora slobodna je spisateljica i prevoditeljica, ljubiteljica Linuxa i KDE djevojka. Ona podržava i promiče besplatni softver otvorenog koda i uvijek je u potrazi za svježim, inovativnim aplikacijama. Saznajte kako stupiti u kontakt ovdje .

Više od Ivane Isadore Devčić

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu