Obteniu cURLy: 10 coses útils que podeu fer amb cURL

Obteniu cURLy: 10 coses útils que podeu fer amb cURL

Quan comencem a aprendre sobre eines de línia d’ordres, tendim a veure-les com a un sol propòsit. T’ho ensenyen





cat

imprimeix el contingut del fitxer,





ls

llista tots els elements d'un directori i





du

mostra l'ús de l'espai en disc. Tanmateix, moltes eines de línia d'ordres tenen dotzenes d'opcions, totes descrites a la llista

man

Fitxers. Alguns d’ells poden fer meravelles quan es combinen amb altres ordres.



Per descomptat, no és raonable esperar que algú recordi totes les opcions. Amb això en ment, és bo refrescar-nos ocasionalment coneixement de les ordres de Linux , perquè podeu descobrir-ne nous usos.

Aquesta vegada, ens hi centrarem CURL , una eina per transferir dades a través de diversos protocols d'Internet com HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP i molt més.





En termes simplificats, cURL realitza diverses sol·licituds d'un client a un servidor, establint una connexió entre ells mitjançant un protocol específic i els seus mètodes associats. Per exemple, com a client HTTP, cURL pot enviar una sol·licitud per veure o descarregar contingut (mètode de sol·licitud GET) o per publicar contingut mitjançant un formulari en un lloc web (mètode de sol·licitud POST). Moltes aplicacions i serveis web permeten a CURL interactuar amb les seves API (Application Programming Interface).

Com que la seva funcionalitat es superposa fins a cert punt, sovint es comparen cURL i wget. Ambdues eines poden descarregar contingut d'Internet, però wget admet descàrregues recursives, rascat web i, en general, se sent més senzill d'utilitzar. Si només voleu descarregar fitxers des del terminal, wget és probablement una millor opció.





D’altra banda, si necessiteu mètodes d’autenticació HTTP avançats i voleu carregar fitxers i descarregar-los, val la pena aprendre a curl. A més, wget només admet HTTP (S) i FTP, mentre que cURL cobreix una àmplia gamma de protocols. Això vol dir que CURL pot fer coses més interessants i aquí teniu deu exemples per demostrar-ho.

1. Obteniu l'informe meteorològic

Si algú li digués que comprovés el temps des de la terminal, esperaria veure alguns números avorrits. No amb aquesta ordre.

curl http://wttr.in/LOCATION

La informació la proporciona una aplicació CLI anomenada anem , però si no voleu instal·lar-lo, cURL pot obtenir la previsió des del seu interfície web wttr.in. Tot el que necessita és la ubicació per a la qual voleu fer la previsió. Només cal que escriviu el nom d’una ciutat, el seu codi d’aeroport o la vostra adreça IP actual. Una nova característica mostra la informació sobre les fases de la lluna si escriviu:

curl wttr.in/Moon

2. Baixeu fitxers i repreneu les descàrregues

La descàrrega de fitxers és una cosa que normalment fem al navegador. De vegades voldreu utilitzar un gestor de descàrregues; per exemple, quan es descarreguen diversos fitxers alhora o quan es vol aturar les descàrregues. Tot i que cURL no és una opció popular per a les descàrregues simultànies (es recomana wget), podeu utilitzar-lo amb aquest propòsit combinant les seves potents opcions (commutadors). Primer necessitareu un enllaç directe al fitxer. En aquest exemple, utilitzarem un PDF de la revista Linux Voice.

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

El commutador O en majúscules (-O) fa que CURL desi el fitxer amb el nom de fitxer per defecte (normalment el del propi enllaç). Si voleu desar-lo amb un nom diferent, utilitzeu minúscules o seguides del nom nou:

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

Per defecte, els fitxers es desen al directori actual (comproveu-ho amb el fitxer

pwd

comandament). Per desar-los en un altre lloc, proporcioneu el camí després del commutador -o. El commutador -C - permet a CURL reprendre la descàrrega. Per aturar-lo, premeu Ctrl + C al terminal i es reprendrà executant la mateixa comanda de descàrrega de nou:

cURL mostra el progrés de la descàrrega en un format semblant a una taula, amb columnes que contenen informació sobre la velocitat de descàrrega, la mida total del fitxer, el temps transcorregut i molt més. Si no us agrada això, podeu optar per una barra de progrés més senzilla afegint - # o --progress-bar a la vostra ordre cURL.

