logo

Ukaz Curl v Linuxu s primeri

Ukaz Linux curl se uporablja za prenos ali nalaganje podatkov na strežnik prek podprtih protokolov, kot so HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP itd. Je oddaljeni pripomoček, zato deluje brez interakcije uporabnika.

Prenos podatkov iz enega kraja v drugega je ena izmed vitalnih in najbolj uporabljanih nalog računalniškega sistema. Vendar pa je za prenos podatkov na voljo veliko orodij GUI. Toda pri delu v ukazni vrstici postane nekoliko zapleteno. Pripomoček curl nam omogoča prenos podatkov prek ukazne vrstice.

Curl je orodje ukazne vrstice za pridobivanje in pošiljanje podatkov, kot so datoteke s sintakso URL. Podpira vse protokole, ki jih podpira libcurl, ker uporablja libcurl. Curl zagotavlja svojo podporo za HTTPS in izvaja preverjanje potrdila SSL, ko je privzeto omenjen varen protokol, kot je HTTPS. Curl bo prinesel potrdilo oddaljenega strežnika in preveril potrdilo CA, da shrani veljavnost oddaljenega strežnika pred zagotavljanjem, da je oddaljeni strežnik tisti, za katerega zahteva, da se curl poveže z oddaljenim strežnikom prek HTTPS.

Obstaja veliko možnosti za definiranje potrdila CA, npr --capath in --cacert . Možnost, tj. --cacert, lahko uporabite za določanje lokacije datoteke prostora za potrdila CA. Če datoteka potrdila CA ni na voljo na platformi Windows, bo curl poiskal ime datoteke potrdila CA 'curl-ca-bundle.crt' v spodnjem zaporedju:

  • Imenik, v katerem je prisoten program curl.
  • Trenutni delovni imenik.
  • Sistemski imenik (Windows).
  • Imenik (Windows).
  • Imeniki so omenjeni v spremenljivkah okolja %PATH%.

Curl bo prikazal sporočilo o napaki, ko oddaljeni strežnik uporablja samopodpisano potrdilo ali če potrdilo oddaljenega strežnika ni podpisano prek CA, omenjenega v datoteki CA cert. Za preskok preverjanja potrdila je mogoče uporabiti možnost --insecure ali -k. Oddaljeno potrdilo CA je lahko alternativno vključeno v datoteko prostora za potrdila CA, če je oddaljeni strežnik veljaven.

Curl ponuja vrsto uporabnih trikov, kot so nadaljevanje prenosa datotek, piškotki, povezave SSL, objava HTTP, nalaganje FTP, preverjanje pristnosti uporabnika, podpora za proxy in drugo. Curl je mehaniziran z libcurl za vse vidike, povezane s prenosom.

Kaj je libcurl?

libcurl je brezplačna knjižnica za prenos URL-jev na strani odjemalca. Podpira SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP proxy tunneling, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT in piškotke. Knjižnica podpira tudi preverjanje pristnosti uporabnika in gesla, posrednike, LDAPS, potrdila HTTPS, nalaganje na podlagi obrazca HTTP, nalaganje FTP, nadaljevanje prenosa datotek, TFTP, Telnet, SFTP in shemo URL datoteke.

libcurl je kompakten. Identično ustvarja in deluje na več platformah, vključno z 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 in AIX.

Knjižnica libcurl je združljiva z IPv6, nitno varna in brezplačna. Na voljo so tudi povezave za več kot 50 jezikov, vključno s Pythonom, PHP, Javo in C/C++.
Knjižnica libcurl podpira SChannel, gskit na IBM i, NSS, mbed TLS, GnuTLS na Windows, Secure Trasport na iOS in macOS, TLS/SSL prek OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl in Boringssl.

Sintaksa:

Osnovna sintaksa za uporabo curl je naslednja:

 curl [options] [URL...] 

Iz zgornje sintakse

URL:

Sintaksa URL-ja je splošni URL, odvisen od protokola. Določimo lahko več URL-jev na naslednji način:

 http://site.{one,two,three}.com 

