15 nasvetov o uporabi ukaza Curl v Linuxu


Sredi devetdesetih let prejšnjega stoletja, ko je bil internet še v povojih, je švedski programer Daniel Stenberg začel projekt, ki je sčasoma prerasel v tisto, kar danes poznamo kot curl.

Sprva je nameraval razviti bota, ki bi občasno naložil menjalne tečaje s spletne strani in uporabnikom IRC zagotovil švedske ekvivalente kronov v ameriških dolarjih.

Skratka, projekt je uspeval in na poti dodal več protokolov in funkcij - ostalo je zgodovina. Zdaj pa se potopimo z obema nogama in se naučimo uporabljati curl za prenos podatkov in še več v Linuxu!

Za vas smo pripravili naslednji seznam 15 ukazov za curl.

1. Ogled različice curl

Možnosti -V ali --version ne bodo vrnile samo različice, temveč tudi podprte protokole in funkcije v vaši trenutni različici.

$ 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. Prenesite datoteko

Če želite prenesti datoteko, lahko uporabite curl z možnostmi -O ali -o . Prva bo datoteko shranila v trenutni delovni imenik z istim imenom kot na oddaljeni lokaciji, druga pa vam omogoča, da določite drugo ime datoteke in/ali lokacijo.

$ 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. Nadaljujte prekinjen prenos

Če je bil prenos iz nekega razloga prekinjen (na primer z Ctrl + c ), ga lahko zelo preprosto nadaljujete. Uporaba -C -(pomišljaj C, preslednica) pove curlu, da nadaljuje s prenosom, ki se je začel tam, kjer je končal.

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

4. Prenesite več datotek

Z naslednjim ukazom boste naenkrat prenesli info.html in about.html s spletnega mesta http://yoursite.com oziroma http://mysite.com.

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

5. Prenesite URL -je iz datoteke

Če kombinirate curl z xargs, lahko datoteke prenesete s seznama URL -jev v datoteki.

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

6. Uporabite proxy s preverjanjem pristnosti ali brez

Če ste za proxy strežnikom, ki posluša vrata 8080 na proxy.yourdomain.com, naredite to.

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

kjer lahko preskočite -U uporabnik: geslo, če vaš proxy ne zahteva preverjanja pristnosti.

7. Poizvedite glave HTTP

Glave HTTP omogočajo oddaljenemu spletnemu strežniku, da skupaj z dejansko zahtevo pošlje dodatne podatke o sebi. To stranki posreduje podrobnosti o tem, kako se zahteva obravnava.

Če želite poizvedovati glave HTTP s spletnega mesta, naredite naslednje:

$ curl -I linux-console.net

Te informacije so na voljo tudi v orodjih za razvijalce vašega brskalnika.

8. Naredite zahtevo POST s parametri

Naslednji ukaz bo poslal parametre firstName in lastName skupaj z ustreznimi vrednostmi na https://yourdomain.com/info.php.

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

Ta nasvet lahko uporabite za simulacijo obnašanja običajnega obrazca HTML.

9. Prenesite datoteke s strežnika FTP z ali brez preverjanja pristnosti

Če oddaljeni strežnik FTP pričakuje povezave na ftp:/yourftpserver, bo naslednji ukaz prenesel yourfile.tar.gz v trenutni delovni imenik.

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

kjer lahko preskočite -u uporabniško ime: geslo, če strežnik FTP dovoljuje anonimne prijave.

10. Naložite datoteke na strežnik FTP z ali brez preverjanja pristnosti

Če želite naložiti lokalno datoteko z imenom mylocalfile.tar.gz na ftp:/yourftpserver z uporabo curl, naredite naslednje:

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

11. Določite uporabniškega agenta

Uporabniški agent je del informacij, ki se pošljejo skupaj z zahtevo HTTP. To označuje, kateri brskalnik je odjemalec uporabil za zahtevo. Poglejmo, kaj naša trenutna različica curl uporablja kot privzeto, in jo pozneje spremenimo v\"Jaz sem nov spletni brskalnik":

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

12. Shranite piškotke spletnega mesta

Želite videti, kateri piškotki se naložijo v vaš računalnik, ko brskate na https://www.cnn.com? Uporabite naslednji ukaz, da jih shranite v datoteko cnncookies.txt. Nato si lahko z ukazom cat ogledate datoteko.

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

13. Pošljite piškotke spletnega mesta

Piškotke, pridobljene v zadnjem nasvetu, lahko uporabite v naslednjih zahtevah na isto spletno mesto.

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

14. Spremenite ločljivost imen

Če ste spletni razvijalec in želite preizkusiti lokalno različico svojega domena.com, preden ga potisnete v živo, lahko naredite, da se kodra razreši http://www.vaša domena.com na vašem lokalnem gostitelju na naslednji način:

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

Tako bo poizvedba na http://www.yourdomain.com povedala curlu, da zahteva spletno mesto od localhost, namesto da uporablja DNS ali datoteko/etc/hosts.

15. Omejite hitrost prenosa

Če želite preprečiti, da bi curl povezal vašo pasovno širino, lahko omejite hitrost prenosa na 100 KB/s, kot sledi.

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

V tem članku smo delili kratko zgodovino nastanka kodra in s 15 praktičnimi primeri razložili, kako ga uporabljati.

Ali poznate kakšne druge ukaze curl, ki smo jih v tem članku morda spregledali? V komentarjih jih delite z našo skupnostjo! Če imate vprašanja, nam to sporočite. Veselimo se vaših odzivov!