15 savjeta o tome kako koristiti naredbu 'Curl' u Linuxu


Sredinom 1990-ih, kada je internet još bio u povojima, švedski programer po imenu Daniel Stenberg pokrenuo je projekat koji je na kraju prerastao u ono što danas znamo kao curl.

U početku je imao za cilj da razvije bot koji bi povremeno preuzimao kurseve valuta sa web stranice i koji bi korisnicima IRC-a pružao ekvivalente u švedskim krunama u američkim dolarima.

Ukratko, projekat je napredovao, dodajući nekoliko protokola i funkcija usput – a ostalo je istorija. Sada zaronimo s obje noge i naučimo kako koristiti curl za prijenos podataka i više u Linuxu!

Za vas smo sastavili sljedeću listu od 15 curl komandi.

1. Pogledajte verziju curl

Opcije -V ili --version neće vratiti samo verziju, već i podržane protokole i funkcije u vašoj trenutnoj verziji.

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. Preuzmite datoteku

Ako želite da preuzmete fajl, možete koristiti curl sa opcijama -O ili -o. Prvi će sačuvati datoteku u trenutnom radnom direktoriju sa istim imenom kao na udaljenoj lokaciji, dok drugi omogućava da navedete drugačije ime datoteke i/ili lokaciju.

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. Nastavite prekinuto preuzimanje

Ako je preuzimanje prekinuto iz nekog razloga (na primjer, korištenjem Ctrl + c), možete ga vrlo lako nastaviti. Upotreba -C – (crtica C, razmaknica) govori curl-u da nastavi preuzimanje počevši tamo gdje je stalo.

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

4. Preuzmite više datoteka

Sa sljedećom komandom ćete preuzeti info.html i about.html sa http://yoursite.com i http:/ /mysite.com, u jednom potezu.

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

5. Preuzmite URL-ove iz datoteke

Ako kombinujete curl sa xargs, možete preuzeti datoteke sa liste URL-ova u datoteci.

xargs -n 1 curl -O < listurls.txt

6. Koristite proxy sa ili bez autentikacije

Ako se nalazite iza proxy servera koji sluša port 8080 na proxy.yourdomain.com, učinite to.

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

gdje možete preskočiti -U korisnik:lozinka ako vaš proxy ne zahtijeva autentifikaciju.

7. HTTP zaglavlja upita

HTTP zaglavlja omogućavaju udaljenom web serveru da pošalje dodatne informacije o sebi zajedno sa stvarnim zahtjevom. Ovo klijentu pruža detalje o tome kako se obrađuje zahtjev.

Da biste postavili upit za HTTP zaglavlja s web stranice, učinite:

curl -I linux-console.net

Ove informacije su također dostupne u alatima za programere vašeg pretraživača.

8. Napravite POST zahtjev sa parametrima

Sljedeća komanda će poslati parametre firstName i prezime, zajedno sa njihovim odgovarajućim vrijednostima, na https://yourdomain.com/info.php .

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

Možete koristiti ovaj savjet da simulirate ponašanje običnog HTML obrasca.

9. Preuzmite datoteke sa FTP servera sa ili bez autentikacije

Ako udaljeni FTP server očekuje veze na ftp://vašftpserver, sljedeća komanda će preuzeti yourfile.tar.gz u trenutnom radnom direktoriju.

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

gdje možete preskočiti -u korisničko ime:lozinka ako FTP server dozvoljava anonimne prijave.

10. Otpremite datoteke na FTP server sa ili bez autentikacije

Da otpremite lokalni fajl pod nazivom mylocalfile.tar.gz na ftp://yourftpserver koristeći curl, uradite:

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

11. Navedite korisničkog agenta

Korisnički agent je dio informacija koje se šalju zajedno sa HTTP zahtjevom. Ovo označava koji pretraživač je klijent koristio za podnošenje zahtjeva. Pogledajmo šta naša trenutna curl verzija koristi kao zadanu vrijednost i promijenimo to kasnije u “Ja sam novi web preglednik”:

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

12. Pohranite kolačiće web stranice

Želite li vidjeti koji se kolačići preuzimaju na vaš računar kada pretražujete https://www.cnn.com? Koristite sljedeću naredbu da ih sačuvate u cnncookies.txt. Zatim možete koristiti cat komandu za pregled datoteke.

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

13. Pošaljite kolačiće web stranice

Kolačiće preuzete u posljednjem savjetu možete koristiti u narednim zahtjevima na istu stranicu.

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

14. Izmijenite rezoluciju imena

Ako ste web programer i želite testirati lokalnu verziju yourdomain.com prije nego što je objavite uživo, možete napraviti curl resolve http://www.yourdomain.com > vašem lokalnom hostu ovako:

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

Prema tome, upit na http://www.yourdomain.com će reći curl-u da zatraži stranicu od lokalnog hosta umjesto da koristi DNS ili datoteku /etc/hosts.

15. Ograničite brzinu preuzimanja

Kako biste spriječili curl da vam prepune propusni opseg, možete ograničiti brzinu preuzimanja na 100 KB/s na sljedeći način.

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

U ovom članku podijelili smo kratku povijest nastanka curl-a i objasnili kako ga koristiti kroz 15 praktičnih primjera.

Znate li za još neke komande curl koje smo možda propustili u ovom članku? Slobodno ih podijelite sa našom zajednicom u komentarima! Takođe, ako imate pitanja, slobodno nam se javite. Radujemo se Vašem odgovoru!