Per descarregar diversos fitxers alhora, només cal que enumereu els enllaços un darrere l’altre:

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

Amb l'ajuda d'altres eines de línia d'ordres, podem descarregar per lots totes les imatges PNG i JPG des d'un bloc de Tumblr:

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

En aquest cas,

cut

i

grep

recopileu informació sobre els noms de fitxers i formateu-la de manera que només es mostrin els fitxers amb extensions especificades. Si executeu l'ordre sense l'última canonada:

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

només obtindreu una llista de fitxers que compleixen els nostres criteris, però en realitat no es descarregaran. cURL pot obtenir una llista d’imatges d’un conjunt de pàgines, sempre que el bloc utilitzi la paginació estàndard:

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

Podeu modificar l'interval canviant els números entre claudàtors. Una vegada més, aquesta ordre només llistaria les imatges; per descarregar-les, executeu l'ordre complet al directori on voleu desar les imatges:

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

Si esteu ben versat expressions regulars , podeu millorar l'aspecte i l'eficiència d'aquesta ordre i compartir el resultat als comentaris.

3. Gestioneu fitxers en un servidor FTP

Actualment no escoltem molt sobre FTP, però això no vol dir que estigui obsolet. De fet, molts projectes de codi obert i distribucions de Linux comparteixen el seu programari en servidors FTP. Com que CURL admet FTP, podeu utilitzar-lo com a simple client FTP per carregar i descarregar fitxers. Podeu navegar pels fitxers d’un servidor FTP accedint als directoris:

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

Per entrar a un subdirectori, escriviu el seu nom seguit d'una barra inclinada (/).

La baixada de fitxers és similar a les descàrregues HTTP descrites a la secció anterior. Podeu utilitzar -o o -O i afegir -C si voleu posar en pausa les baixades.

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

Tot i que cURL no admet descàrregues recursives (recordeu, wget sí!), Encara pot descarregar diversos fitxers alhora. L'única condició és que els noms de fitxer segueixin un patró. Per exemple, podríem descarregar des d'un servidor d'allotjament de fons de pantalla on els fons de pantalla s'anomenen 'wallpaperNUMBER':

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

Alguns servidors FTP requereixen autenticació per poder descarregar fitxers. cURL us permet iniciar la sessió amb l'opció -u (usuari):

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

També podeu carregar fitxers a un servidor FTP amb l’opció -T (transferència):

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

Aquí també podeu definir diversos fitxers com a interval. De vegades, aquesta característica s'anomena 'globus'. Si els noms de fitxer no segueixen un patró, només cal que els indiqueu entre claudàtors (

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

). Per contra, si tenen noms similars, apliqueu la mateixa lògica de l’exemple de descàrrega de Tumblr i utilitzeu claudàtors (

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

). Assegureu-vos de proporcionar el camí d'accés complet als fitxers si no es troben al directori actual.

4. Comproveu si un lloc web no funciona

Tots hi hem estat. Un lloc web que necessiteu de sobte deixa de funcionar. Llavors Facebook no es carregarà. Davant d’un veritable problema del primer món, què fas?

Podeu fer-ho a Google, demanar-li a un amic que el provi o fer servir un d’aquests llocs de publicació única que us indiquin si un lloc web no funciona. O simplement podeu activar el terminal i executar cURL:

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

El commutador en majúscules (-I) comprova la capçalera HTTP d'una pàgina web i s'afegeix l'opció -L (ubicació) per fer que el CURL segueixi les redireccions. Això significa que no haureu d'escriure l'URL complet de Facebook; només cal escriure facebook.com i cURL s'encarregarà de la resta gràcies a -L. Si hi ha redireccions, es mostraran amb el seu propi estat HTTP.

El missatge que ens interessa és '200 OK', cosa que significa que tot està bé amb el lloc web. Si de fet no funciona, veureu alguna cosa així:

Els codis d'estat HTTP només són tan informatius com ho permeteu entendre'ls. Aquest mètode no és completament fiable, ja que un lloc web pot retornar un codi d'estat que indica una sol·licitud processada amb èxit, tot i que estarà buit quan l'obriu al navegador. Tot i això, en la majoria dels casos hauria de correspondre a la situació real i fer-vos saber què hi ha a dalt o a baix.

