logo

„Curl“ komanda „Linux“ su pavyzdžiais

Linux curl komanda naudojama duomenims atsisiųsti arba įkelti į serverį naudojant palaikomus protokolus, tokius kaip HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP ir kt. Tai nuotolinė programa, todėl veikia be vartotojo sąveikos.

Duomenų perkėlimas iš vienos vietos į kitą yra viena iš svarbiausių ir dažniausiai naudojamų kompiuterinės sistemos užduočių. Tačiau yra daug GUI įrankių, skirtų duomenims perduoti. Tačiau dirbant su komandine eilute tai tampa šiek tiek sudėtinga. „Curl“ programa leidžia perkelti duomenis per komandinę eilutę.

Curl yra komandinės eilutės įrankis, skirtas gauti ir siųsti duomenis, pvz., failus su URL sintakse. Jis palaiko visus protokolus, kuriuos palaiko libcurl, nes naudoja libcurl. „Curl“ palaiko HTTPS ir įgyvendina SSL sertifikato patikrinimą, kai pagal numatytuosius nustatymus minimas saugus protokolas, pvz., HTTPS. „Curl“ pateiks nuotolinio serverio sertifikatą ir patikrins CA sertifikatą, kad išsaugotų nuotolinio serverio galiojimą ir užtikrintų, kad nuotolinis serveris būtų toks, kokio jis prašo, kai „curl“ susieja su nuotoliniu serveriu HTTPS.

Yra daug variantų, kaip apibrėžti CA sertifikatą, pvz -- kapatas ir --cacertas . Parinktis, ty --cacert, gali būti naudojama norint nurodyti CA sertifikatų saugyklos failo vietą. Jei CA sertifikato failo „Windows“ platformoje nėra, „curl“ ieškos CA sertifikato failo pavadinimo „curl-ca-bundle.crt“ tokia seka:

  • Katalogas, kuriame yra garbanojimo programa.
  • Dabartinis darbo katalogas.
  • Sistemos katalogas („Windows“).
  • Katalogas („Windows“).
  • Katalogai minimi %PATH% aplinkos kintamuosiuose.

Curl pateiks klaidos pranešimą, kai nuotolinis serveris naudoja savarankiškai pasirašytą sertifikatą arba kai nuotolinio serverio sertifikatas nepasirašytas per CA, nurodytą CA sertifikato faile. Parinktis --insecure arba -k gali būti naudojama norint praleisti sertifikato patikrinimą. Jei nuotolinis serveris galioja, nuotolinis CA sertifikatas gali būti įtrauktas į CA sertifikatų saugyklos failą.

„Curl“ siūlo daugybę naudingų gudrybių, tokių kaip failų persiuntimo atnaujinimas, slapukai, SSL ryšiai, HTTP įrašas, FTP įkėlimas, vartotojo autentifikavimas, tarpinio serverio palaikymas ir kt. Curl yra mechanizuotas libcurl kiekvienam su perkėlimu susijusiam aspektui.

Kas yra libcurl?

libcurl yra nemokama kliento URL perkėlimo biblioteka. Jis palaiko SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, HTTP tarpinio serverio tuneliavimą, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT ir slapukus. Biblioteka taip pat palaiko vartotojo ir slaptažodžio autentifikavimą, tarpinius serverius, LDAPS, HTTPS sertifikatus, HTTP formų įkėlimą, FTP įkėlimą, failų perdavimo atnaujinimą, TFTP, Telnet, SFTP ir failo URL schemą.

libcurl yra kompaktiškas. Ji identiškai kuria ir veikia keliose platformose, įskaitant 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 ir AIX.

Libcurl biblioteka yra suderinama su IPv6, yra saugi ir nemokama. Surišimai taip pat galimi daugiau nei 50 kalbų, įskaitant Python, PHP, Java ir C/C++.
Libcurl biblioteka palaiko SChannel, gskit IBM i, NSS, mbed TLS, GnuTLS sistemoje Windows, Secure Trasport iOS ir macOS, TLS/SSL per OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl ir Boringssl.

Sintaksė:

Pagrindinė curl naudojimo sintaksė yra tokia:

 curl [options] [URL...] 

Iš aukščiau pateiktos sintaksės

URL:

URL sintaksė yra bendras nuo protokolo priklausomas URL. Galime nurodyti kelis URL adresus taip:

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

Galimybės:

