Kaip naudoti „Curl“ komandą „Linux“.

Išsamus vadovas, paaiškinantis, kaip naudoti curl komandą tinklalapiams gauti ir failams atsisiųsti tiesiai iš terminalo

The garbanoti komanda yra dar viena įdomi komandų eilutės programa, kurią jums gali pasiūlyti „Linux“. garbanoti komanda leidžia vartotojui gauti failus iš serverio.

garbanoti yra populiarus programų kūrėjų ir dažnų Linux vartotojų pasirinkimas, nes palaiko daugybę protokolų, tokių kaip RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FILE, GOPHER, LDAP, LDAPS, POP3, POP3S ir kt.

garbanoti komanda daro daug daugiau, nei tiesiog atsiunčia tinklalapius už jus. Žinant su šia komanda galimas parinktis, ji tampa universalesnė jūsų naudojimui. Pasinerkime į mokymo programą, kad gerai suprastume, kaip naudoti garbanoti komandą naudodami keletą trumpų pavyzdžių.

Montavimas

Prieš naudodami garbanoti komandą, patikrinkite, ar ji jau įdiegta jūsų sistemoje. Naudokite komandą curl -- versija patikrinti, ar garbanoti yra įdiegta.

Tuo atveju, jei garbanoti nėra įdiegtas, atlikite šiuos veiksmus.

Ubuntu ir Debian pagrindu veikiančiose sistemose, naudoti:

sudo apt-get atnaujinimas
sudo apt-get install curl

RHEL, CentOs ir Fedora platinimo įrenginiuose, naudoti:

sudo yum install curl

Dabar naudokite curl -- versija komandą, kad įsitikintumėte, jog ji tinkamai įdiegta.

curl -- versija

Išvestis:

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30 0 librtmp / 2.3 Išleidimo-data: 2018/01/24 protokolai: dict failą FTP FTPS Gopher http https IMAP aklavietę LDAP ldaps POP3 pop3s rTMP RTSP SMB SMB SMTP smtps telnet TFTP Įranga: AsynchDNS IDN "IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS tarpinis serveris PSL gaurav@ubuntu:~$ 

Dabar esame pasirengę naudoti garbanoti komandą.

Galimos parinktys naudojant CURL komandą

Pirmiausia pažvelkime į kai kurias svarbias parinktis garbanoti komandą.

Parinktisapibūdinimas
-uNorėdami atsisiųsti failus iš FTP serverio
-Cnorėdami tęsti pertrauktą atsisiuntimą
-oišsaugoti rezultatą garbanoti komanda su iš anksto nustatytu failo pavadinimu
-Ašgauti apibrėžto URL HTTP antraštes
-Oišsaugoti rezultatą garbanoti komandą su pradiniu failo pavadinimu
--libcurlkad išvestų naudojamą C šaltinio kodą libcurl nurodytam variantui
-xnorėdami pasiekti URL naudodami tarpinį serverį
-#kad būtų rodoma eigos juosta, kad būtų rodoma atsisiuntimo būsena

Tinklalapio gavimas naudojant CURL

The garbanoti komanda, kai naudojama be jokios parinkties, paima komandoje nurodyto URL turinį.

Sintaksė:

garbanoti [URL]

Pavyzdys:

curl //viskas.kaip