5. Amplieu els URL escurçats

Els URL escurçats no són intrínsecament dolents. Sense ells, seria difícil compartir enllaços a Twitter i altres xarxes socials amb caràcter limitat. Alguns serveis d’escurçament d’URL també ofereixen estadístiques útils. Però sempre hi ha el risc que algú intenti amagar contingut maliciós darrere d'un URL escurçat o que un troll emmascri un Rickroll (o alguna cosa molt, molt pitjor). Si alguna vegada us sospiteu d'un URL escurçat per qualsevol motiu, cURL us pot ajudar a ampliar-lo i esbrinar cap a on porta exactament:

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

o bé

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

Podeu combinar cURL amb

grep

o bé

sed

; la diferència principal es troba en el format. Sed és una d’aquestes eines que tots els usuaris de Linux haurien de conèixer i complementa cURL en aquest i alguns altres casos d’ús. No oblidem que cURL pot descarregar fitxers des d'un URL abreujat (sempre que l'URL realment apunti a un fitxer):

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

La sintaxi és la mateixa que amb altres descàrregues de cURL i l’opció -L s’encarrega de la redirecció d’un URL abreujat a l’original.

6. Mostreu el vostre agraïment per l’art ASCII

És cert que això no és especialment útil, però sembla genial. Amb l'ajut de

pv

, una utilitat per controlar el progrés de les dades, cURL pot mostrar animacions ASCII al terminal.

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

Les opcions -s i -q mantenen les dues ordres en mode silenciós (tranquil). L'opció -L aquí fa referència a l'ordre pv i us permet modificar la velocitat de transferència de dades en bytes per segon. Dit d’una altra manera, si l’animació es mou massa ràpid o massa lentament, proveu de jugar amb aquest número. A part de les animacions, el cURL pot mostrar art ASCII estàtic i senzill:

El web té molts llocs web amb tot tipus d’art ASCII: des de peces increïblement detallades i d’alta qualitat fins a material estrany, ximple i fins i tot NSFW. Aquesta tècnica d’art digital es remunta als anys seixanta i avui forma part de la història i la cultura d’Internet, que es manté viva en nombroses col·leccions i eines que us permeten convertir text i imatges a art ASCII . Podeu utilitzar-lo per decorar el vostre terminal o per fer broma als vostres amics, qualsevol cosa que surti el vostre vaixell.

7. Experimenta amb xarxes socials

L’ús de les xarxes socials des del terminal no és cap novetat: ja us hem mostrat clients de Twitter de línia d’ordres per a Linux. Tot i que probablement no canvieu a cURL com a eina de socialització en línia, és bo saber que podeu publicar-lo a Facebook, tal com es descriu aquí. Notareu que, tècnicament, cURL no ho fa per si sol; una combinació d’eines fa la feina.

Pel que fa a Twitter, solia ser possible gestionar-lo directament des del terminal amb cURL. Aleshores, Twitter va canviar la seva API i ara hi ha un client CURL especial per a Twitter anomenat Twurl. No és el més fàcil d’utilitzar, sobretot per a principiants, i requereix autenticació amb la plataforma d’anuncis de Twitter. Això té sentit si sou un desenvolupador o un usuari avançat, però no tant si només voleu tuitejar des de la línia d’ordres. Tot i això, hi ha maneres de divertir-se amb Twitter. Podeu utilitzar cURL per comprovar el recompte de seguidors d'un usuari:

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

8. Cerqueu la vostra adreça IP externa

Trobar la vostra adreça IP local és prou senzill; només cal que executeu

pots veure els teus subscriptors a youtube?
ifconfig

o consulteu la vostra miniaplicació de gestió de xarxes. Per a la IP externa, la majoria de la gent utilitza llocs web especialitzats per obtenir aquesta informació. Tot i això, algunes coses són més fàcils de fer des del terminal, i aquest podria ser un d'ells. També podeu crear un àlies per a l'ordre cURL. Hi ha diversos serveis en línia que cooperen amb cURL:

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

Alguns us poden informar més sobre qualsevol adreça IP externa:

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

Tot el que heu de fer és triar un servei. Si no esteu decidit, només cal que incloeu tots al vostre àlies com a solucions de còpia de seguretat.