Curl komanda palaiko šias komandų eilutės parinktis:

--abstract-unix-socket: Jis naudojamas prisijungti per abstrakčią Unix domeno lizdą, o ne tinklą.

--anyauth: Jis naudojamas komandoms curl autentifikuoti patį metodą, kad būtų naudojamas saugiausias metodas. Ši programa yra pasirenkama priemonė „--basic, --digest, --ntlm, and negotiate“, kuri naudojama konkrečiam autentifikavimo metodui nustatyti.

-a, --pridėti: Jis naudojamas failams įkelti. Jis prideda failą, o ne perrašo jį. Jei nurodyto failo serveryje nėra, jis jį sukurs.

lambda funkcija java

--pagrindinis: Jis nurodo pagrindinio HTTP autentifikavimo naudojimą. Tai yra numatytoji curl komandos parinktis. Tai naudinga norint nepaisyti ankstesnių nustatymų.

--cacert: Jis nurodytas naudoti konkretų sertifikato failą lygiaverčiui patikrinti. Failai gali turėti kelis CA sertifikatus. Standartinis sertifikatų formatas yra PEM, todėl visi sertifikatai turi būti jame.

--capath: Jis nurodytas naudoti konkretų katalogą lygiaverčiui patikrinti. Galime nurodyti kelis kelius, atskirdami juos dvitaškiu (:), pvz., „kelias: kelias2: kelias3“. Standartinis sertifikatų formatas yra PEM, todėl visi sertifikatai turi būti jame.

--cert-status: Jis naudojamas serverio sertifikato būsenai patikrinti. Jis naudoja sertifikato būsenos užklausą arba OCSP susegimo TLS.

--sertifikavimo tipas: Jis nurodo pateiktą garbanos sertifikato tipą. Šie sertifikatai gali būti PEM, DER ir ENG formatu. Numatytoji reikšmė yra PEM. Jei ji nurodyta kelis kartus, garbanė paims paskutinę reikšmę.

-E, --cert: Jis nurodytas naudoti kliento sertifikato failą, kai gaunamas failas naudojant bet kurį SSL pagrįstą protokolą, pvz., HTTPS, FTPS ir kt.

--šifrai: Jis naudojamas norint pasirinkti šifrus, kurie bus naudojami ryšiui.

--compressed-ssh: Jis naudojamas įjungti įmontuotą SSH glaudinimą. Ši parinktis bus priimta kaip serverio užklausa, todėl serveris gali ją priimti arba nepriimti.

--suspaustas: Jis naudojamas suglaudinto atsakymo užklausai naudojant garbanojimo algoritmus ir išsaugo nesuspaustą dokumentą. Ši parinktis išsiųs ataskaitą apie nepalaikomą kodavimo susisukimą.

-K, --config: Jis naudojamas tekstiniam failui apibūdinti garbanojimo argumentams skaityti. Curl naudos komandinės eilutės argumentus iš tekstinio failo.

--Prisijungimo laikas: Jis naudojamas norint nurodyti maksimalų susisukimo jungties laiką sekundėmis.

--Prisijungti prie : Jis naudojamas kuriant užklausą nurodytai pagrindinio kompiuterio ir prievado porai; kitu atveju jis prisijungs prie kitos poros. Ši parinktis yra patogus įrankis norint pateikti tiesiogines užklausas konkrečiame serveryje.

-C, --tęsti-prie : Jis naudojamas tęsti arba atnaujinti ankstesnį failo perdavimą nurodytu poslinkiu.

-c, --cookie-jar: Jis naudojamas nurodyti tam tikrą failą, į kurį norime įrašyti visus slapukus po sėkmingos operacijos.

-b, --slapukas: Jis naudojamas duomenims persiųsti į HTTP serverį slapukų antraštėje.

--kurti-dirs: Jis naudojamas kartu su „-o? parinktį, ji sukurs reikiamą vietinio katalogo hierarchiją.

--crlf (FTP SMTP): Jis naudojamas konvertuoti LF į CRLF įkeliant. Tai patogus įrankis MVS (OS/390).

--crlfile: Jis naudojamas nurodyti (PEM formatu) su sertifikato panaikinimo sąrašu.

--data-ascii: Tai slapyvardis ?-d? variantas.

--delegacija : Jis naudojamas nustatyti LEVEL, kad patvirtintų serverio tai, ką jam leidžiama deleguoti, kai kalbama apie vartotojo kredencialus.