Išvestis:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) body{height:auto!important}html:not([amp4ads]) body{margin:0!important}body{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:not (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over flow-y:auto!svarbu;pozicija:absoliuti!svarbu;viršus:0!svarbu;kairė:0!svarbu;dešinė:0!svarbu;apačioje:0!svarbu;margin:0!svarbu;rodymas:blokuoti!svarbu} html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!important}#i-amphtml-wrapper>body{position:relative!svarbu;border-top:1px solid skaidrus!important}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {padding:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[prenumeratos -dialogas],body:not(.i-amphtml-s ubs-ready) [prenumeratos-veiksmas],body:not(.i-amphtml-subs-ready) [prenumeratos-skyrius]{display:none!important}amp-experiment,amp-live-list>[atnaujinti]{rodyti :none}.i-amphtml-jank-meter{position:fixed;fono spalva:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;šrifto dydis:16px; z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [fetch-error],amp-list [įkelti-daugiau] [įkelti-daugiau-mygtukas],amp-sąrašas[įkelti-daugiau] [įkelti-daugiau-pabaigą],amp-sąrašas[įkelti-daugiau] [įkelti-daugiau-nepavyko],amp-sąrašas[įkelti -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[atskiras]{min-height:1px svarbu color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([atstumas]):not([aktyvus]){transform:translateY(1000vh)!svarbu }automatinis užbaigimas }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[mazgas]{pozicija:fiksuota!svarbu;viršus:0!svarbu;width:1px!important;height:1px!important;perpildymas:paslėptas!svarbu;matomumas:paslėptas} 

Čia tinklalapio turinys paimamas tiesiai į jūsų terminalą kaip šaltinio kodas.

Galite naudoti parinktis -o ir -O su garbanoti komanda šį turinį išsaugoti faile.

Kada -o Naudojama parinktis, URL turinys išsaugomas dabartiniame kataloge vartotojo nustatytu failo pavadinimu.

Sintaksė:

curl -o [naudotojo apibrėžtas_failo pavadinimas] [URL]

Pavyzdys:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Iš viso % Gauta % Xferd Vidutinis greitis Laikas Laikas Dabartinis atsisiuntimas Įkėlimas Iš viso išleista Likęs greitis 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

Šiame pavyzdyje turinys iš URL „allthings.how“ išsaugomas kaip HTML failas pavadinimu ath.html mano dabartiniame darbo kataloge. Atidarius šį HTML failą, būsiu nukreiptas į išsaugotą tinklalapį.

Failų atsisiuntimas naudojant CURL komandą

Naudojant -O parinktis su komanda curl taip pat išsaugo turinį arba tinklalapį arba atsisiunčiamą paketą kaip failą, bet išsaugo šį failą pradiniu pavadinimu.

Pažiūrėkime tai per pavyzdį:

Pavyzdys:

Čia aš panaudojau garbanoti komandą su -O galimybė atsisiųsti Ubuntu paketą pavadinimu "vyšnios medis_0.37.6-1.1_all.deb“ iš Ubuntu paketų saugyklos.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Iš viso % Gauta % Xferd Vidutinis greitis Laikas Laikas Dabartinis atsisiuntimo įkėlimas Bendras išleistas likęs greitis 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/workspace$

Išvestis:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

Taigi, paketas dabar atsisiunčiamas ir išsaugomas dabartiniame darbo kataloge (CWD) pradiniu pavadinimu.

Atsisiunčiant failą rodoma eigos juosta

Yra dar vienas estetinis modifikavimas naudojant garbanoti komanda atsisiųsti failą. Failo atsisiuntimo eigą galite peržiūrėti eigos juostoje į savo terminalą. Jums tereikia pridėti -# parinktį su savo komanda, norėdami atsisiųsti failą.

Pažiūrėkime šio pakeitimo pavyzdį.

Sintaksė:

garbanė -# -O [URL]

Pavyzdys:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ################################################# ################################################# ################################### 100,0% gaurav@ubuntu:~/workspace$ 

Išvestis:

gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$ 

Šiame išvestyje galite pastebėti, kad atsisiunčiau paketą pavadinimu „emacs-defaults_47.0.tar.xz“ mano CWD, o eigos juosta rodoma terminale, kol vyksta atsisiuntimas.

Tęsiamas pertrauktas atsisiuntimas CURL

Dažnai gali susiklostyti situacija, kai reikia atsisiųsti didesnio dydžio failus. Kartais dėl tam tikrų priežasčių, pvz., elektros energijos tiekimo ar tinklo gedimo, atsisiuntimas gali nutrūkti įpusėjus procesui, neatsisiunčiant viso failo. Net jei paspausite Ctrl + C terminale procesas nutraukiamas.

The garbanoti komanda, kai naudojama su -C parinktis atnaujina pertrauktą atsisiuntimą.

Sintaksė:

curl -C - -O [URL]

Pavyzdys:

Šioje iliustracijoje bandžiau atsisiųsti Ubuntu 20.04 ISO atvaizdą iš Ubuntu svetainės.

gaurav @ ubuntu: ~ / Workspace $ garbanės -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974% Iš viso% Gauta% Xferd vidutinis greitis Laikas Laikas Laikas Dabartinis įkėlimas Įkėlimas Iš viso išleista Likęs greitis 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Čia aš sąmoningai nutraukiau atsisiuntimo procesą Ctrl + C.

Dabar naudosiu -C variantas su garbanoti komandą, kad atnaujintumėte pertrauktą atsisiuntimą iš tos pačios šaltinio svetainės.

Išvestis:

iš gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.118264532.11884532.11882.118.1184373179.1184373179 baitų padėtis 1851392 % Iš viso % Gauta % Xferd Vidutinis greitis Laikas Laikas Dabartinis įkėlimas Įkėlimas Iš viso išleista Likęs greitis 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 9829

Atsisiuntimas buvo paimtas iš ten, kur buvo nutrauktas.

Failų atsisiuntimas iš FTP serverio naudojant CURL

Tai gana lengva su garbanoti komanda atsisiųsti failą iš FTP serverio naudojant -u variantas. Prieš įvesdami URL, į komandą turite įvesti vartotojo vardą ir slaptažodį.

Sintaksė:

curl -u [naudotojo vardas]: [slaptažodis] [URL]

Iliustracijai naudosiu viešąjį internetinį FTP.

Pavyzdys:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Iš viso % Gauta % Xferd Average Greitis Laikas Laikas Dabartinis atsisiuntimas Įkėlimas Iš viso išleista Likęs greitis 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Čia aš atsisiunčiau failą pavadinimu "16-rugsėjo 20-16-0-0.csv' iš šio ftp serverio ir išsaugojau jį pradiniu pavadinimu mano CWD. Aš patikrinsiu atsisiųstą failą naudodamas ls komandą.

gaurav@ubuntu:~/workspace$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 Rugsėjo 16 d. 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 rugsėjo 16 d. 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 rugsėjo 16 d. 16:15 16-rugsėjo 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 rugsėjo 16 d. 11:45 ath.html gaurav@ubuntu:~/workspace$

Kelių failų atsisiuntimas kartu naudojant CURL

Kelių failų atsisiuntimas vienu metu naudojant garbanoti komanda yra labai paprasta užduotis. Jūs tiesiog naudojate -O variantas su garbanoti komanda panašiai, kaip atlikome aukščiau pateiktuose blokuose.

Sintaksė:

curl -O [URL-1] -O [URL-2] -O[URL-n]

Pavyzdys:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. lt :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $ 

Šiame pavyzdyje iš Ubuntu saugyklos atsisiunčiau du skirtingus paketus.

Išvestis:

gaurav@ubuntu:~/workspace$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 Rugsėjo 16 d. 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 rugsėjo 16 d. 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 rugsėjo 16 d. 16:15 16-rugsėjo 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 rugsėjo 16 d. 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 rugsėjo 16 d. 16_29 apache.29 orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 rugsėjo 16 d. 11:45 ath.html gaurav@ubuntu:~/workspace$ 

Abu paketai atsisiunčiami vienu metu naudojant curl komandą.

Gaunamos URL su CURL HTTP antraštės

Bet kurio URL HTTP antraštės laukuose yra naudingos informacijos, pvz., vartotojo agentas, turinio tipas, kodavimas ir kt. Šie antraščių failai taip pat pateikia informaciją apie objektą, išsiųstą pranešimo tekste. Išsamią informaciją apie užklausą ir atsakymą taip pat rasite iš šių HTTP antraštių.

Tu gali naudoti garbanoti komandą su -Aš galimybė gauti šias URL HTTP antraštes.

Sintaksė:

garbanė -I [URL]

