Obțineți curățenie: 10 lucruri utile pe care le puteți face cu curl

Obțineți curățenie: 10 lucruri utile pe care le puteți face cu curl

Când începem să învățăm despre instrumentele din linia de comandă, avem tendința să le vedem ca fiind cu un singur scop. Ești învățat asta





cat

imprimă conținutul fișierului,





ls

listează toate elementele dintr-un director și





du

arată utilizarea spațiului pe disc. Cu toate acestea, multe instrumente din linia de comandă au zeci de opțiuni, toate descrise cu grijă în fișierele lor

man

fișiere. Unii dintre ei pot face minuni atunci când sunt combinați cu alte comenzi.



Desigur, nu este rezonabil să ne așteptăm ca cineva să-și amintească fiecare opțiune. Având în vedere acest lucru, este bine să ne reîmprospătăm ocazional cunoașterea comenzilor Linux , pentru că s-ar putea să descoperiți noi utilizări pentru ei.

De data aceasta, ne concentrăm asupra răsuci , un instrument pentru transferul de date printr-o serie de protocoale Internet, cum ar fi HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP și multe altele.





În termeni simplificați, cURL efectuează diverse cereri de la un client la un server, stabilind o conexiune între aceștia prin intermediul unui protocol specific și a metodelor sale asociate. De exemplu, în calitate de client HTTP, cURL poate trimite o cerere pentru vizualizarea sau descărcarea conținutului (metoda GET request) sau pentru a posta conținut printr-un formular pe un site web (metoda de solicitare POST). Multe aplicații și servicii web permit cURL să interacționeze cu API-urile lor (Application Programming Interface).

Deoarece funcționalitatea lor se suprapune într-o anumită măsură, CURL și wget sunt adesea comparate între ele. Ambele instrumente pot descărca conținut de pe Internet, dar wget acceptă descărcări recursive, răzuire web și, în general, se simte mai simplu de utilizat. Dacă doriți doar să descărcați fișiere de pe terminal, wget este probabil o alegere mai bună.





Pe de altă parte, dacă aveți nevoie de metode avansate de autentificare HTTP și doriți să încărcați fișiere și să le descărcați, merită să învățați cum să curlați. De asemenea, wget acceptă doar HTTP (S) și FTP, în timp ce cURL acoperă o gamă largă de protocoale. Aceasta înseamnă că CURL poate face mai multe lucruri interesante - și iată zece exemple pentru a demonstra acest lucru.

1. Obțineți raportul meteo

Dacă cineva ți-ar spune să verifici vremea de la terminal, te-ai aștepta să vezi câteva numere plictisitoare. Nu cu această comandă.

curl http://wttr.in/LOCATION

Informațiile sunt furnizate de o aplicație CLI numită noi mergem , dar dacă nu doriți să-l instalați, cURL poate prelua prognoza din frontendul său web wttr.in. Tot ce are nevoie este locația pentru care doriți prognoza. Introduceți doar numele unui oraș, codul aeroportului sau adresa IP curentă. O nouă funcție afișează informații despre fazele lunii dacă introduceți:

curl wttr.in/Moon

2. Descărcați fișiere și reluați descărcările

Descărcarea fișierelor este ceva ce facem de obicei în browser. Uneori veți dori să utilizați un manager de descărcare; de exemplu, când descărcați mai multe fișiere simultan sau când doriți să întrerupeți descărcările. Deși cURL nu este o alegere populară pentru descărcări simultane (se recomandă în schimb wget), îl puteți utiliza în continuare în acest scop combinând opțiunile sale puternice (comutatoare). Mai întâi veți avea nevoie de un link direct la fișier. În acest exemplu, vom folosi un PDF al revistei Linux Voice.

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

Comutatorul O cu majuscule (-O) face ca CURL să salveze fișierul cu numele de fișier implicit (de obicei cel de la link-ul în sine). Dacă doriți să îl salvați sub un nume diferit, veți folosi o minusculă o urmată de noul nume:

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

În mod implicit, fișierele sunt salvate în directorul curent (verificați-l cu

pwd

comanda). Pentru a le salva în altă parte, furnizați calea după comutatorul -o. Comutatorul -C - permite cURL să reia descărcarea. O veți întrerupe apăsând Ctrl + C în terminal și veți relua rularea aceleiași comenzi de descărcare:

cURL afișează progresul descărcării într-un format tabelar, cu coloane care conțin informații despre viteza de descărcare, dimensiunea totală a fișierului, timpul scurs și multe altele. Dacă nu vă place acest lucru, puteți opta pentru o bară de progres mai simplă adăugând - # sau --progress-bar la comanda dvs. cURL.