--virškinti: Jis naudojamas HTTP santraukos autentifikavimui įjungti.

-q, --išjungti: Jei naudojamas kaip pirmasis argumentas, jis nepaisys curlrc konfigūracijos failo.

--dns sąsaja: Jis naudojamas patvirtinti, kad serveris išsiųstų siunčiamas DNS užklausas.

--dns serveriai: Jis naudojamas DNS serveriams nurodyti vietoj numatytųjų serverių.

-f, -nepavyko: Jis naudojamas, kad garbanos tyliai sugestų dėl serverio klaidų.

-F, --forma: Jis naudojamas imituoti vartotojo pateiktą užpildytą formą.

-P, --ftp-port: Jis naudojamas norint pakeisti numatytuosius klausytojo vaidmenis prisijungiant prie FTP.

--ftp-ssl-ccc-mode: Jis naudojamas CCC režimui nustatyti.

-G, --gaukite: Jis naudojamas duomenims nurodyti su ?-d? parinktis, kurią reikia naudoti HTTP GET užklausoje, o ne POST užklausoje.

-h, -help: Jis naudojamas parodyti žinyno vadovą, kuriame trumpai aprašomos naudojimo ir palaikymo galimybės.

-0, --http1.0: Jis skirtas naudoti HTTP 1.0 versiją.

-- Ignoruoti-turinys-ilgis: Jis naudojamas ignoruoti antraštę „Content-Length“.

-i, - apima: Jis naudojamas HTTP atsakymų antraštėms įtraukti.

-4, --ipv4: Jis naudojamas pavadinimams pakeisti į IPv4 adresus.

-6, --ipv6: Jis naudojamas pavadinimams pakeisti į IPv6 adresus.

Garbanos protokolai

Curl palaiko kelis protokolus:

    DICT:Tai leidžia mums ieškoti žodžių tik žodynuose.FTP (S):„Curl“ palaiko FTP protokolą, naudodama daugybę svertų ir pakeitimų. Su TLS arba be jo.FAILAS:Tai leidžia mums rašyti ir skaityti vietinį failą. „Curl“ neleidžia nuotoliniu būdu pasiekti failo://URL, bet veiks, kai bus aktyvus „Microsoft Windows“ su vietiniu UNC metodu.GOFERAS (S):Jis nuskaito failus.HTTP (S):Curl palaiko HTTP naudojant daugybę variantų ir parinkčių. Jis gali kalbėti 0.9, 1.0, 1.1, 2 ir 3 HTTP versijomis, priklausomai nuo tikslios komandų eilutės ir kūrimo parinkčių.IMAP (S):„Curl“ mums atsisiunčia el. laiškus naudodama laiškų skaitymo protokolą. Su TLS arba be jo.LDAP (S):„Curl“ gali įgyvendinti katalogų paiešką su TLS arba be jo.MQTT:Curl palaiko 3 MQTT versiją. Atsisiuntimas naudojant MQTT yra toks pat kaip 'Prenumeruoti' į bet kurią temą, o paskelbimas/įkėlimas yra toks pat kaip 'paskelbti' bet kokia tema. Naudojant TLS, MQTT nepalaikomas.POP3 (S):Atsisiuntimas per pop3 serverį reiškia laiškų gavimą be TLS arba su TLS.RTMP (S):RTMP arba Realtime Messaging Protocol daugiausia naudojamas serverio srautinei medijai.RTSP:Curl palaiko 1.0 RTSP atsisiuntimus.SCP:Curl palaiko dviejų scp perdavimo SCP versiją.SFTP:Curl palaiko SFTP per 2 SSH versiją.SMB (S):„Curl“ palaiko 1 SMB versiją, skirtą atsisiųsti ir įkelti.SMTP (S):Turinio įkėlimas į bet kurį SMTP serverį reiškia el. pašto perkėlimą be TLS arba su TLS.TELNET:Informuojant curl atnešti telnet URL, pradedama interaktyvi sesija, kurios metu per stdin perduodama tai, ką nuskaito, ir gaunama tai, ką perkelia serveris.TFTP:„Curl“ gali įdiegti TFTP įkėlimus ir atsisiuntimus.

„Curl Command“ diegimas

„Curl“ komanda pateikiama su dauguma Linux paskirstymus. Tačiau, jei sistema pagal numatytuosius nustatymus neteikia garbanos. Turite jį įdiegti rankiniu būdu. Norėdami įdiegti curl, vykdykite šias komandas:

