logo

Naredba Curl u Linuxu s primjerima

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:

    DICT:Omogućuje nam traženje riječi samo pomoću rječnika.FTP (S):Curl podržava FTP protokol korištenjem mnogo opcija i podešavanja. Sa ili bez TLS-a.DATOTEKA:Omogućuje nam pisanje i čitanje lokalne datoteke. Curl ne dopušta daljinski pristup file://URL, ali će raditi kada je aktivan na Microsoft Windows s izvornim UNC pristupom.GOFR (S):Dohvaća datoteke.HTTP (S):Curl podržava HTTP koristeći brojne varijacije i opcije. Može govoriti 0.9, 1.0, 1.1, 2 i 3 HTTP verzije, ovisno o točnom naredbenom retku i opcijama izrade.IMAP (S):Curl preuzima e-poštu za nas s protokolom za čitanje pošte. Sa ili bez TLS-a.LDAP (S):Curl nam može implementirati traženje imenika sa ili bez upotrebe TLS-a.MQTT:Curl podržava 3 verziju MQTT-a. Preuzimanje na MQTT je isto što i 'pretplatiti se' na bilo koju temu, a postavljanje/učitavanje je isto što i 'objaviti' na bilo koju temu. Preko TLS-a, MQTT nije podržan.POP3 (S):Preuzimanje preko pop3 servera predstavlja primanje pošte bez ili sa TLS-om.RTMP (S):RTMP ili Realtime Messaging Protocol uglavnom se koristi za streaming medija s poslužitelja.RTSP:Curl podržava 1.0 preuzimanja RTSP-a.SCP:Curl podržava verziju SCP-a s dva scp prijenosa.SFTP:Curl podržava SFTP preko verzije 2 SSH.SMB (S):Curl podržava verziju 1 SMB za preuzimanje i prijenos.SMTP (S):Prijenos sadržaja na bilo koji SMTP poslužitelj znači prijenos e-pošte bez ili s TLS-om.TELNET:Informiranje curla da donese telnet URL započinje interaktivnu sesiju u kojoj prenosi ono što čita preko stdin-a i rezultira onim što poslužitelj prenosi.TFTP:Curl može implementirati TFTP upload i download.

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:

Linux Curl naredba

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:

Linux Curl naredba

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:

Linux Curl naredba

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:

Linux Curl naredba

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:

Linux Curl naredba