Cum să utilizați cURL pentru transferul de date pe linia de comandă și altele

Cum să utilizați cURL pentru transferul de date pe linia de comandă și altele
⌛ Reading Time: 10 minutes

Dacă ați urmat de ceva vreme instrucțiunile de instalare concentrate pe terminale pentru aplicațiile Linux, probabil că ați întâlnit curl comanda la un moment dat sau altul. cURL este un instrument de linie de comandă pentru transferul de date cu adrese URL. Una dintre cele mai simple utilizări este descărcarea unui fișier prin linia de comandă. Acest lucru este însă înșelător, deoarece cURL este un instrument incredibil de puternic care poate face mult mai mult.

Ce este cURL?

Scrisă inițial de Daniel Sternberg în 1996 pentru a prelua date financiare de pe serverele web și a le difuza pe canalele IRC, cURL a evoluat pentru a deveni un instrument puternic pentru obținerea de date fără a fi nevoie să utilizați un browser. Dacă utilizați întotdeauna terminalul, acesta va fi unul dintre cele mai importante instrumente din arsenalul dvs.

În majoritatea distribuțiilor Linux, cURL este preinstalat în sistem și îl puteți utiliza imediat. Chiar dacă nu este instalat, se găsește și în majoritatea depozitelor, așa că îl puteți instala cu ușurință folosind Centrul de software.

Pentru Windows, nu are o comandă „curl-like”, iar macOS are cURL preinstalat, dar nu oferă tot atâtea steaguri ca versiunea Linux.

Instalare

Înainte de a continua, trebuie să ne asigurăm că cURL este deja instalat pe sistemul nostru.

Linux

În distribuțiile bazate pe Debian/Ubuntu, utilizați următoarea comandă pentru a instala cURL:

În distribuțiile bazate pe Arch:

În Fedora/CentOS/RHEL:

macOS

Pentru macOS, este deja preinstalat, așa că nu trebuie să faceți nimic.

Windows

  1. Pentru Windows 7/10/11, mergeți la Pagina de descărcare a cURL și alegeți dintre pachetele pe 64 de biți sau 32 de biți, în funcție de arhitectura pe care o executați. Dacă nu vă cunoașteți arhitectura, 64 de biți este un pariu sigur, deoarece marea majoritate a hardware-ului fabricat după 2006 este pe el.
  2. Creați un folder fie direct pe unitatea de sistem, fie în „C:Program Files” și numiți-l „cURL”.
  1. Reveniți la fișierul zip pe care l-ați descărcat, deschideți-l și găsiți „curl.exe” în folderul „bin”. Copiați-o în folderul cURL pe care l-ați creat. EXE pe care l-ați copiat este complet autonom și capabil să ruleze orice permutare pe care o puteți rula pe Linux.
  2. Pentru a face această comandă cu adevărat utilă, trebuie să o adăugăm la variabila PATH din Windows, astfel încât să poată rula din promptul de comandă oriunde.
  • Faceți clic pe meniul Start, tastați environment, și apăsați introduce.
  • Faceți clic pe „Variabile de mediu…” Acum ar trebui să vă aflați în setările variabilelor de mediu.
Variabile de mediu Linuxcurl
  • Selectați variabila de mediu „Cale”, apoi faceți clic pe „Editare…”
  • Odată în fereastra de dialog de editare a căii, faceți clic pe „Nou” și introduceți directorul în care se află „curl.exe” – de exemplu, „C:Program FilescURL”.
Linuxcurl Editvariable
  • Faceți clic pe „OK” în ferestrele de dialog pe care le-ați deschis prin acest proces și bucurați-vă de a avea cURL în terminalul dvs.!

Fiecare steag din cURL care este utilizabil în Linux ar trebui să funcționeze în versiunea Windows.

Cuvânt către înțelepți: rețineți că promptul de comandă nu trebuie confundat niciodată cu terminalul Windows. Terminalul Windows vine cu propria sa versiune de cURL inclusă în PowerShell, care servește funcționalități similare, dar funcționează complet diferit.

Folosind cURL

Pentru a începe, introduceți pur și simplu curl maketecheasier.com în terminalul dvs. și apăsați introduce.

Dacă nu obțineți nicio ieșire, aceasta se datorează faptului că serverul acestui site nu este configurat să răspundă la solicitări aleatorii de conexiune la domeniul său non-www. Dacă ați interogat un server care nu există sau nu este online, veți primi un mesaj de eroare care spune că cURL nu a putut rezolva gazda.

Eroare Linuxcurl

Pentru a face cURL să facă ceva cu adevărat util, va trebui să specificăm un protocol. În exemplul nostru, folosim protocolul HTTPS pentru a interoga pagina de pornire a acestui site. Tip curl https://www.maketecheasier.com.

Fișiere Linuxcurl

Dacă totul merge bine, ar trebui să te uiți la un zid gigantic de date. Pentru a face aceste date un pic mai utilizabile, putem spune cURL să le pună într-un fișier HTML:

Descărcare Linuxcurl

Această comandă plasează conținutul rezultatului site-ului nostru într-un fișier HTML din folderul Descărcări. Navigați la folderul cu managerul de fișiere preferat și faceți dublu clic pe fișierul pe care tocmai l-ați creat. Ar trebui să deschidă un instantaneu al rezultatului HTML al paginii de start a acestui site.

Testarea Linuxcurl

În mod similar, puteți utiliza -o steag pentru a obține același rezultat:

Urmărirea redirecționărilor

Majoritatea site-urilor redirecționează automat traficul de la protocolul „http” la „https”. În cURL, puteți realiza același lucru cu -L steag. Aceasta va urma automat redirecționările 301 până când ajunge la o pagină sau un fișier care poate fi citit.

Redirecționare Linuxcurl

Reluarea unei descărcări

Când descărcați fișiere mari, în funcție de viteza dvs. de internet, întreruperile pot fi extrem de iritante. Din fericire, cURL are o funcție de reluare. Trecând pe lângă -C flag se va ocupa de această problemă într-o clipă.

Pentru a arăta un exemplu din lumea reală, am întrerupt intenționat o descărcare a versiunii de testare a Debian, apăsând Ctrl și C în mijlocul apucării lui.

Linuxcurl întrerupt

Pentru următoarea noastră comandă, atașăm -C steag. De exemplu,

Linuxcurl CV

Descărcarea a început cu succes de unde a rămas.

Descărcarea a mai mult de un fișier

Deoarece cURL nu are cel mai intuitiv mod de a descărca mai multe fișiere, există două metode, fiecare cu propriul compromis.

Dacă fișierele pe care le descărcați sunt enumerate (de exemplu, fișierul 1, fișierul 2 și așa mai departe), puteți utiliza paranteze pentru a obține întreaga gamă de fișiere și „#” în rezultatul pe care îl specificați cu -o steag. Pentru a face acest lucru un pic mai puțin confuz, iată un exemplu:

Un mod mai simplu de a face acest lucru este cu -O (--remote-name). Acest indicator face ca cURL să descarce fișierul de la distanță într-un fișier local cu același nume. Deoarece nu trebuie să specificați o ieșire, ar trebui să utilizați această comandă atunci când terminalul este deschis în directorul în care doriți să descărcați fișierele.

Dacă aveți o cantitate mare de fișiere enumerate de descărcat, --remote-name-all este un steag mai bun pentru asta:

Puteți chiar să specificați fișiere neenumerate care provin de pe același site fără a fi nevoie să introduceți din nou adresa URL folosind paranteze:

Descărcarea cu autentificare

Descărcați fișiere care necesită autentificare (de exemplu, atunci când luați de pe un server FTP privat) cu -u steag. Fiecare cerere de autentificare trebuie făcută cu numele de utilizator mai întâi și parola în al doilea rând, cu două puncte care le separă pe cele două. Iată un exemplu pentru a simplifica lucrurile:

Acest lucru îl va autentifica pe prietenul nostru bonobo_bob pe serverul FTP și va descărca fișierul în folderul Descărcări.

Împărțirea și îmbinarea fișierelor

Dacă din orice motiv doriți să descărcați un fișier mare și să-l împărțiți în bucăți, puteți face acest lucru cu cURL --range steag. Cu --range, trebuie să specificați octetul cu care doriți să începeți până la cel la care doriți să terminați. Dacă nu specificați un sfârșit al intervalului, acesta va descărca doar restul fișierului.

În comanda de mai jos, cURL va descărca primii 100 MB din imaginea de instalare a Arch Linux:

Pentru următorii 100 MB, utilizați --range 100000000-199999999, etc. Puteți înlănțui aceste comenzi utilizând && operand:

Dacă ați urmat structura de comandă de mai sus la literă, ar trebui să apară opt fișiere acolo unde ați cerut cURL să le descarce.

Părți Linuxcurl

Pentru a reuni aceste fișiere, va trebui să utilizați cat comandă dacă sunteți pe Linux sau macOS așa:

Pentru Windows, va trebui să utilizați copy comanda astfel:

Alte caracteristici utile

