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ą.
Parinktis | apibūdinimas |
-u | Norėdami atsisiųsti failus iš FTP serverio |
-C | norėdami tęsti pertrauktą atsisiuntimą |
-o | išsaugoti rezultatą garbanoti komanda su iš anksto nustatytu failo pavadinimu |
-Aš | gauti apibrėžto URL HTTP antraštes |
-O | išsaugoti rezultatą garbanoti komandą su pradiniu failo pavadinimu |
--libcurl | kad išvestų naudojamą C šaltinio kodą libcurl nurodytam variantui |
-x | norė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.