Linux curl naredba koristi se za preuzimanje ili učitavanje podataka na poslužitelj putem podržanih protokola kao što su HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP, itd. To je udaljeni uslužni program, tako da radi bez interakcije korisnika.
Prijenos podataka s jednog mjesta na drugo jedan je od vitalnih i najčešće korištenih zadataka računalnog sustava. Međutim, postoje mnogi GUI alati dostupni za prijenos podataka. Ali, kada radite na naredbenom retku, to postaje malo komplicirano. Uslužni program curl omogućuje nam prijenos podataka putem naredbenog retka.
Curl je alat naredbenog retka za dobivanje i slanje podataka kao što su datoteke s URL sintaksom. Podržava sve protokole koje podržava libcurl jer koristi libcurl. Curl pruža podršku za HTTPS i implementira provjeru SSL certifikata kada se prema zadanim postavkama spominje sigurni protokol, poput HTTPS-a. Curl će donijeti certifikat udaljenog poslužitelja i provjeriti CA certifikat kako bi spasio valjanost udaljenog poslužitelja od jamstva da je udaljeni poslužitelj onaj koji zahtijeva da bude kada se curl povezuje s udaljenim poslužiteljem putem HTTPS-a.
Postoji mnogo opcija za definiranje CA certifikata, npr --capath i --cacert . Opcija, tj. --cacert, može se koristiti za određivanje lokacije datoteke CA pohrane certifikata. Ako datoteka CA certifikata nije dostupna na Windows platformi, curl će potražiti 'curl-ca-bundle.crt' naziv datoteke CA certifikata prema donjem nizu:
- Direktorij u kojem se nalazi curl program.
- Trenutni radni imenik.
- Sistemski imenik (Windows).
- Imenik (Windows).
- Direktoriji se spominju u varijablama okruženja %PATH%.
Curl će dati poruku o pogrešci kada udaljeni poslužitelj koristi samopotpisani certifikat ili kada certifikat udaljenog poslužitelja nije potpisan putem CA navedenog u datoteci CA certifikata. --insecure ili -k opcija se može koristiti za preskakanje provjere certifikata. Udaljeni CA certifikat može se alternativno uključiti u datoteku pohrane CA certifikata ako je udaljeni poslužitelj valjan.
Curl pruža hrpu korisnih trikova kao što su nastavak prijenosa datoteka, kolačići, SSL veze, HTTP objava, FTP učitavanje, provjera autentičnosti korisnika, proxy podrška i više. Curl je mehanizirao libcurl za svaki aspekt vezan uz prijenos.
Što je libcurl?
libcurl je besplatna biblioteka za prijenos URL-ova na strani klijenta. Podržava SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP proxy tuneliranje, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT i kolačiće. Knjižnica također podržava autentifikaciju korisnika i lozinke, proxyje, LDAPS, HTTPS certifikate, učitavanje temeljeno na HTTP obrascu, učitavanje na FTP, nastavak prijenosa datoteka, TFTP, Telnet, SFTP i URL shemu datoteka.
libcurl je kompaktan. Identično stvara i radi na nekoliko platformi, uključujući Microsoft Windows, UnixWare, Ultrix, Tru64, Symbian, Solaris, RISC OS, QNX Neutrino, OS/2, OpenBSD, NetWare, NetBSD, macOS, Linux, IRIX, iOS, HURD, HP -UX, FreeBSD, DOS, Darwin, OpenVMS, BlackBerry 10, BlackBerry Tablet OS, BeOS, Android, AmigaOS i AIX.
Biblioteka libcurl kompatibilna je s IPv6, sigurna je za niti i besplatna je. Vezovi su također dostupni za više od 50 jezika, uključujući Python, PHP, Java i C/C++.
Biblioteka libcurl podržava SChannel, gskit na IBM i, NSS, mbed TLS, GnuTLS na Windowsima, Secure Trasport na iOS-u i macOS-u, TLS/SSL kroz OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl i Boringssl.
Sintaksa:
Osnovna sintaksa za korištenje curla je sljedeća:
curl [options] [URL...]
Iz gornje sintakse,
URL:
Sintaksa URL-a je opći URL ovisan o protokolu. Možemo navesti više URL-ova na sljedeći način:
http://site.{one,two,three}.com
Mogućnosti:
Naredba curl podržava sljedeće opcije naredbenog retka:
--apstraktna-unix-utičnica: Koristi se za povezivanje putem apstraktnog soketa Unix domene umjesto mreže.
--auth: Koristi se za naredbu curl za autentifikaciju same metode za korištenje najsigurnije metode. Ovaj uslužni program je izborni uslužni program '--basic, --digest, --ntlm i negotiate,' koji se koristi za postavljanje specifične metode provjere autentičnosti.
-a, --dodaj: Koristi se za učitavanje datoteka. Dodaje datoteku umjesto da je prepisuje. Ako navedena datoteka ne postoji na poslužitelju, kreirat će je.
mergesort java
--Osnovni, temeljni: Određuje korištenje HTTP osnovne provjere autentičnosti. To je zadana opcija naredbe curl. Korisno je za nadjačavanje prethodnih postavki.
--cacert: Navedeno je za korištenje određene datoteke certifikata za provjeru ravnopravnog računala. Datoteke mogu imati nekoliko CA certifikata. Standardni format za certifikate je PEM, tako da svi certifikati moraju biti u njemu.
--capath: Specificirano je za korištenje određenog direktorija za provjeru ravnopravnog računala. Možemo navesti više staza odvajajući ih dvotočkom (:), kao što je 'put: put2:put3'. Standardni format za certifikate je PEM, tako da svi certifikati moraju biti u njemu.
--cert-status: Koristi se za provjeru statusa certifikata poslužitelja. Koristi Certificate Status Request ili OCSP stapling TLS.
--cert-type: Određuje dostavljenu vrstu curl certifikata. Ovi certifikati mogu biti u PEM, DER i ENG formatu. Zadana vrijednost je PEM. Ako je navedeno više puta, zavoj će uzeti posljednju vrijednost.
-E, --cert : Navedeno je za korištenje datoteke certifikata klijenta prilikom dobivanja datoteke putem bilo kojeg protokola temeljenog na SSL-u kao što su HTTPS, FTPS itd.
--šifre: Koristi se za odabir šifri koje će se koristiti u vezi.
--komprimirani-ssh: Koristi se za omogućavanje ugrađene SSH kompresije. Ova će opcija prihvatiti kao zahtjev poslužitelja, tako da je poslužitelj može, ali i ne mora prihvatiti.
--komprimirano: Koristi se za traženje komprimiranog odgovora pomoću curl algoritama i sprema nekomprimirani dokument. Ova opcija će poslati izvješće za nepodržano kodiranje curl.
-K, --config: Koristi se za opisivanje tekstualne datoteke za čitanje curl argumenata. Curl će koristiti argumente naredbenog retka iz tekstualne datoteke.
--connect-timeout: Koristi se za određivanje maksimalnog vremena u sekundama za vremensko ograničenje veze kovrče.
--connect-to: Koristi se za kreiranje zahtjeva prema zadanom paru hosta i porta; inače će se spojiti na sljedeći par. Ova je opcija praktičan alat za izravne zahtjeve na određenom poslužitelju.
-C, --nastavi-na: Koristi se za nastavak ili nastavak prethodnog prijenosa datoteke na danom pomaku.
-c, --cookie-jar : Koristi se za određivanje određene datoteke u koju želimo zapisati sve kolačiće nakon uspješne operacije.
-b, --kolačić: Koristi se za prosljeđivanje podataka na HTTP poslužitelj u zaglavlju kolačića.
--create-dirs: Koristi se za spoj s '-o? opciju, stvorit će potrebnu hijerarhiju lokalnog imenika.
--crlf (FTP SMTP): Koristi se za pretvaranje LF u CRLF u prijenosu. To je praktičan alat za MVS (OS/390).
--crlfile: Koristi se za određivanje (u PEM formatu) popisa opozvanih certifikata.
--data-ascii: To je alias za ?-d? opcija.
-- izaslanstvo: Koristi se za postavljanje RAZINE kako bi potvrdio poslužitelju što mu je dopušteno delegirati kada su u pitanju korisničke vjerodajnice.
--probaviti: Koristi se za omogućavanje HTTP Digest provjere autentičnosti.
-q, --onemogući: Ako se koristi kao prvi argument, zanemarit će curlrc konfiguracijsku datoteku.
--dns-sučelje: Koristi se za potvrdu poslužitelja za slanje odlaznih DNS zahtjeva.
--dns-poslužitelji: Koristi se za određivanje DNS poslužitelja umjesto zadanih poslužitelja.
-f, --neuspjeh: Koristi se kako bi curl tiho otpao zbog pogrešaka poslužitelja.
-F, --forma: Koristi se za oponašanje ispunjenog obrasca koji je poslao korisnik.
-P, --ftp-port: Koristi se za preokret zadanih uloga slušatelja pri povezivanju s FTP-om.
--ftp-ssl-ccc-mode: Koristi se za postavljanje CCC načina rada.
-G, --dobi: Koristi se za specificiranje podataka s ?-d? opcija koja se koristi u HTTP GET zahtjevu umjesto POST zahtjeva.
-h, --pomoć: Koristi se za prikaz priručnika za pomoć s kratkim opisom mogućnosti korištenja i podrške.
-0, --http1.0: Određen je za korištenje HTTP verzije 1.0.
--ignore-content-length: Koristi se za ignoriranje zaglavlja Content-Length.
-i, --uključuje: Koristi se za uključivanje zaglavlja HTTP odgovora.
-4, --ipv4: Koristi se za razlučivanje imena u IPv4 adrese.
-6, --ipv6: Koristi se za razlučivanje imena u IPv6 adrese.
Protokoli curl
Curl podržava nekoliko protokola:
Instalacija naredbe curl
Naredba curl dolazi s većinom Linux distribucije. Ali, ako sustav ne nosi uvojak prema zadanim postavkama. Morate ga instalirati ručno. Da biste instalirali curl, izvršite sljedeće naredbe:
Ažurirajte sustav izvršavanjem sljedećih naredbi:
sudo apt update sudo apt upgrade
Sada instalirajte uslužni program curl izvršavanjem donje naredbe:
sudo apt install curl
Provjerite instalaciju izvršavanjem donje naredbe:
curl -version
Gornja naredba prikazat će instaliranu verziju naredbe curl.
Dohvati sadržaj navedenog URL-a
Da biste dohvatili sadržaj bilo kojeg određenog URL-a, izvršite naredbu curl, nakon koje slijedi URL. Razmotrite naredbu u nastavku:
curl https://www.javatpoint.com/linux-tutorial
Gornja naredba dohvatit će podatke navedene stranice. Razmotrite donji snimak izlaza:
Iz gornjeg izlaza možemo vidjeti da se dohvaćaju podaci stranice danog URL-a. Za zaustavljanje izvršenja pritisnite tipke CTRL+C.
Spremite podatke u određenu datoteku
Da biste spremili podatke u određenu datoteku, dodajte opciju '-o' nakon koje slijedi direktorij, naziv datoteke i URL na sljedeći način:
curl -o /
Razmotrite naredbu u nastavku:
curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial
Gornja naredba spremit će podatke stranice u datoteku 'linux.html' u direktoriju ' /home/javatpoint/Documents/'. Razmotrite donji izlaz:
Iz gornje naredbe možemo vidjeti ukupnu količinu preuzetih podataka, primljenih podataka, prosječno vrijeme i neke druge statistike o podacima.
Da biste provjerili preuzete podatke, otvorite datoteku izvršavanjem naredbe cat
cd Documents cat linux.html
Razmotrite donji snimak izlaza:
Preuzmite datoteku s weba
Jedna od zanimljivih i fascinantnih upotreba curla je da možemo preuzeti datoteku s weba. Za preuzimanje datoteke s weba kopirajte vezu za preuzimanje i zalijepite je pomoću naredbe curl. Možemo proslijediti i druge argumente kako bismo ga učinili konkretnijim. Na primjer, preuzmite najnoviju verziju ubuntua, kopirajte poveznica za skidanje ubuntua s njegove službene web stranice i zalijepite ga naredbom curl na sljedeći način:
curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64
Gornja naredba će preuzeti Ubuntu 20.04 u navedeni direktorij. Osigurajte odgovarajuću ekstenziju datoteke; inače će preuzeti datoteku u drugom formatu. Razmotrite donji izlaz:
Iz gornjeg izlaza preuzima se datoteka ubuntu.iso. Možemo vidjeti vrijeme preuzimanja, veličinu datoteke, brzinu preuzimanja i druge statistike. Da biste zaustavili izvođenje, bilo kada pritisnite tipke CTRL+D.
Nastavite prekinuta preuzimanja
Postoji mogućnost da se preuzimanja iz nekog razloga prekinu. Možemo nastaviti preuzimanja pomoću naredbe curl. Za nastavak prekinute datoteke, proslijedite opciju '-C' s curl naredbom kako slijedi:
curl -C
Gornja naredba nastavit će preuzimanje navedenog URL-a.
Preuzmite više datoteka
Za preuzimanje više datoteka navedite više URL-ova odvojenih razmakom na sljedeći način:
curl -O
Gornja naredba će preuzeti podatke s oba URL-a.
HTTP zaglavlja upita
HTTP zaglavlja sadrže dodatne informacije; omogućuje web poslužitelju preuzimanje ovih informacija. Za upit HTTP zaglavlja s web-mjesta, izvršite naredbu s opcijom '-I' na sljedeći način:
curl -I www.javatpoint.com
Gornja naredba će proizvesti donji izlaz: