15 patarimų, kaip naudoti „Curl“ komandą sistemoje „Linux“


Dešimtojo dešimtmečio viduryje, kai internetas dar buvo tik kūdikystėje, švedų programuotojas, vardu Danielis Stenbergas, pradėjo projektą, kuris galiausiai išaugo į tai, ką šiandien žinome kaip garbaną.

Iš pradžių jis siekė sukurti robotą, kuris periodiškai atsisiųsdavo valiutų kursus iš interneto ir IRC vartotojams teikdavo Švedijos kronų ekvivalentus JAV doleriais.

Trumpai tariant, projektas klestėjo, pridėdamas keletą protokolų ir funkcijų - visa kita yra istorija. Dabar pasinerkime abiem kojomis ir sužinokime, kaip „curl“ naudoti norint perduoti duomenis ir dar daugiau „Linux“!

Mes sudarėme jums 15 garbanojimo komandų sąrašą.

1. Peržiūrėkite garbanos versiją

Parinktys -V arba --version grąžins ne tik versiją, bet ir palaikomus dabartinės versijos protokolus bei funkcijas.

$ curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Atsisiųskite failą

Jei norite atsisiųsti failą, galite naudoti garbaną naudodami parinktis -O arba -o . Pirmieji failą išsaugos dabartiniame darbo kataloge tuo pačiu pavadinimu kaip ir nuotolinėje vietoje, o antrasis leidžia nurodyti kitą failo pavadinimą ir (arba) vietą.

$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Atnaujinkite pertraukiamą atsisiuntimą

Jei atsisiuntimas buvo nutrauktas dėl kokių nors priežasčių (pavyzdžiui, naudojant Ctrl + c ), galite jį labai lengvai atnaujinti. Naudojant -C - (brūkšnys C, tarpo brūkšnys) liepiama garbanai tęsti atsisiuntimą pradedant nuo ten, kur baigta.

$ curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. Atsisiųskite kelis failus

Naudodami šią komandą, vienu ypu atsisiųskite „info.html“ ir „about.html“ iš atitinkamai iš http://yoursite.com ir http://mysite.com.

$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. Atsisiųskite URL iš failo

Jei sujungsite garbanojimą su „xargs“, galite atsisiųsti failus iš faile esančių URL sąrašų.

$ xargs -n 1 curl -O < listurls.txt

6. Naudokite tarpinį serverį su autentifikavimu arba be jo

Jei esate už tarpinio serverio, klausančio 8080 prievado adresu proxy.yourdomain.com, atlikite tai.

$ curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

kur galite praleisti -U vartotojas: slaptažodį, jei jūsų tarpiniam serveriui nereikia autentifikuoti.

7. Užklausa HTTP antraštes

HTTP antraštės leidžia nuotoliniam žiniatinklio serveriui kartu su faktine užklausa siųsti papildomą informaciją apie save. Tai suteikia klientui išsamią informaciją apie tai, kaip tvarkoma užklausa.

Norėdami užduoti HTTP antraštes iš svetainės, atlikite šiuos veiksmus:

$ curl -I linux-console.net

Ši informacija taip pat yra jūsų naršyklės kūrėjų įrankiuose.

8. Pateikite POST užklausą su parametrais

Ši komanda nusiųs parametrus firstName ir lastName kartu su atitinkamomis reikšmėmis adresu https://yourdomain.com/info.php.

$ curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

Šiuo patarimu galite imituoti įprastos HTML formos elgseną.

9. Atsisiųskite failus iš FTP serverio su autentifikavimu arba be jo

Jei nuotolinis FTP serveris tikisi prisijungimo prie ftp:/yourftpserver, ši komanda atsisiųs jūsų failą.tar.gz į dabartinį darbo katalogą.

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

kur galite praleisti -u vartotojo vardą: slaptažodį, jei FTP serveris leidžia anonimiškai prisijungti.

10. Įkelkite failus į FTP serverį su autentifikavimu arba be jo

Norėdami įkelti vietinį failą pavadinimu mylocalfile.tar.gz į ftp:/yourftpserver naudodamiesi „curl“, atlikite šiuos veiksmus:

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. Nurodykite „User Agent“

Vartotojo agentas yra dalis informacijos, kuri siunčiama kartu su HTTP užklausa. Tai rodo, kurią naršyklę klientas naudojo pateikdamas užklausą. Pažiūrėkime, kokia dabartinė mūsų garbanos versija naudojama kaip numatytoji, ir pakeiskime ją vėliau į „Aš esu nauja žiniatinklio naršyklė“:

$ curl -I http://localhost --user-agent "I am a new web browser"

12. Saugokite svetainės slapukus

Norite sužinoti, kurie slapukai atsisiunčiami į jūsų kompiuterį, kai naršote adresu https://www.cnn.com? Norėdami išsaugoti juos cnncookies.txt, naudokite šią komandą. Tada galite naudoti katės komandą, kad peržiūrėtumėte failą.

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. Siųsti svetainės slapukus

Paskutiniame patarime gautus slapukus galite naudoti vėlesnėse užklausose toje pačioje svetainėje.

$ curl --cookie cnncookies.txt https://www.cnn.com

14. Pakeiskite vardo skiriamąją gebą

Jei esate žiniatinklio kūrėjas ir norite išbandyti vietinę „yourdomain.com“ versiją prieš tiesiogiai ją paskelbdami, galite priversti „curl“ išspręsti „http://www.yourdomain.com“ savo vietos šeimininkui taip:

$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Taigi užklausa į http://www.yourdomain.com nurodys garbanai prašyti svetainės iš „localhost“, o ne naudoti DNS ar/etc/hosts failą.

15. Apriboti atsisiuntimo greitį

Norėdami užkirsti kelią garbanoms dėl jūsų pralaidumo, galite apriboti atsisiuntimo greitį iki 100 KB/s taip.

$ curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O

Šiame straipsnyje mes pasidalijome trumpa garbanos atsiradimo istorija ir paaiškinome, kaip ją panaudoti, pateikdami 15 praktinių pavyzdžių.

Ar žinote kitų garbanojimo komandų, kurių galbūt praleidome šiame straipsnyje? Nedvejodami pasidalykite jais su mūsų bendruomene komentaruose! Be to, jei turite klausimų, nedvejodami praneškite mums. Lauksime jūsų!