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 discTrebuie 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
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 DevcicAboneaza-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