Pridobite cURLy: 10 koristnih stvari, ki jih lahko naredite s cURL

Pridobite cURLy: 10 koristnih stvari, ki jih lahko naredite s cURL

Ko se začnemo učiti o orodjih ukazne vrstice, jih ponavadi vidimo kot enonamenske. Tega ste naučeni





cat

natisne vsebino datoteke,





ls

navaja vse elemente v imeniku in





du

prikazuje porabo prostora na disku. Vendar ima veliko orodij ukazne vrstice na ducate možnosti, vse lepo opisane v svojih

man

datoteke. Nekateri med njimi lahko delajo čudeže v kombinaciji z drugimi ukazi.



Seveda je nerazumno pričakovati, da se bo kdo spomnil vsake možnosti. S tem v mislih je dobro, da jih občasno osvežimo poznavanje ukazov Linuxa , ker bi lahko zanje odkrili nove načine uporabe.

Tokrat se osredotočamo na cURL , orodje za prenos podatkov prek številnih internetnih protokolov, kot so HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP itd.





Poenostavljeno povedano, cURL izvaja različne zahteve od odjemalca do strežnika in vzpostavlja povezavo med njimi s pomočjo posebnega protokola in z njim povezanih metod. Kot odjemalec HTTP lahko na primer cURL pošlje zahtevo za ogled ali prenos vsebine (metoda zahteve GET) ali za objavo vsebine prek obrazca na spletnem mestu (metoda zahteve POST). Številne spletne aplikacije in storitve omogočajo interakcijo cURL -a s svojimi API -ji (Application Programming Interface).

Ker se njihova funkcionalnost do neke mere prekriva, se cURL in wget pogosto primerjata med seboj. Oba orodja lahko preneseta vsebino iz interneta, vendar wget podpira rekurzivne prenose, strganje po spletu in je na splošno enostavnejši za uporabo. Če želite samo prenesti datoteke s terminala, je wget verjetno boljša izbira.





Po drugi strani pa, če potrebujete napredne metode preverjanja pristnosti HTTP in želite nalagati datoteke ter jih tudi nalagati, se je vredno naučiti cURL. Poleg tega wget podpira samo HTTP (S) in FTP, medtem ko cURL pokriva široko paleto protokolov. To pomeni, da lahko cURL naredi več kul stvari - in tukaj je deset primerov, ki to dokazujejo.

1. Pridobite vremensko poročilo

Če bi vam kdo rekel, da preverite vreme s terminala, bi pričakovali, da boste videli nekaj dolgočasnih številk. Ne s tem ukazom.

curl http://wttr.in/LOCATION

Podatke posreduje aplikacija CLI, imenovana mi gremo , če pa ga ne želite namestiti, lahko cURL prenese napoved s svojega spletnega mesta wttr.in. Vse, kar potrebuje, je lokacija, za katero želite napoved. Samo vnesite ime mesta, njegovo kodo letališča ali vaš trenutni naslov IP. Nova funkcija prikazuje informacije o fazah lune, če vnesete:

curl wttr.in/Moon

2. Prenesite datoteke in nadaljujte s prenosi

Prenos datotek je običajno nekaj, kar počnemo v brskalniku. Včasih boste želeli uporabiti upravitelja prenosov; na primer pri nalaganju več datotek hkrati ali kadar želite prenose ustaviti. Čeprav cURL ni priljubljena izbira za hkratne prenose (namesto tega je priporočljiv wget), ga lahko v ta namen še vedno uporabljate tako, da združite njegove zmogljive možnosti (stikala). Najprej boste potrebovali neposredno povezavo do datoteke. V tem primeru bomo uporabili PDF revije Linux Voice.

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

Stikalo O z velikimi črkami (-O) naredi, da cURL shrani datoteko s privzetim imenom datoteke (običajno tisto iz same povezave). Če ga želite shraniti pod drugim imenom, uporabite male črke o, ki jim sledi novo ime:

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

Datoteke so privzeto shranjene v trenutnem imeniku (preverite z

pwd

ukaz). Če jih želite shraniti drugje, podajte pot po stikalu -o. Stikalo -C - omogoča, da cURL nadaljuje prenos. Zaustavili bi ga s pritiskom na Ctrl+C v terminalu in nadaljevali s ponovnim zagonom istega ukaza za prenos:

cURL prikazuje napredek prenosa v obliki tabele, s stolpci, ki vsebujejo podatke o hitrosti prenosa, skupni velikosti datoteke, pretečenem času in drugo. Če vam to ni všeč, se lahko odločite za enostavnejšo vrstico napredka, tako da v ukaz cURL dodate -# ali --progress -bar.

Če želite prenesti več datotek hkrati, preprosto navedite povezave eno za drugo:

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

S pomočjo drugih orodij ukazne vrstice lahko paketno prenesemo vse slike PNG in JPG iz spletnega dnevnika Tumblr:

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

V tem primeru,

cut

in

grep

zbrati podatke o imenih datotek in jih oblikovati tako, da bodo prikazane samo datoteke z določenimi razširitvami. Če zaženete ukaz brez zadnje cevi:

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

dobili boste le seznam datotek, ki izpolnjujejo naša merila, vendar jih dejansko ne boste prenesli. cURL lahko dobi seznam slik z različnih strani, pod pogojem, da blog uporablja standardno paginacijo:

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

Obseg lahko spremenite tako, da spremenite številke v oglatih oklepajih. Spet bi ta ukaz navedel le slike; če jih želite prenesti, zaženite celoten ukaz v imeniku, kamor želite shraniti 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

Če ste dobro podkovani redni izrazi , lahko izboljšate videz in učinkovitost tega ukaza ter rezultat delite v komentarjih.

3. Upravljajte datoteke na strežniku FTP

O FTP v teh dneh ne slišimo veliko, vendar to ne pomeni, da je zastarel. Pravzaprav mnogi odprtokodni projekti in distribucije Linuxa delijo svojo programsko opremo na strežnikih FTP. Ker CURL podpira FTP, ga lahko uporabite kot preprostega odjemalca FTP za nalaganje in nalaganje datotek. Datoteke na strežniku FTP lahko brskate tako, da dostopate do imenikov:

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

Če želite vnesti podimenik, vnesite njegovo ime, ki mu sledi poševnica naprej (/).

Nalaganje datotek je podobno prenosom HTTP, opisanim v prejšnjem razdelku. Uporabite lahko -o ali -O in dodate -C -če želite prenose ustaviti.

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

Čeprav cURL ne podpira rekurzivnih prenosov (ne pozabite, da wget podpira!), Lahko kljub temu naenkrat prenese vrsto datotek. Edini pogoj je, da imena datotek sledijo vzorcu. Na primer, lahko prenesemo s strežnika za gostovanje ozadij, kjer so vsa ozadja poimenovana 'ozadje številka':

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

Nekateri strežniki FTP zahtevajo preverjanje pristnosti, preden lahko naložite datoteke. cURL vam omogoča, da se prijavite z možnostjo -u (uporabnik):

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

Datoteke lahko naložite tudi na strežnik FTP z možnostjo -T (prenos):

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

Tukaj lahko tudi definirate več datotek kot obseg. Ta funkcija se včasih imenuje 'globbing'. Če imena datotek ne sledijo vzorcu, jih le navedite v kodrastih oklepajih (

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

). Nasprotno, če imajo podobna imena, uporabite isto logiko iz primera prenosa Tumblr in uporabite oglate oklepaje (

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

). Navedite celotno pot do datotek, če niso v vašem trenutnem imeniku.

4. Preverite, ali je spletno mesto pokvarjeno

Vsi smo bili tam. Spletno mesto, ki ga nujno potrebujete, nenadoma preneha delovati. Potem se Facebook ne bo naložil. Kaj počnete, ko se soočite s pravim problemom prvega sveta?

Lahko ga poiščete na Googlu, prosite prijatelja, da ga preizkusi namesto vas, ali uporabite eno od tistih spletnih mest z enim servisom, ki vam sporočijo, ali je spletno mesto zaprto. Lahko pa samo zaženete terminal in zaženete cURL:

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

Veliko stikalo I (-I) preveri glavo HTTP spletne strani, dodana pa je tudi možnost -L (lokacija), da cURL sledi preusmeritvam. To pomeni, da vam ni treba vnesti celotnega Facebookovega URL -ja; samo napiši facebook.com in cURL bo za ostalo poskrbel zahvaljujoč -L. Če obstajajo preusmeritve, bodo prikazane z lastnim stanjem HTTP.

Sporočilo, ki nas zanima, je '200 OK', kar pomeni, da je s spletno stranjo vse v redu. Če je res pokvarjen, boste videli nekaj takega:

Kode stanja HTTP so informativne le toliko, kolikor jih razumete. Ta metoda ni povsem zanesljiva, saj lahko spletno mesto vrne kodo stanja, ki označuje uspešno obdelano zahtevo, vendar bo prazna, ko jo odprete v brskalniku. Kljub temu mora v večini primerov ustrezati dejanskemu stanju in vam sporočiti, kaj je gor - ali dol.