Pavyzdys:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 Gerai Turinio tipas: tekstas/html; charset=ISO-8859-1 P3P: CP="Tai nėra P3P politika! Daugiau informacijos rasite adresu g.co/p3phelp." Data: trečiadienis, 2020 m. rugsėjo 16 d. 11:17:00 GMT Serveris: gws X-XSS apsauga: 0 X-Frame parinktys: SAMEORIGIN perdavimas-kodavimas: suskirstytas Galiojimas: 2020 m. rugsėjo 16 d., trečiadienis, 11:17-00 GMT Valdymas: privatus rinkinys-slapukas: 1P_JAR=2020-09-16-11; galioja = penktadienis, 2020 m. spalio 16 d. 11:17:00 GMT; kelias=/; domenas=.google.com; Apsaugokite SET Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; galioja = Ketvirtadienis, 2021 m. kovo 18 d. 11:17:00 GMT; kelias=/; domenas=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

Šiame pavyzdyje gavau HTTP antraštes „www.firefox.com‘.

C šaltinio kodo gavimas naudojant CURL

Naudojant garbanoti komandą su --libcurl parinktis gali gauti C šaltinio kodą. Tai nėra labai naudinga paprastiems vartotojams, tačiau gali būti labai naudinga sistemos programuotojams, saugumo analitikams ir programų kūrėjams.

Sintaksė:

curl [URL] > failo pavadinimas --libcurl [kodas_failo pavadinimas]

Pavyzdys:

Šiame pavyzdyje gavau URL turinį viskas.kaip ir išsaugojo faile pavadinimu gy_ath.html. C šaltinio kodas yra atskirai saugomas šaltinis.c failą.

curl //www.allthings.how > gy_ath.html --libcurl source.c 

Išvestis:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Iš viso % Gauta % Xferd Vidutinis greitis Laikas Laikas Dabartinis atsisiuntimas Įkėlimas Iš viso išleista Likęs greitis 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Dabar patikrinkime atsisiųstus failus.

gaurav@ubuntu:~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 Rugsėjo 16 d. 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 rugsėjo 16 d. 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 rugsėjo 16 d. 17:13 gy_ath.html -rw-r--r-- 1 gaurav 5 gaurav 153 Rugsėjo 16 d. 17:13 source.c gaurav@ubuntu:~/workspace$

The šaltinis.c faile yra šaltinio kodas. Tai gali būti rodoma terminale naudojant katė komandą. Į žemiau pateiktą bloką įdėjau kelias eilutes iš išvesties.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* Pavyzdinis kodas, sugeneruotas curl komandinės eilutės įrankio ********** * Visos curl_easy_setopt() parinktys yra dokumentuotos adresu: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ************************************ ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.visi dalykai.kaip"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Tarpinio serverio naudojimas CURL norint pasiekti URL

Kaip aptarta įžangoje, garbanoti komanda palaiko daugybę protokolų, tokių kaip FTP, SMTP, HTTPS, SOCKS ir tt Kartais tarpinio serverio naudojimas failams perkelti tampa svarbus, kai norite padidinti perdavimo greitį ir apsaugoti savo tapatybę. garbanoti komanda gali būti lengvai naudojama failams perkelti per tarpinį serverį, pridedant -x variantas prie jo.

Pavyzdys:

curl -x [proxy_adresas]:[prievadas] [URL]

Aukščiau pateiktame pavyzdyje maniau, kad jūsų įgaliotajam serveriui nereikia autentifikuoti. Jei tarpiniam serveriui reikalingas autentifikavimas norint pradėti perdavimą, galite naudoti šią komandą.

curl -u [naudotojo vardas]:[slaptažodis] -x [proxy_adresas]:[prievadas] [URL]

Naudodami šį paprastą metodą, galime perkelti failus per tarpinį serverį su parinktimi -x naudojamas su garbanoti komandą.

Išvada

Šioje trumpoje pamokoje sužinojome, kaip tai padaryti garbanoti komanda pasirodo esanti naudinga atsisiunčiant turinį tiesiai iš terminalo. Taip pat sužinojome apie įvairias šios komandos parinktis, kurios bus naudojamos įvairioms užduotims atlikti.