9. Enganxeu text i compartiu imatges

Trencar el flux de treball mai no és bo per a la productivitat i l’enfocament. Si feu la major part del vostre treball al terminal, canviar a un navegador només per compartir uns quants fitxers pot ser poc pràctic, si no molest. Per sort, alguns serveis de compartició de fitxers i pastabin van néixer per funcionar amb cURL, de manera que podeu utilitzar-los directament des del terminal, sense un compte d’usuari.

Clbin i Sprunge.us tenen una sintaxi similar. Amb Clbin, envieu un fitxer local o la sortida d'una ordre i retorna un enllaç al text carregat:

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

També admet la càrrega d'imatges (PNG, JPG i GIF):

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

Si voleu utilitzar Sprunge.us, escriviu:

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

Sprunge.us no admet la càrrega d'imatges per ara.

Ix.io es basa en el mateix principi que els dos serveis anteriors, amb algunes funcions addicionals. Per penjar un fitxer, escriviu:

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

o bé

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

Quan obtingueu un enllaç al text penjat, podeu modificar-ne l'URL per mostrar el ressaltat de la sintaxi (amb

ix.io/yourpaste+

,

ix.io/yourpaste/

, o

ix.io/yourpaste/language

per a un llenguatge de programació o scripting específic). També és possible limitar el nombre de vegades que es pot veure un enllaç modificant el número després de

'read:1'

valor:

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

Ix.io està pensat principalment per a fitxers basats en text, com ara codi font o registres del sistema. Si voleu penjar diversos formats de fitxer, utilitzeu Transfer.sh . Admet imatges, xifra fitxers i manté els fitxers en línia durant dues setmanes. Podeu penjar fins a 5 GB de dades a Transfer.sh. A continuació s’explica:

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

Podeu definir lliurement el nom del fitxer penjat. Per carregar diversos fitxers, enumereu-los un darrere l’altre amb l’opció -F:

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

10. Marqueu el correu sense llegir a GMail

Hi ha un gran potencial per desbloquejar-se a cURL si esteu disposat a aprofundir en els detalls dels protocols relacionats amb el correu electrònic (SMTP, POP, IMAP). Per fer una comprovació ràpida del correu electrònic, aquesta ordre funcionarà. Analitza el feed GMail i dóna format a la sortida (assumpte del correu electrònic i remitent)

tr

,

awk

,

sed

i / o

grep

ordres. Tingueu en compte que aquesta solució és extremadament insegura perquè exposa les vostres credencials d’inici de sessió a qualsevol persona que tingui accés al vostre terminal. La primera versió mostra el nom del remitent, mentre que la segona només imprimeix temes de correu electrònic no llegits:


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'

Què més pot fer CURL?

cURL poques vegades s’utilitza com a ordre independent. La majoria de la gent l’utilitza com a part d’un script o d’una aplicació. Tot i això, és possible crear pràctics fulls amb cURL, com hem demostrat aquí. Molts d'aquests exemples es van adaptar de CommandLineFu, una font fantàstica de pirates informàtics intel·ligents a la línia de comandes, i no els heu de considerar com a fets.

Amb prou coneixement i experiència, podem modificar totes les ordres, formatar-les de manera diferent o substituir-les completament per una millor solució. Podeu millorar les nostres ordres cURL suggerides? Coneixeu altres usos interessants de curl? Comparteix els teus consells als comentaris.

Crèdits de la imatge: Dins de la introducció a la línia d'ordres per Osama Khalid a través de Flickr.

Compartir Compartir Tweet Correu electrònic Suprimiu aquests fitxers i carpetes de Windows per alliberar espai al disc

Necessiteu esborrar espai al disc a l'ordinador Windows? A continuació, es mostren els fitxers i carpetes de Windows que es poden esborrar amb seguretat per alliberar espai al disc.

Llegiu a continuació
Temes relacionats
  • Linux
  • FTP
  • Gestió de descàrregues
  • terminal
Sobre l'autor Ivana Isadora Devcic(24 articles publicats)

Ivana Isadora és escriptora i traductora independent, amant de Linux i fangirl del KDE. Admet i promou programari lliure i de codi obert, i sempre busca aplicacions innovadores i fresques. Esbrineu com posar-vos en contacte aquí .

Més de Ivana Isadora Devcic

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us