Põhjalik juhend, mis selgitab curl käsu kasutamist veebilehtede toomiseks ja failide allalaadimiseks otse terminalist
The lokk
käsk on veel üks huvitav käsurea utiliit, mida Linux teile pakub. lokk
käsk võimaldab kasutajal faile serverist tuua.
lokk
on rakenduste arendajate ja sagedaste Linuxi kasutajate populaarne valik, kuna see toetab mitmeid protokolle, nagu RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FAIL, GOPHER, LDAP, LDAPS, POP3, POP3S jne.
lokk
käsk teeb palju enamat kui lihtsalt veebilehtede toomine teie eest. Selle käsuga saadaolevate valikute tundmine muudab selle teie jaoks mitmekülgsemaks. Sukeldume õpetusesse, et saada hea ülevaade selle kasutamisest lokk
käsk, kasutades mõningaid lühinäiteid.
Paigaldamine
Enne kasutamist lokk
kontrollige, kas see on teie süsteemi juba installitud. Kasutage käsku curl --versioon
et kontrollida, kas lokk
on paigaldatud.
Juhul kui lokk
pole installitud, järgige järgmisi samme.
Ubuntu ja Debianipõhistes süsteemides kasuta:
sudo apt-get värskendus
sudo apt-get install curl
RHELi, CentOs ja Fedora distributsioonides kasuta:
sudo yum install curl
Nüüd kasutage curl --versioon
käsku, et veenduda, et see on õigesti installitud.
curl --versioon
Väljund:
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 Release-Date: 2018/01/24 protokollid: dict faili ftp ftps Gofferi http https imap imaps ldap ldaps pop3 pop3s rtmp rTSP SMB SMB SMTP smtps telnet TFTP Omadused: AsynchDNS IDN IPv6 Largefile GSS-API Kerberose spnego't NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-puhverserver PSL gaurav@ubuntu:~$
Nüüd oleme valmis kasutama lokk
käsk.
Valikud on saadaval käsuga CURL
Heidame esmalt pilgu mõnele silmapaistvatele valikutele, mis on saadaval lokk
käsk.
Võimalus | Kirjeldus |
-u | failide allalaadimiseks FTP-serverist |
-C | katkestatud allalaadimise jätkamiseks |
-o | tulemuse salvestamiseks lokk käsk eelmääratletud failinimega |
- Mina | määratletud URL-i HTTP-päiste saamiseks |
-O | tulemuse salvestamiseks lokk käsk algse failinimega |
--libcurl | kasutatava C lähtekoodi väljastamiseks libcurl määratud valiku jaoks |
-x | URL-ile juurdepääsuks puhverserveri kasutamiseks |
-# | edenemisriba kuvamiseks allalaadimise oleku kuvamiseks |
Veebilehe toomine CURL-i abil
The lokk
käsk, kui seda kasutatakse ilma suvanditeta, toob käsus määratud URL-i sisu.
Süntaks:
lokkis [URL]
Näide:
curl //allthings.how
Väljund:
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:automaatne!tähtis;positsioon:absoluutne!tähtis;ülemine:0!tähtis;vasak:0!oluline;parem:0!tähtis;alumine:0!tähtis;margin:0!tähtis;kuva:plokk!tähtis} 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!important;border-top:1px solid läbipaistev!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}[tellimused -dialog],body:not(.i-amphtml-s ubs-ready) [tellimused-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[värskendus]{kuva :none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;font-size: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 [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[eraldi]{min-height:1px !oluline;kuva:plokk!tähtis;kõrgus:100%!tähtis;veeris:0!tähtis;polster:0!tähtis;ülevool:peidetud!tähtis;laius:100%!tähtis}amp-lugu[eraldi]{taust- 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([distance]):not([active]){transform:translateY(1000vh)!important }amp-autocomplete{position:relative!important;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0.33) }.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[nodom]{position:fixed!important;top:0!important;width:1px!important;height:1px!important;overflow:peidetud!tähtis;nähtavus:peidetud}
Siin tuuakse veebilehe sisu lähtekoodina otse teie terminali.
Saate kasutada valikuid -o
ja -O
koos lokk
käsk selle sisu faili salvestamiseks.
Millal -o
Kui kasutatakse suvandit, salvestatakse URL-i sisu teie praegusesse kataloogi kasutaja määratud failinimega.
Süntaks:
curl -o [kasutaja määratud_failinimi] [URL]
Näide:
gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Kokku % Vastu võetud % Xferdi keskmine kiirus Aeg Aeg Praegune Laadimine Üleslaadimine Kokku kulutatud Vasak kiirus 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$
Selles näites salvestatakse URL-i „allthings.how” sisu minu praegusesse töökataloogi HTML-failina nimega ath.html. Selle HTML-faili avamisel suunatakse mind salvestatud veebilehele.
Failide allalaadimine käsuga CURL
Kasutades -O
käsk curl salvestab ka sisu või veebilehe või allalaaditava paketi failina, kuid salvestab selle faili algse nimega.
Vaatame seda näite kaudu:
Näide:
Siin olen kasutanud lokk
käsuga -O
võimalus alla laadida Ubuntu pakett nimega "kirsipuu_0.37.6-1.1_all.deb" Ubuntu paketihoidlast.
gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Kokku % Vastuvõetud % Xferdi keskmine kiirus Aeg aeg Praegune allalaadimise üleslaadimise kogukulu jäänud kiirus 100 613 000 613 000 220 00 0:00:02 0:00:02 --:--:-- 220 000 gaurav@ubuntu:~/workspace$
Väljund:
trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$
Seega laaditakse pakett alla ja salvestatakse algse nimega praegusesse töökataloogi (CWD).
Edenemisriba kuvamine faili allalaadimise ajal
Kasutamise ajal on saadaval veel üks esteetiline modifikatsioon lokk
käsk faili allalaadimiseks. Saate vaadata oma terminali faili allalaadimise edenemist edenemisriba kujul. Peate lihtsalt lisama -#
suvand oma käsuga faili allalaadimiseks.
Vaatame selle näpistamise näidet.
Süntaks:
curl -# -O [URL]
Näide:
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$
Väljund:
gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$
Selles väljundis näete, et olen alla laadinud paketi nimega "emacs-defaults_47.0.tar.xzMinu CWD-s ja edenemisriba kuvatakse terminalis allalaadimise ajal.
Katkestatud allalaadimise jätkamine CURL-is
Sageli võib tekkida olukord, kus peate alla laadima suuremaid faile. Mõnikord võib allalaadimine mõnel põhjusel (nt voolukatkestus või võrgutõrge) katkeda ilma kogu faili allalaadimiseta. Isegi kui vajutate Ctrl+C
terminalis protsess katkestatakse.
The lokk
käsk, kui seda kasutatakse koos -C
suvand jätkab katkestatud allalaadimist.
Süntaks:
curl -C - -O [URL]
Näide:
Sellel illustratsioonil olen proovinud Ubuntu veebisaidilt alla laadida Ubuntu 20.04 ISO-pilti.
gaurav @ ubuntu: ~ / tööruumi $ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974% Kokku% Vastuvõetud% Xferd Keskmine kiirus kell
Siin katkestasin tahtlikult allalaadimisprotsessi Ctrl+C
.
Nüüd ma kasutan -C
valik koos lokk
käsk katkestatud allalaadimise jätkamiseks samalt allika veebisaidilt.
Väljund:
gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.11843179.1188.1184373179.118.1184373179.118.1184373179.1184373179.1184373179.1184373179.160025174373179 baidi positsioon 1851392 % Kokku % Vastu võetud % Xferd Keskmine kiirus Aeg Aeg Praegune Laadimine Üleslaadimine Kokku kulutatud Vasak kiirus 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:28 988
Allalaadimine on üles võetud kohast, kus see katkestati.
Failide allalaadimine FTP-serverist CURL-i abil
See on üsna lihtne lokk
käsk faili allalaadimiseks FTP-serverist kasutades -u
valik. Enne URL-i sisestamist peate käsku sisestama kasutajanime ja parooli.
Süntaks:
curl -u [kasutajanimi]:[parool] [URL]
Illustratsiooniks kasutan avalikku veebipõhist FTP-d.
Näide:
gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Kokku % Saadud % Xferd Average Kiirus Aeg Aeg Aeg Praegune allalaadimine Üleslaadimine Kokku kulutatud Vasak kiirus 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$
Siin laadisin alla faili nimega "16-Sep-20-16-0-0.csv' sellest ftp-serverist ja salvestasin selle algse nimega minu CWD-sse. Kontrollin allalaaditud faili kasutades ls
käsk.
gaurav@ubuntu:~/workspace$ ls -al kokku 1092 drwxrwxr-x 3 gaurav gaurav 4096 16. september 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 16. september 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. september 16:15 16. september 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 16. september 11:45 ath.html gaurav@ubuntu:~/workspace$
Mitme faili koos allalaadimine, kasutades CURL-i
Mitme faili korraga allalaadimine, kasutades lokk
käsk on väga lihtne ülesanne. Sa lihtsalt kasutad -O
valik koos lokk
samasugune käsk, nagu oleme ülaltoodud plokkides sooritanud.
Süntaks:
curl -O [URL-1] -O [URL-2] -O[URL-n]
Näide:
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. ee :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/tööruum $
Selles näites laadisin Ubuntu hoidlast alla kaks erinevat paketti.
Väljund:
gaurav@ubuntu:~/workspace$ ls -al kokku 9596 drwxrwxr-x 3 gaurav gaurav 4096 16. september 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 16. september 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. september 16:15 16. september 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 16. september 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 16. september 16:29 apache.29 orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 16. september 11:45 ath.html gaurav@ubuntu:~/workspace$
Need kaks paketti laaditakse alla korraga, kasutades käsku curl.
URL-i HTTP-päiste toomine koos CURL-iga
Iga URL-i HTTP-päiste väljad sisaldavad kasulikku teavet, nagu kasutajaagent, sisutüüp, kodeering jne. Need päisefailid pakuvad teavet ka sõnumi kehas saadetud objekti kohta. Nendest HTTP-päistest leiate ka päringu ja vastuse üksikasjad.
Sa võid kasutada lokk
käsuga - Mina
võimalus hankida need URL-i HTTP-päised.
Süntaks:
curl -I [URL]
Näide:
gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP="See ei ole P3P-poliitika! Lisateabe saamiseks vaadake g.co/p3phelp." Kuupäev: kolmapäev, 16. september 2020 11:17:00 GMT Server: gws X-XSS-kaitse: 0 X-Frame-i valikud: SAMEORIGIN edastus-kodeering: tükeldatud Aegub: kolmapäeval, 16. september 2020 11:17-00 GMT Juhtimine: privaatne Set-Cookie: 1P_JAR=2020-09-16-11; aegub=R, 16-okt-2020 11:17:00 GMT; tee=/; domeen=.google.com; Turvaline Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; aegub=N, 18-Mar-2021 11:17:00 GMT; tee=/; domeen=.google.com; HttpOnly gaurav@ubuntu:~/workspace$
Selles näites olen toonud HTTP päised "www.firefox.com‘.
C-lähtekoodi toomine CURL-i abil
Kasutades lokk
käsuga --libcurl
suvand võib tuua C lähtekoodi. Sellest pole tavakasutajatele suurt kasu, kuid see võib osutuda väga kasulikuks süsteemi programmeerijatele, turbeanalüütikutele ja rakenduste arendajatele.
Süntaks:
curl [URL] > failinimi --libcurl [koodi_failinimi]
Näide:
Selles näites olen toonud URL-i sisu kõik asjad.kuidas ja salvestas selle nimega faili gy_ath.html. C-lähtekoodi salvestatakse eraldi allikas.c faili.
curl //www.allthings.how > gy_ath.html --libcurl source.c
Väljund:
gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Kokku % Saabunud % Xferd Keskmine kiirus Aeg Aeg Praegune Laadimine Üleslaadimine Kokku kulutatud Vasak kiirus 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$
Kontrollime nüüd allalaaditud faile.
gaurav@ubuntu:~/workspace$ ls -al kokku 404 drwxrwxr-x 3 gaurav gaurav 4096 16. september 17:08. drwxr-xr-x 87 gaurav gaurav 266240 16. september 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16. september 17:13 gy_ath.html -rw-r--r-- 1 gaurav5 gaurav 153 16. september 17:13 source.c gaurav@ubuntu:~/workspace$
The allikas.c fail sisaldab lähtekoodi. Seda saab terminalis kuvada, kasutades nuppu kass
käsk. Olen pannud väljundist paar rida allolevasse plokki.
C sourcegaurav@ubuntu:~/workspace$ cat source.c /************ Curl käsurea tööriistaga genereeritud näidiskood ********* * Kõik curl_easy_setopt() suvandid on dokumenteeritud aadressil: * //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.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
Puhverserveri kasutamine CURL-is URL-ile juurdepääsuks
Nagu sissejuhatuses arutatud, lokk
käsk toetab laias valikus protokolle, nagu FTP, SMTP, HTTPS, SOCKS jne. Mõnikord muutub puhverserveri kasutamine failide edastamiseks oluliseks, kui soovite edastuskiirust suurendada ja oma identiteeti kaitsta. lokk
käsku saab hõlpsasti kasutada failide edastamiseks puhverserveri kaudu, lisades -x
võimalus sellele.
Näide:
curl -x [puhverserveri_aadress]:[port] [URL]
Ülaltoodud näites eeldasin, et teie puhverserver ei vaja autentimist. Kui puhverserver nõuab ülekande alustamiseks autentimist, saate kasutada järgmist käsku.
curl -u [kasutajanimi]:[parool] -x [puhverserveri_aadress]:[port] [URL]
Seda lihtsat meetodit kasutades saame faile edastada valikuga puhverserveri kaudu -x
kasutatud koos lokk
käsk.
Järeldus
Sellest lühikesest õpetusest õppisime, kuidas lokk
käsk osutub abiks sisu otse terminalist allalaadimisel. Samuti õppisime selle käsuga saadaolevate valikute kohta erinevate ülesannete jaoks.