Atnaujinkite sistemą vykdydami šias komandas:

 sudo apt update sudo apt upgrade 

Dabar įdiekite curl įrankį vykdydami toliau pateiktą komandą:

 sudo apt install curl 

Patikrinkite diegimą vykdydami toliau pateiktą komandą:

 curl -version 

Aukščiau pateikta komanda parodys įdiegtą curl komandos versiją.

Gaukite nurodyto URL turinį

Norėdami gauti bet kurio konkretaus URL turinį, vykdykite curl komandą, tada nurodykite URL. Apsvarstykite toliau pateiktą komandą:

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

Aukščiau pateikta komanda pateiks nurodyto puslapio puslapio duomenis. Apsvarstykite toliau pateiktą išvesties momentą:

Linux Curl komanda

Iš aukščiau pateiktos išvesties matome, kaip gaunami nurodyto URL puslapio duomenys. Norėdami sustabdyti vykdymą, paspauskite CTRL+C klavišus.

Išsaugokite duomenis konkrečiame faile

Norėdami išsaugoti duomenis konkrečiame faile, perduokite parinktį „-o“, po kurios – katalogą, failo pavadinimą ir URL taip:

 curl -o / 

Apsvarstykite toliau pateiktą komandą:

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

Aukščiau pateikta komanda išsaugos puslapio duomenis „linux.html“ faile, esančiame „/home/javatpoint/Documents/“ kataloge. Apsvarstykite toliau pateiktą išvestį:

Linux Curl komanda

Iš aukščiau pateiktos komandos matome bendrą atsisiųstų duomenų kiekį, gautus duomenis, vidutinį laiką ir kai kuriuos kitus statistinius duomenis apie duomenis.

Norėdami patikrinti atsisiųstus duomenis, atidarykite failą vykdydami komandą cat

 cd Documents cat linux.html 

Apsvarstykite toliau pateiktą išvesties momentą:

Linux Curl komanda

Atsisiųskite failą iš interneto

Vienas iš įdomių ir patrauklių curl naudojimo būdų yra tai, kad galime atsisiųsti failą iš interneto. Norėdami atsisiųsti failą iš žiniatinklio, nukopijuokite atsisiuntimo nuorodą ir įklijuokite ją naudodami curl komandą. Galime pateikti ir kitus argumentus, kad būtų konkretesni. Pavyzdžiui, atsisiųskite naujausią ubuntu versiją, nukopijuokite atsisiuntimo nuoroda ubuntu iš oficialios svetainės ir įklijuokite jį naudodami curl komandą taip:

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

Aukščiau pateikta komanda atsisiųs Ubuntu 20.04 į nurodytą katalogą. Pateikite tinkamą failo plėtinį; kitu atveju failas atsisiųs kitu formatu. Apsvarstykite toliau pateiktą išvestį:

Linux Curl komanda

Iš aukščiau pateiktos išvesties atsisiunčiamas ubuntu.iso failas. Galime matyti atsisiuntimo laiką, failo dydį, atsisiuntimo greitį ir kitą statistiką. Norėdami sustabdyti vykdymą, bet kuriuo metu paspauskite klavišus CTRL + D.

Tęskite pertrauktus atsisiuntimus

Gali būti, kad atsisiuntimai dėl kokių nors priežasčių gali būti nutraukti. Atsisiuntimus galime atnaujinti naudodami komandą curl. Norėdami atnaujinti pertrauktą failą, perduokite parinktį „-C“ su curl komanda taip:

 curl -C 

Aukščiau pateikta komanda atnaujins nurodyto URL atsisiuntimą.

Atsisiųsti kelis failus

Norėdami atsisiųsti kelis failus, nurodykite kelis URL, atskirtus tarpu, taip:

 curl -O 

Aukščiau pateikta komanda atitinkamai atsisiųs duomenis iš abiejų URL.

Užklausa HTTP antraštės

HTTP antraštėse yra papildomos informacijos; tai leidžia žiniatinklio serveriui atsisiųsti šią informaciją. Norėdami užklausti HTTP antraštes iš svetainės, vykdykite komandą su parinktimi „-I“ taip:

 curl -I www.javatpoint.com 

Aukščiau pateikta komanda duos žemiau pateiktą išvestį:

Linux Curl komanda