Există o mulțime de steaguri și utilizări pentru cURL:

  • -# – Folosește o bară de progres pentru a indica cât de departe sunteți în ceea ce prindeți. Exemplu: curl -# https://asite.com/somefile.zip > ~/somefile.zip.
  • -a – Solicită cURL să atașeze la un fișier, în loc să îl suprascrie. Exemplu: curl -ao ~/collab-full.x https://example-url.com/collab-part26.x.
  • --head – Preia doar antetul răspunsului de pe server fără datele de ieșire. Acest lucru este util atunci când fie depanați un site web, fie aruncați o privire la răspunsurile programate ale serverului către clienți. Exemplu: curl --head https://example-url.com.
  • --limit-rate – Comandă o descărcare cu lățime de bandă limitată. Este util în situațiile în care nu doriți ca cURL să obțină toată lățimea de bandă disponibilă în sistemul dvs. Un număr simplu va fi interpretat ca octeți pe secundă. K reprezintă kiloocteți pe secundă; M reprezintă megaocteți pe secundă. Exemplu: curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip.
  • -o – După cum am menționat mai devreme, determină un fișier de ieșire pe care să-l folosească cURL. Exemplu: curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip.
  • --proxy – Dacă doriți să lucrați cu un proxy, acesta este modalitatea de a face acest lucru. Exemplu: curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip.

cURL vs. Wget

Ambele lansate în același an (1996), cURL și Wget sunt aproape programe surori pentru observatorul ocazional. Cufundați-vă puțin mai adânc, totuși, și puteți vedea că aceste două surori au scopuri diferite.

Wget

  • Este complet construit de la zero pentru a prelua date de pe Internet.
  • Nu are nevoie de -L sau -o steaguri precum cURL; doar tastează wget [url] si pleaca!
  • Poate descărca recursiv pentru a prelua totul dintr-un director cu -r steag.
  • Are toate funcțiile de care un utilizator are nevoie pentru utilizarea zilnică și răspunde sarcinilor zilnice de administrator de sistem.
  • (În Linux) Nu are nevoie de multe dependențe; toate ar trebui să fie disponibile din cutie.

răsuci

  • Repertoriu extins de steaguri și funcții utile pentru preluarea de la distanță.
  • Suportă rețele locale (LDAP) și imprimante de rețea (Samba).
  • Funcționează bine cu bibliotecile de compresie gzip.
  • Depinde de libcurl, care permite dezvoltatorilor să scrie software sau scripturi bash care includ funcționalitatea cURL.

Pe scurt, Wget este „cutia de instrumente a tuturor” pentru preluarea de lucruri de pe Internet, în timp ce cURL extinde acest lucru cu un control mai granulat pentru utilizatorii cu putere și administratorii de sistem.

întrebări frecvente

1. Am primit o eroare de certificat în Linux. Cum o repar?

Dacă ați primit o eroare care spune ceva de genul „emițătorul certificatului de la egal la egal a fost marcat ca nefiind de încredere”, cel mai simplu mod de a remedia acest lucru este prin reinstalarea pachetului de certificate comune în distribuția dvs.

Pentru sistemele bazate pe Debian/Ubuntu:

Pentru Fedora/CentOS/RHEL:

Pentru sistemele bazate pe Arch:

Rețineți că în Arch este posibil să doriți să ștergeți memoria cache a pachetului folosind pacman -Scc înainte de a reinstala pachetul de certificate.

Dacă încă primiți această eroare, este posibil să fie ceva greșit la capătul serverului.

2. Este sigur să rulați împreună comenzile cURL și bash?

Deși nu este cel mai obișnuit mod de a instala aplicații Linux, există o serie de dezvoltatori (cum ar fi cei din spatele NodeJS) care nu vă oferă de ales decât să utilizați curl alături de o comandă de acces la rădăcină care rulează prin bash (de exemplu, curl [argument] | sudo -E bash -) pentru a instala software-ul.

Poate părea puțin înfricoșător, dar dacă oamenii din spatele aplicației sunt de încredere, este foarte puțin probabil să spargi ceva. Actorii rău intenționați sunt peste tot și se pot infiltra în depozite precum AUR lui Arch, așa că instalând folosind curl în combinație cu comenzile de acces rădăcină, nu este în general mai nesigur decât a face acest lucru prin managerul de pachete.

3. Pot folosi cURL cu Tor?

Da! Porniți browserul Tor (sau un serviciu tor autonom) și utilizați --proxy steag. Tor vă oferă un proxy local pe care îl puteți utiliza pentru a vă masca IP-ul în alte aplicații. Iată un exemplu de cURL folosit cu Tor:

Serviciile Tor autonome vor folosi 9050 ca port de ascultare, în timp ce browserul Tor folosește portul 9150.

Încheierea

cURL sa dovedit rezistent în contextul în schimbare a lumii Linux, păstrându-și poziția de instrument important în arsenalul utilizatorului terminalului.

Dacă sunteți nou în linia de comandă, consultați unele dintre cele mai utile comenzi Linux. Dacă doriți pur și simplu să căutați pe Web în loc să descărcați date de pe Internet, puteți naviga și pe terminal.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.