Pentru a descărca mai multe fișiere simultan, trebuie doar să enumerați linkurile unul după altul:

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

Cu ajutorul altor instrumente din linia de comandă, putem descărca în serie toate imaginile PNG și JPG de pe un blog Tumblr:

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

În acest caz,

cut

și

grep

colectați informații despre numele de fișiere și formatați-le astfel încât să fie afișate numai fișierele cu extensii specificate. Dacă executați comanda fără ultima conductă:

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

veți obține doar o listă de fișiere care îndeplinesc criteriile noastre, dar ele nu vor fi de fapt descărcate. cURL poate obține o listă de imagini dintr-o serie de pagini, cu condiția ca blogul să utilizeze paginarea standard:

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

Puteți modifica intervalul schimbând numerele între paranteze drepte. Din nou, această comandă ar lista doar imaginile; pentru a le descărca, executați comanda completă în directorul în care doriți să salvați imaginile:

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

Dacă sunteți bine versat expresii obisnuite , puteți îmbunătăți aspectul și eficiența acestei comenzi și puteți partaja rezultatul în comentarii.

3. Gestionați fișierele pe un server FTP

Nu auzim prea multe despre FTP în zilele noastre, dar asta nu înseamnă că este învechit. De fapt, multe proiecte open source și distribuții Linux își partajează software-ul pe servere FTP. Deoarece FTP este acceptat de cURL, îl puteți folosi ca un simplu client FTP pentru a încărca și descărca fișiere. Puteți răsfoi fișierele de pe un server FTP accesând directoarele:

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

Pentru a intra într-un subdirector, tastați numele acestuia urmat de o bară oblon (/).

Descărcarea fișierelor este similară cu descărcările HTTP descrise în secțiunea anterioară. Puteți folosi -o sau -O și puteți adăuga -C - dacă doriți să întrerupeți descărcările.

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

Deși cURL nu acceptă descărcări recursive (amintiți-vă, wget nu!), Totuși poate descărca o serie de fișiere simultan. Singura condiție este ca numele fișierelor să urmeze un model. De exemplu, am putea descărca de pe un server de găzduire a tapetului unde imaginile de fundal sunt denumite „wallpaperNUMBER”:

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

Unele servere FTP necesită autentificare înainte de a putea descărca fișiere. cURL vă permite să vă conectați cu opțiunea -u (utilizator):

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

De asemenea, puteți încărca fișiere pe un server FTP cu opțiunea -T (transfer):

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

Aici puteți defini mai multe fișiere ca un interval. Această caracteristică este uneori numită „globbing”. Dacă numele fișierelor nu urmează un model, trebuie doar să le enumerați între paranteze (

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

). În schimb, dacă au nume similare, aplicați aceeași logică din exemplul de descărcare Tumblr și utilizați paranteze pătrate (

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

). Asigurați-vă că furnizați calea completă a fișierelor dacă nu se află în directorul dvs. curent.

4. Verificați dacă un site web nu funcționează

Am fost cu toții acolo. Un site de care aveți absolut nevoie încetează să funcționeze brusc. Atunci Facebook nu se va încărca. Confruntat cu o adevărată problemă din prima lume, ce faci?

Puteți să-l faceți Google, să cereți unui prieten să îl testeze sau să utilizați unul dintre acele site-uri cu o singură difuzare care vă spun dacă un site web nu funcționează. Sau puteți pur și simplu să declanșați terminalul și să rulați cURL:

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

Comutatorul cu majuscule I (-I) verifică antetul HTTP al unei pagini web, iar opțiunea -L (locație) este adăugată pentru a face cURL să urmărească redirecționările. Aceasta înseamnă că nu trebuie să introduceți adresa URL completă de Facebook; doar scrie facebook.com iar cURL se va ocupa de restul datorită lui -L. Dacă există redirecționări, acestea vor fi afișate cu propria lor stare HTTP.

Mesajul care ne interesează este „200 OK”, ceea ce înseamnă că totul este în regulă cu site-ul web. Dacă într-adevăr este în jos, veți vedea așa ceva:

Codurile de stare HTTP sunt la fel de informaționale pe cât le permite înțelegerea lor. Această metodă nu este complet fiabilă, deoarece un site web poate returna un cod de stare care indică o solicitare procesată cu succes, totuși va fi gol atunci când îl deschideți în browser. Totuși, în majoritatea cazurilor, ar trebui să corespundă situației reale și să vă anunțe ce este în sus sau în jos.