5. Razširite skrajšane URL -je

Skrajšani URL -ji sami po sebi niso slabi. Brez njih bi bilo težko deliti povezave na Twitterju in drugih družbeno omrežjih, omejenih z znaki. Nekatere storitve za skrajšanje URL -jev ponujajo tudi uporabno analizo. Vedno pa obstaja nevarnost, da nekdo poskuša skriti zlonamerno vsebino za skrajšanim URL -jem ali pa trol prikrije Rickroll (ali kaj veliko, veliko slabše). Če ste zaradi kakršnega koli razloga kdaj sumljivi na skrajšani URL, vam lahko cURL pomaga razširiti in ugotoviti, kam točno vodi:

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

ali

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

CURL lahko kombinirate z

grep

ali

sed

; glavna razlika je v oblikovanju. Sed je eno od tistih orodij, ki bi jih moral poznati vsak uporabnik Linuxa, in dopolnjuje cURL v tem in nekaj drugih primerih uporabe. Ne pozabimo, da lahko cURL prenese datoteke iz skrajšanega URL -ja (pod pogojem, da URL dejansko kaže na datoteko):

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

Sintaksa je enaka kot pri drugih prenosih cURL, možnost -L pa skrbi za preusmeritev s skrajšanega URL -ja na prvotnega.

6. Pokažite svojo zahvalo za ASCII Art

Resda to ni posebej uporabno, vendar izgleda kul. S pomočjo

pv

, pripomoček za spremljanje napredka podatkov, lahko cURL prikaže animacije ASCII v terminalu.

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

Možnosti -s in -q ohranjata oba ukaza v tihem (tihem) načinu. Možnost -L se tukaj nanaša na ukaz pv in vam omogoča spreminjanje hitrosti prenosa podatkov v bajtih na sekundo. Z drugimi besedami, če se animacija premika prehitro ali prepočasi, se poskusite igrati s to številko. Poleg animacij lahko cURL prikazuje navadno, statično umetnost ASCII:

Splet ima veliko spletnih mest z vsemi vrstami umetnosti ASCII: od neverjetno podrobnih, visokokakovostnih kosov do čudnih, neumnih in celo materialov NSFW. Ta tehnika digitalne umetnosti sega v šestdeseta leta prejšnjega stoletja, danes pa je del internetne kulture in zgodovine, ohranjena je v številnih zbirkah in orodjih, ki vam omogočajo pretvorite besedilo in slike v umetnost ASCII . Uporabite ga lahko za okrasitev svojega terminala ali za potegavščino prijateljev - kar koli pluje na vašem čolnu.

7. Eksperimentirajte s socialnimi mediji

Uporaba družabnih medijev s terminala ni nič novega-že smo vam pokazali odjemalce Twitterja iz ukazne vrstice za Linux. Čeprav verjetno ne boste prešli na cURL kot spletno orodje za druženje, je dobro vedeti, da lahko z njim objavljate na Facebooku, kot je opisano tukaj. Opazili boste, da tehnično cURL tega ne počne sam; delo opravi kombinacija orodij.

Kar zadeva Twitter, ga je bilo včasih mogoče upravljati neposredno s terminala s cURL. Nato je Twitter spremenil svoj API in zdaj je za Twitter poseben odjemalec cURL, imenovan Twurl. To ni najlažja stvar za uporabo, zlasti za začetnike, in zahteva avtentikacijo s platformo za oglase Twitter. To je smiselno, če ste razvijalec ali napreden uporabnik, vendar ne toliko, če želite le tvitati iz ukazne vrstice. Kljub temu obstajajo načini za zabavo s Twitterjem. S pomočjo cURL lahko preverite število sledilcev uporabnika:

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

8. Poiščite svoj zunanji naslov IP

Iskanje lokalnega naslova IP je dovolj preprosto - samo zaženite

kako dodati glasbo videoposnetku na iphone
ifconfig

ali pa se obrnite na programček za upravljanje omrežja. Za zunanje IP večina ljudi za pridobivanje teh informacij uporablja specializirana spletna mesta. Kljub temu je nekatere stvari lažje narediti s terminala in to je morda ena izmed njih. Za ukaz cURL lahko ustvarite tudi vzdevek. S spletnim mestom cURL sodeluje več spletnih storitev:

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

Nekateri vam lahko povedo več o katerem koli zunanjem naslovu IP:

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

Vse, kar morate storiti, je, da izberete storitev. Če ste neodločni, jih vse vključite v svoj vzdevek kot varnostno rešitev.

9. Prilepite besedilo in delite slike

Prekinitev delovnega toka ni nikoli dobra za produktivnost in osredotočenost. Če večino svojega dela opravljate v terminalu, je prehod na brskalnik samo za skupno rabo nekaj datotek lahko nepraktičen, če ne celo moteč. Na srečo so bile nekatere storitve pastebin in skupne rabe datotek rojene za delo s cURL, zato jih lahko uporabljate neposredno iz terminala, brez uporabniškega računa.

Clbin in Sprunge.us imajo podobno skladnjo. S programom Clbin pošljete lokalno datoteko ali izpis ukaza in vrne povezavo do naloženega besedila:

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

Podpira tudi nalaganje slik (PNG, JPG in GIF):

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

Če namesto tega želite uporabiti Sprunge.us, vnesite:

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

Sprunge.us za zdaj ne podpira nalaganja slik.

Ix.io temelji na istem principu kot prejšnji dve storitvi, z nekaj dodatnimi funkcijami. Če želite naložiti datoteko, vnesite:

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

ali

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

Ko dobite povezavo do naloženega besedila, lahko spremenite njegov URL, da prikaže označevanje sintakse (z

ix.io/yourpaste+

,

ix.io/yourpaste/

, oz

ix.io/yourpaste/language

za določen skriptni ali programski jezik). Prav tako je mogoče omejiti število ogledov povezave s spreminjanjem številke za

'read:1'

vrednost:

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

Ix.io je namenjen predvsem besedilnim datotekam, kot so izvorna koda ali sistemski dnevniki. Če želite naložiti različne oblike datotek, uporabite Transfer.sh . Podpira slike, šifriranje datotek in hrani vaše datoteke na spletu dva tedna. Na Transfer.sh lahko naložite do 5 GB podatkov. Takole:

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

Prosto določite ime naložene datoteke. Če želite naložiti več datotek, jih navedite eno za drugo z možnostjo -F:

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

10. Preverite neprebrano pošto na GMailu

Če se želite pripraviti na podrobnosti o protokolih, povezanih z e-pošto (SMTP, POP, IMAP), obstaja velik potencial, da ga odklenete v cURL. Za hitro preverjanje e -pošte bo ta ukaz ustrezen. Razčlenjuje vaš vir GMail in oblikuje izhod (zadevo e -pošte in pošiljatelja)

tr

,

awk

,

sed

in/ali

grep

ukaze. Upoštevajte, da je ta rešitev izjemno nevarna, ker vaše poverilnice za prijavo razkrije vsem, ki imajo dostop do vašega terminala. Prva različica prikazuje ime pošiljatelja, druga pa samo neprebrane e -poštne teme:


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'

Kaj še lahko naredi cURL?

cURL se redko uporablja kot samostojen ukaz. Večina ljudi ga uporablja kot del skripte ali aplikacije. Kljub temu je mogoče ustvariti praktične enoslojne povezave s cURL, kot smo pokazali tukaj. Mnogi od teh primerov so bili prilagojeni iz CommandLineFu, fantastičnega vira pametnih vdorov v ukazno vrstico, zato jih ne smete obravnavati kot kamnite.

Z dovolj znanja in izkušenj lahko vsak ukaz spremenimo, drugače oblikujemo ali popolnoma nadomestimo z boljšo rešitvijo. Ali lahko izboljšate naše predlagane ukaze cURL? Ali poznate kakšno drugo kul uporabo za cURL? Delite svoje nasvete v komentarjih.

Zasluge za slike: Notranji uvod v ukazno vrstico avtor Osama Khalid prek Flickra.

Deliti Deliti Cvrkutati E-naslov Izbrišite te datoteke in mape Windows, da sprostite prostor na disku

Ali morate v računalniku s sistemom Windows počistiti prostor na disku? Tu so datoteke in mape Windows, ki jih je mogoče varno izbrisati, da sprostite prostor na disku.

Preberite Naprej
Sorodne teme
  • Linux
  • FTP
  • Upravljanje prenosov
  • Terminal
O avtorju Ivana Isadora Devcic(24 objavljenih člankov)

Ivana Isadora je samostojna pisateljica in prevajalka, ljubiteljica Linuxa in fantka KDE. Podpira in promovira brezplačno in odprtokodno programsko opremo ter vedno išče sveže, inovativne aplikacije. Ugotovite, kako stopiti v stik tukaj .

Več od Ivane Isadore Devcic

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti