Kuidas kasutada käsku Curl Linuxis

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õimalusKirjeldus
-ufailide allalaadimiseks FTP-serverist
-Ckatkestatud allalaadimise jätkamiseks
-otulemuse salvestamiseks lokk käsk eelmääratletud failinimega
- Minamääratletud URL-i HTTP-päiste saamiseks
-Otulemuse salvestamiseks lokk käsk algse failinimega
--libcurlkasutatava C lähtekoodi väljastamiseks libcurl määratud valiku jaoks
-xURL-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.