5. Extindeți adresele URL scurtate

Adresele URL scurtate nu sunt în mod inerent rele. Fără ele, ar fi dificil să distribuiți linkuri pe Twitter și alte rețele sociale cu caracter limitat. Unele servicii de scurtare a adreselor URL oferă și analize utile. Dar există întotdeauna riscul ca cineva să încerce să ascundă conținutul rău intenționat în spatele unui URL scurtat sau ca un troll să mascheze un Rickroll (sau ceva mult, mult mai rău). Dacă vreodată vă simțiți suspect de o adresă URL scurtată din orice motiv, cURL vă poate ajuta să o extindeți și să aflați unde duce exact:

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

sau

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

Puteți combina cURL cu

grep

sau

sed

; principala diferență constă în formatare. Sed este unul dintre acele instrumente pe care fiecare utilizator Linux ar trebui să le cunoască și completează cURL în acest caz și în alte câteva cazuri de utilizare. Să nu uităm că cURL poate descărca fișiere dintr-un URL scurtat (cu condiția ca URL-ul să indice efectiv un fișier):

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

Sintaxa este aceeași ca și în cazul altor descărcări cURL, iar opțiunea -L se ocupă de redirecționarea de la un URL scurtat la cel original.

6. Arată-ți aprecierea pentru ASCII Art

Desigur, acest lucru nu este deosebit de util, dar arată grozav. Cu ajutorul

pv

, un utilitar pentru monitorizarea progresului datelor, cURL poate afișa animații ASCII în terminal.

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

Opțiunile -s și -q păstrează ambele comenzi în modul silențios (liniștit). Opțiunea -L aici se referă la comanda pv și vă permite să modificați rata de transfer a datelor în octeți pe secundă. Cu alte cuvinte, dacă animația se mișcă prea repede sau prea încet, încercați să vă jucați cu acel număr. În afară de animații, cURL poate afișa artă ASCII simplă și statică:

Web-ul are o mulțime de site-uri web cu tot felul de artă ASCII: de la piese uimitor de detaliate, de înaltă calitate, până la materiale ciudate, stupide și chiar NSFW. Această tehnică de artă digitală datează din anii 1960 și astăzi face parte din cultura și istoria Internetului, păstrată în viață în numeroase colecții și instrumente care vă permit convertiți text și imagini în artă ASCII . Îl puteți folosi pentru a vă decora terminalul sau pentru a vă glumi prietenii - orice vă pluteste barca.

7. Experimentați cu rețelele sociale

Utilizarea rețelelor sociale de la terminal nu este nimic nou - v-am arătat deja clienții Twitter din linia de comandă pentru Linux. Deși probabil nu veți trece la cURL ca instrument de socializare online, este bine să știți că puteți posta pe Facebook cu acesta, așa cum este descris aici. Veți observa că, din punct de vedere tehnic, cURL nu o face singură; o combinație de instrumente face treaba.

În ceea ce privește Twitter, era posibil să îl gestionezi direct de la terminal cu cURL. Apoi, Twitter și-a schimbat API-ul și acum există un client special CURL pentru Twitter numit Twurl. Nu este cel mai ușor lucru de utilizat, în special pentru un începător și necesită autentificare cu platforma de anunțuri Twitter. Acest lucru are sens dacă sunteți dezvoltator sau un utilizator avansat, dar nu atât de mult dacă doriți doar să trimiteți un tweet din linia de comandă. Cu toate acestea, există modalități de a te distra cu Twitter. Puteți utiliza cURL pentru a verifica numărul de adepți al unui utilizator:

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

8. Găsiți adresa IP externă

Găsirea adresei IP locale este suficient de ușoară - pur și simplu rulați

cum se schimbă locația de rezervă Windows 10
ifconfig

sau consultați applet-ul de gestionare a rețelei. Pentru IP extern, majoritatea oamenilor folosesc site-uri web specializate pentru a obține aceste informații. Cu toate acestea, unele lucruri sunt mai ușor de făcut de la terminal, iar acesta ar putea fi unul dintre ele. De asemenea, puteți crea un alias pentru comanda cURL. Există mai multe servicii online care cooperează cu cURL:

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

Unii vă pot spune mai multe despre orice adresă IP externă:

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

Tot ce trebuie să faceți este să alegeți un serviciu. Dacă nu sunteți hotărât, includeți-le pe toate în aliasul dvs., ca soluții de rezervă.

9. Lipiți text și partajați imagini