Opcije:

Ukaz curl podpira naslednje možnosti ukazne vrstice:

--abstract-unix-socket: Uporablja se za povezovanje prek abstraktne domenske vtičnice Unix namesto omrežja.

--anyauth: Uporablja se za ukaz curl za samostojno preverjanje pristnosti metode za uporabo najbolj varne metode. Ta pripomoček je izbirni pripomoček '--basic, --digest, --ntlm in negotiate', ki se uporablja za nastavitev posebne metode preverjanja pristnosti.

-a, --priloži: Uporablja se za nalaganje datotek. Datoteko doda, namesto da bi jo prepisal. Če dana datoteka ne obstaja na strežniku, jo bo ustvaril.

java lambda

--osnovno: Določa uporabo osnovne avtentikacije HTTP. Je privzeta možnost ukaza curl. Uporabno je za preglasitev prejšnjih nastavitev.

--cacert: Podano je za uporabo določene datoteke potrdila za preverjanje vrstnika. Datoteke imajo lahko več potrdil CA. Standardni format za potrdila je PEM, zato morajo biti vsa potrdila v njem.

--capath: Podano je za uporabo določenega imenika za preverjanje vrstnika. Določimo lahko več poti, tako da jih ločimo z dvopičjem (:), na primer 'pot: pot2:pot3'. Standardni format za potrdila je PEM, zato morajo biti vsa potrdila v njem.

--cert-status: Uporablja se za preverjanje statusa potrdila strežnika. Uporablja zahtevo za status potrdila ali TLS za spenjanje OCSP.

--cert-type: Določa ponujeno vrsto potrdila curl. Ta potrdila so lahko v formatu PEM, DER in ENG. Privzeta vrednost je PEM. Če je podana večkrat, bo curl prevzel zadnjo vrednost.

-E, --cert: Določeno je za uporabo datoteke potrdila odjemalca pri pridobivanju datoteke prek katerega koli protokola, ki temelji na SSL, kot je HTTPS, FTPS itd.

--šifre: Uporablja se za izbiro šifer za uporabo v povezavi.

--stisnjen-ssh: Uporablja se za omogočanje vgrajenega stiskanja SSH. Ta možnost bo strežnik sprejela kot zahtevo, zato jo strežnik lahko sprejme ali ne.

--stisnjeno: Uporablja se za zahtevo po stisnjenem odgovoru z uporabo algoritmov curl in shrani nestisnjen dokument. Ta možnost bo poslala poročilo za nepodprto kodiranje curl.

-K, --config: Uporablja se za opis besedilne datoteke za branje argumentov curl. Curl bo uporabil argumente ukazne vrstice iz besedilne datoteke.

--connect-timeout: Uporablja se za določitev najdaljšega časa v sekundah za prekinitev povezave curl.

--Poveži z : Uporablja se za ustvarjanje zahteve do podanega para gostitelja in vrat; sicer se bo povezal z naslednjim parom. Ta možnost je priročno orodje za pošiljanje neposrednih zahtev na določenem strežniku.

-C, --nadaljuj-pri: Uporablja se za nadaljevanje ali nadaljevanje prejšnjega prenosa datoteke pri danem odmiku.

-c, --cookie-jar : Uporablja se za določitev določene datoteke, v katero želimo zapisati vse piškotke po uspešni operaciji.

-b, --piškotek : Uporablja se za posredovanje podatkov strežniku HTTP v glavi piškotka.

--create-dirs: Uporablja se v povezavi z '-o? bo ustvaril zahtevano hierarhijo lokalnega imenika.

--crlf (FTP SMTP): Uporablja se za pretvorbo LF v CRLF pri nalaganju. Je priročno orodje za MVS (OS/390).

--crlfile: Uporablja se za določitev (v formatu PEM) s seznamom preklicanih potrdil.

--data-ascii: Je vzdevek za ?-d? možnost.

--delegacija : Uporablja se za nastavitev LEVEL za potrditev strežnika, kaj sme delegirati, ko gre za uporabniške poverilnice.

--prebaviti: Uporablja se za omogočanje preverjanja pristnosti HTTP Digest.

-q, --onemogoči: Če je uporabljen kot prvi argument, bo prezrl konfiguracijsko datoteko curlrc.

--dns-vmesnik: Uporablja se za potrditev strežnika za pošiljanje odhodnih zahtev DNS.

--dns-strežniki: Uporablja se za določanje strežnikov DNS namesto privzetih strežnikov.

-f, --neuspešno: Uporablja se, da curl tiho odpove ob napakah strežnika.

-F, --forma: Uporablja se za posnemanje izpolnjenega obrazca, ki ga pošlje uporabnik.

-P, --ftp-vrata: Uporablja se za zamenjavo privzetih vlog poslušalca pri povezovanju s FTP.

--ftp-ssl-ccc-način: Uporablja se za nastavitev načina CCC.

-G, --dobi: Uporablja se za podajanje podatkov z ?-d? možnost za uporabo v zahtevi HTTP GET namesto zahteve POST.

-h, --pomoč: Uporablja se za prikaz priročnika za pomoč s kratkim opisom možnosti uporabe in podpore.

-0, --http1.0: Določen je za uporabo HTTP različice 1.0.

--ignore-content-length: Uporablja se za ignoriranje glave Content-Length.

-i, --vključuje: Uporablja se za vključitev glav odgovorov HTTP.

-4, --ipv4: Uporablja se za razrešitev imen v naslove IPv4.

-6, --ipv6: Uporablja se za razrešitev imen v naslove Ipv6.

Protokoli curl

Curl podpira več protokolov:

    DICT:Omogoča nam iskanje besed samo s slovarji.FTP (S):Curl podpira protokol FTP z uporabo številnih vzvodov in popravkov. Z ali brez TLS.MAPA:Omogoča nam pisanje in branje lokalne datoteke. Curl ne dovoljuje oddaljenega dostopa do datoteke //URL, vendar bo deloval, ko je aktiven v sistemu Microsoft Windows z izvornim pristopom UNC.SVRAČ (S):Pridobi datoteke.HTTP (S):Curl podpira HTTP s številnimi različicami in možnostmi. Govori lahko različice HTTP 0.9, 1.0, 1.1, 2 in 3, odvisno od natančne ukazne vrstice in možnosti gradnje.IMAP (S):Curl nam prenese e-pošto s protokolom za branje pošte. Z ali brez TLS.LDAP (S):Curl lahko namesto nas implementira iskanje imenika z ali brez uporabe TLS.MQTT:Curl podpira 3 različico MQTT. Prenos na MQTT je enak kot 'naroči se' na katero koli temo, objavljanje/nalaganje pa je enako kot 'objavi' na katero koli temo. Prek TLS MQTT ni podprt.POP3 (S):Prenos prek strežnika pop3 predstavlja prejemanje pošte brez ali s TLS.RTMP (S):RTMP ali protokol za sporočanje v realnem času se uporablja predvsem za pretakanje predstavnosti v strežniku.RTSP:Curl podpira prenose 1.0 RTSP.SCP:Curl podpira različico SCP za prenos dveh scp.SFTP:Curl podpira SFTP prek 2 različice SSH.SMB (S):Curl podpira 1 različico SMB za prenos in nalaganje.SMTP (S):Nalaganje vsebine na kateri koli strežnik SMTP pomeni prenos e-pošte brez ali s TLS.TELNET:Obveščanje curl, da prinese telnet URL, začne interaktivno sejo, v kateri prenese, kar prebere prek stdin, in povzroči, kaj strežnik prenese.TFTP:Curl lahko izvaja nalaganje in prenose TFTP.

Namestitev ukaza curl

Ukaz curl prihaja z večino Linux distribucije. Ampak, če sistem privzeto ne nosi curl. Namestiti ga morate ročno. Če želite namestiti curl, izvedite naslednje ukaze:

Posodobite sistem z izvajanjem naslednjih ukazov:

 sudo apt update sudo apt upgrade 

Zdaj namestite pripomoček curl tako, da izvedete spodnji ukaz:

 sudo apt install curl 

Namestitev preverite tako, da izvedete spodnji ukaz:

 curl -version 

Zgornji ukaz bo prikazal nameščeno različico ukaza curl.

Pridobite vsebino podanega URL-ja

Če želite pridobiti vsebino katerega koli določenega URL-ja, izvedite ukaz curl, ki mu sledi URL. Razmislite o spodnjem ukazu:

 curl https://www.javatpoint.com/linux-tutorial 

Zgornji ukaz bo pridobil podatke o določeni strani. Razmislite o spodnjem posnetku izhoda:

Linux Curl ukaz

Iz zgornjega izhoda lahko vidimo, da se podatki strani danega URL-ja pridobivajo. Če želite ustaviti izvajanje, pritisnite tipki CTRL+C.

Shranite podatke v posebno datoteko

Če želite podatke shraniti v določeno datoteko, posredujte možnost '-o', ki ji sledi imenik, ime datoteke in URL, kot sledi:

 curl -o / 

Razmislite o spodnjem ukazu:

 curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial 

Zgornji ukaz bo shranil podatke strani v datoteko 'linux.html' v imenik ' /home/javatpoint/Documents/'. Razmislite o spodnjem rezultatu:

Linux Curl ukaz

Iz zgornjega ukaza lahko vidimo skupno količino prenesenih podatkov, prejete podatke, povprečni čas in nekatere druge statistične podatke o podatkih.

Če želite preveriti prenesene podatke, odprite datoteko z izvedbo ukaza cat

 cd Documents cat linux.html 

Razmislite o spodnjem posnetku izhoda:

Linux Curl ukaz

Prenesite datoteko s spleta

Ena od zanimivih in fascinantnih uporab curl je ta, da lahko prenesemo datoteko s spleta. Če želite prenesti datoteko iz spleta, kopirajte povezavo za prenos in jo prilepite z ukazom curl. Lahko posredujemo tudi druge argumente, da postanemo bolj specifični. Na primer, prenesite najnovejšo različico ubuntu, kopirajte povezava za prenos ubuntu z uradne spletne strani in ga prilepite z ukazom curl, kot sledi:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

Zgornji ukaz bo prenesel Ubuntu 20.04 v navedeni imenik. Navedite ustrezno pripono datoteke; sicer bo prenesel datoteko v drugačni obliki. Razmislite o spodnjem rezultatu:

Linux Curl ukaz

Iz zgornjega izhoda se prenaša datoteka ubuntu.iso. Vidimo lahko čas prenosa, velikost datoteke, hitrost prenosa in druge statistike. Če želite ustaviti izvajanje, kadar koli pritisnite tipki CTRL+D.

Nadaljujte s prekinjenimi prenosi

Morda obstaja možnost, da so prenosi zaradi nekega razloga prekinjeni. Prenose lahko nadaljujemo z ukazom curl. Če želite nadaljevati prekinjeno datoteko, posredujte možnost '-C' z ukazom curl, kot sledi:

 curl -C 

Zgornji ukaz bo nadaljeval prenos podanega URL-ja.

Prenesite več datotek

Če želite prenesti več datotek, podajte več URL-jev, ločenih s presledkom, kot sledi:

 curl -O 

Zgornji ukaz bo prenesel podatke z obeh URL-jev.

Glave HTTP poizvedbe

Glave HTTP vsebujejo dodatne informacije; spletnemu strežniku omogoča prenos teh informacij. Če želite poizvedovati po glavah HTTP s spletnega mesta, izvedite ukaz z možnostjo '-I', kot sledi:

 curl -I www.javatpoint.com 

Zgornji ukaz bo ustvaril spodnji rezultat:

Linux Curl ukaz