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!