Întreruperea fluxului de lucru nu este niciodată bună pentru productivitate și concentrare. Dacă faceți cea mai mare parte a muncii dvs. în terminal, trecerea la un browser doar pentru a partaja câteva fișiere poate fi impracticabilă, dacă nu chiar deranjantă. Din fericire, unele pastebin și servicii de partajare a fișierelor s-au născut pentru a funcționa cu cURL, astfel încât să le puteți folosi direct de la terminal, fără un cont de utilizator.

Clbin și Sprunge.us au sintaxă similară. Cu Clbin, introduceți un fișier local sau ieșirea unei comenzi și returnează un link către textul încărcat:

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

De asemenea, acceptă încărcarea imaginilor (PNG, JPG și GIF):

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

Dacă doriți să utilizați în schimb Sprunge.us, tastați:

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

Sprunge.us nu acceptă încărcarea de imagini pentru moment.

Ix.io se bazează pe același principiu ca și cele două servicii anterioare, cu câteva caracteristici suplimentare. Pentru a încărca un fișier, tastați:

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

sau

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

Când primiți un link către textul încărcat, puteți modifica adresa URL a acestuia pentru a afișa evidențierea sintaxei (cu

ix.io/yourpaste+

,

ix.io/yourpaste/

, sau

ix.io/yourpaste/language

pentru un anumit limbaj de scriptare sau programare). De asemenea, este posibil să se limiteze de câte ori poate fi vizualizat un link modificând numărul după

'read:1'

valoare:

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

Ix.io este destinat în principal fișierelor bazate pe text, cum ar fi codul sursă sau jurnalele de sistem. Dacă doriți să încărcați o varietate de formate de fișiere, utilizați Transfer.sh . Acesta acceptă imagini, criptarea fișierelor și vă păstrează fișierele online timp de două săptămâni. Puteți încărca până la 5 GB de date pe Transfer.sh. Iată cum:

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

Sunteți liber să definiți numele fișierului încărcat. Pentru a încărca mai multe fișiere, enumerați-le una după alta cu opțiunea -F:

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

10. Verificați e-mailul necitit pe GMail

Există un potențial masiv de a fi deblocat în cURL dacă sunteți dispus să aprofundați detaliile protocoalelor legate de e-mail (SMTP, POP, IMAP). Pentru o verificare rapidă a e-mailului, această comandă va funcționa. Acesta analizează fluxul dvs. GMail și formatează ieșirea (subiectul și expeditorul e-mailului)

tr

,

awk

,

sed

și / sau

grep

comenzi. Rețineți că această soluție este extrem de nesigură, deoarece vă expune datele de conectare oricui are acces la terminalul dvs. Prima versiune arată numele expeditorului, în timp ce a doua imprimă numai subiecte de e-mail necitite:


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'

Ce altceva poate face CURL?

cURL este rar folosit ca o comandă independentă. Majoritatea oamenilor îl folosesc ca parte a unui script sau a unei aplicații. Totuși, este posibil să creați unice linii practice cu cURL, așa cum am demonstrat aici. Multe dintre aceste exemple au fost adaptate de la CommandLineFu, o sursă fantastică de hack-uri inteligente din linia de comandă și nu ar trebui să le considerați ca fiind stabilite în piatră.

Cu suficiente cunoștințe și experiență, putem modifica fiecare comandă, o formatăm diferit sau o putem înlocui complet cu o soluție mai bună. Puteți îmbunătăți comenzile noastre CURL sugerate? Cunoașteți alte utilizări interesante pentru cURL? Împărtășiți sfaturile dvs. în comentarii.

Credite de imagine: Introducere în linia de comandă de Osama Khalid prin Flickr.

Acțiune Acțiune Tweet E-mail Ștergeți aceste fișiere și foldere Windows pentru a elibera spațiu pe disc

Trebuie să goliți spațiul pe disc pe computerul dvs. Windows? Iată fișierele și folderele Windows care pot fi șterse în siguranță pentru a elibera spațiu pe disc.

Citiți în continuare
Subiecte asemănătoare
  • Linux
  • FTP
  • Managementul descărcărilor
  • Terminal
Despre autor Ivana Isadora Devcic(24 articole publicate)

Ivana Isadora este scriitoare și traducătoare independentă, iubitoare de Linux și fată KDE. Sprijină și promovează software-ul gratuit și open source și caută mereu aplicații proaspete și inovatoare. Aflați cum să luați legătura Aici .

Mai multe de la Ivana Isadora Devcic

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona