Laaja opas, joka selittää curl-komennon käytön verkkosivujen hakemiseen ja tiedostojen lataamiseen suoraan päätteestäsi
The kiemura
komento on yksi mielenkiintoinen komentorivityökalu, jota Linuxilla on sinulle tarjota. kiemura
komennon avulla käyttäjä voi noutaa tiedostoja palvelimelta.
kiemura
on suosittu valinta sovellusten kehittäjien ja usein Linux-käyttäjien keskuudessa, koska se tukee useita protokollia, kuten RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, TIEDOSTO, GOPHER, LDAP, LDAPS, POP3, POP3S jne.
kiemura
komento tekee paljon enemmän kuin vain noutaa verkkosivut puolestasi. Tämän komennon käytettävissä olevien vaihtoehtojen tunteminen tekee siitä monipuolisemman käyttöösi. Sukeltakaamme opetusohjelmaan saadaksemme hyvän käsityksen sen käytöstä kiemura
komento lyhyiden esimerkkien avulla.
Asennus
Ennen kuin käytät kiemura
-komentoa, tarkista, onko se jo asennettu järjestelmääsi. Käytä komentoa curl -- versio
tarkistamaan jos kiemura
on asennettu.
Siinä tapauksessa jos kiemura
ei ole asennettu, noudata seuraavia ohjeita.
Ubuntu- ja Debian-pohjaisissa järjestelmissä käyttää:
sudo apt-get päivitys
sudo apt-get install curl
RHEL-, CentOs- ja Fedora-distroilla käyttää:
sudo yum install curl
Käytä nyt curl -- versio
-komento varmistaaksesi, että se on asennettu oikein.
curl -- versio
Lähtö:
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: 24/01/2018 pöytäkirjat: dict tiedosto ftp ftp gopher http https imap IMAPS ldap LDAPs POP3 POP3S RTMP rtsp smb pk SMTP smtps telnet tftp Ominaisuudet: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-välityspalvelin PSL gaurav@ubuntu:~$
Nyt olemme valmiita käyttämään kiemura
komento.
Vaihtoehdot saatavilla CURL-komennolla
Katsotaanpa ensin joitain näkyviä vaihtoehtoja, jotka ovat käytettävissä kiemura
komento.
Vaihtoehto | Kuvaus |
-u | ladataksesi tiedostoja FTP-palvelimelta |
-C | jatkaaksesi keskeytettyä latausta |
-o | tallentaaksesi tuloksen kiemura komento ennalta määritetyllä tiedostonimellä |
-Minä | saadaksesi määritetyn URL-osoitteen HTTP-otsikot |
-O | tallentaaksesi tuloksen kiemura komento alkuperäisellä tiedostonimellä |
--libcurl | käyttääksesi C-lähdekoodia libcurl määritetylle vaihtoehdolle |
-x | käyttääksesi välityspalvelinta URL-osoitteen käyttämiseen |
-# | näyttääksesi edistymispalkin latauksen tilan näyttämiseksi |
Verkkosivun hakeminen CURL:n avulla
The kiemura
-komento, kun sitä käytetään ilman vaihtoehtoja, hakee komennossa määritetyn URL-osoitteen sisällön.
Syntaksi:
kihara [URL]
Esimerkki:
curl //allthings.how
Lähtö:
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!tärkeä;sijainti:absoluuttinen!tärkeä;ylä:0!tärkeä;vasen:0!tärkeä;oikea:0!tärkeä;ala:0!tärkeä;marginaali:0!tärkeä;näyttö:lohko!tärkeä} 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!tärkeää}#i-amphtml-wrapper>body{position:relative!tärkeää;border-top:1px solid transparent!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!tärkeää}[amp-access][amp-access-hide]{display:none}[tilaukset -dialog],body:not(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[päivitys]{näyttö :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[itsenäinen]{min-height:1px !tärkeä;näyttö:lohko!tärkeä;korkeus:100%!tärkeä;marginaali:0!tärkeä;täyte:0!tärkeä;ylivuoto:piilotettu!tärkeä;leveys:100%!tärkeää}amp-story[erillinen]{tausta- color:#202125!tärkeä;position:relative!tärkeä}amp-tarina-sivu{background-color:#757575}amp-tarina .amp-active>div,amp-tarina .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([etäisyys]):not([aktiivinen]){transform:translateY(1000vh)!tärkeää }amp-autocomplete{position:relative!tärkeää;näyttö:inline-block!tärkeää}amp-autocomplete>syöttö,amp-automaattinen täydennys>tekstialue{täyttö:0.5rem;reuna:1px solid rgba(0,0,0,0.33) }.i-amphtml-automaattinen täydennys amp-script[nodom]{position:fixed!tärkeä;yläosa:0!tärkeä;leveys:1px!tärkeä;korkeus:1px!tärkeä;ylivuoto:piilotettu!tärkeä;näkyvyys:piilotettu}
Täällä verkkosivun sisältö haetaan suoraan päätteeseesi lähdekoodina.
Voit käyttää vaihtoehtoja -o
ja -O
kanssa kiemura
-komento tallentaaksesi tämän sisällön tiedostoon.
Kun -o
-vaihtoehtoa käytetään, URL-osoitteen sisältö tallennetaan nykyiseen hakemistoosi käyttäjän määrittelemällä tiedostonimellä.
Syntaksi:
curl -o [käyttäjän määrittämä_tiedostonimi] [URL]
Esimerkki:
gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Yhteensä % Vastaanotettu % Xferd Keskimääräinen nopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty vasen nopeus 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$
Tässä esimerkissä URL-osoitteen allthings.how sisältö tallennetaan HTML-tiedostona nimeltä ath.html nykyiseen työhakemistooni. Kun avaat tämän HTML-tiedoston, minut ohjataan tallennetulle verkkosivulle.
Tiedostojen lataaminen CURL-komennolla
Käyttämällä -O
vaihtoehto curl-komennolla tallentaa myös sisällön tai verkkosivun tai ladattavan paketin tiedostona, mutta tallentaa tämän tiedoston alkuperäisellä nimellä.
Katsotaanpa tätä esimerkin kautta:
Esimerkki:
Tässä olen käyttänyt kiemura
komento kanssa -O
mahdollisuus ladata Ubuntu-paketti nimeltä "kirsikkapuu_0.37.6-1.1_all.deb" Ubuntun pakettivarastosta.
gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Aika Nykyinen lataus lataus yhteensä käytetty vasen nopeus 100 613 tk 100 613 tk 0 0 220 t 0 0:00:02 0:00:02 --:--:-- 220 t gaurav@ubuntu:~/työtila$
Lähtö:
trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$
Joten paketti on nyt ladattu ja tallennettu nykyiseen työhakemistoon (CWD) alkuperäisellä nimellä.
Edistymispalkin näyttäminen tiedostoa ladattaessa
Käytettävissä on vielä yksi esteettinen muutos kiemura
komento ladataksesi tiedoston. Voit tarkastella tiedoston latauksen edistymistä päätelaitteen edistymispalkin muodossa. Sinun tarvitsee vain liittää -#
vaihtoehto komennollasi ladataksesi tiedoston.
Katsotaanpa esimerkkiä tästä säädöstä.
Syntaksi:
curl -# -O [URL]
Esimerkki:
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$
Lähtö:
gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$
Tässä tulosteessa voit havaita, että olen ladannut paketin nimeltä "emacs-defaults_47.0.tar.xz" CWD:ssäni ja edistymispalkki näkyy terminaalissa latauksen ollessa käynnissä.
Jatketaan keskeytettyä latausta CURL:ssä
Usein voi tapahtua tilanne, jossa sinun on ladattava suurempia tiedostoja. Joskus joistakin syistä, kuten sähkökatkosta tai verkkohäiriöstä, lataus voi keskeytyä kesken prosessin lataamatta koko tiedostoa. Vaikka painaisit Ctrl+C
terminaalissa prosessi keskeytyy.
The kiemura
-komento, kun sitä käytetään -C
-vaihtoehto jatkaa keskeytettyä latausta.
Syntaksi:
curl -C - -O [URL]
Esimerkki:
Tässä kuvassa olen yrittänyt ladata Ubuntu 20.04 ISO -kuvan Ubuntu-verkkosivustolta.
gaurav @ ubuntu: ~ / työtila $ kiemura -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974% Yhteensä% sai% Xferd Keskinopeus Aika Aika Aika Nykyinen lataus Lataus Käytetty yhteensä vasen nopeus 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C
Tässä olen tietoisesti keskeyttänyt latausprosessin Ctrl+C
.
Nyt käytän -C
vaihtoehto kanssa kiemura
komento jatkaaksesi keskeytettyä latausta samasta lähdesivustosta.
Lähtö:
gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.11884532.11884532.1188.118.1184373179.118um transfer**1709.1600251409251409225 tavun sijainti 1851392 % Yhteensä % Vastaanotettu % Xferd Keskimääräinen nopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty Vasen nopeus 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:28 988
Lataus on poimittu kohdasta, jossa se keskeytettiin.
Tiedostojen lataaminen FTP-palvelimelta CURL:n avulla
Se on melko helppoa kanssa kiemura
-komento ladataksesi tiedoston FTP-palvelimelta käyttämällä -u
vaihtoehto. Sinun on annettava käyttäjätunnus ja salasana komentoon ennen URL-osoitteen syöttämistä.
Syntaksi:
curl -u [käyttäjänimi]:[salasana] [URL]
Esimerkkinä käytän julkista online-FTP:tä.
Esimerkki:
gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Yhteensä % Vastaanotettu % Xferd keskiarvo Nopeus Aika Aika Aika Nykyinen lataus Lataus Yhteensä käytetty jäljellä Nopeus 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$
Täällä olen ladannut tiedoston nimeltä "16-Sep-20-16-0-0.csv' tältä ftp-palvelimelta ja tallensin sen alkuperäisellä nimellä CWD:hen. Tarkistan ladatun tiedoston käyttämällä ls
komento.
gaurav@ubuntu:~/työtila$ ls -al total 1092 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. syyskuuta 16:15 16. syyskuuta 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 16. syyskuuta 11:45 ath.html gaurav@ubuntu:~/workspace$
Useiden tiedostojen lataaminen yhdessä CURL:n avulla
Useiden tiedostojen lataaminen kerralla käyttämällä kiemura
komento on hyvin yksinkertainen tehtävä. Käytät vain -O
vaihtoehto kanssa kiemura
komento samanlainen kuin olemme suorittaneet yllä olevissa lohkoissa.
Syntaksi:
curl -O [URL-1] -O [URL-2] -O[URL-n]
Esimerkki:
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. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Nykyinen Lataus Lataus Yhteensä käytetty vasen nopeus 100 63500 100 63500 0 0 550:580 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/työtila $
Tässä esimerkissä olen ladannut kaksi eri pakettia Ubuntu-arkistosta.
Lähtö:
gaurav@ubuntu:~/työtila$ ls -al total 9596 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 16. syyskuuta 16:15 16. syyskuuta 20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 16. syyskuuta 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 16. syyskuuta 16_29 apache.29 orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 16. syyskuuta 11:45 ath.html gaurav@ubuntu:~/workspace$
Molemmat paketit ladataan samanaikaisesti curl-komennolla.
Haetaan CURL-osoitteen HTTP-otsikoita
Minkä tahansa URL-osoitteen HTTP-otsikkokentät sisältävät hyödyllistä tietoa, kuten käyttäjäagentin, sisältötyypin, koodauksen jne. Nämä otsikkotiedostot tarjoavat myös tietoa viestin rungossa lähetetystä objektista. Pyynnön ja vastauksen tiedot saadaan myös näistä HTTP-otsikoista.
Voit käyttää kiemura
komento kanssa -Minä
vaihtoehto saada nämä URL-osoitteen HTTP-otsikot.
Syntaksi:
curl -I [URL]
Esimerkki:
gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP="Tämä ei ole P3P-käytäntö! Katso lisätietoja osoitteesta g.co/p3phelp." Päivämäärä: ke, 16. syyskuuta 2020 11:17:00 GMT Palvelin: gws X-XSS-suojaus: 0 X-Frame-vaihtoehdot: SAMEORIGIN-siirto-koodaus: lohkottu Vanhenee: ke, 16. syyskuuta 2020 11:17-00 GMT Hallinta: yksityinen Set-Cookie: 1P_JAR=2020-09-16-11; päättyy=pe, 16. lokakuuta 2020 11:17:00 GMT; polku=/; domain=.google.com; Secure Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; päättyy=to, 18-3-2021 11:17:00 GMT; polku=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/työtila$
Tässä esimerkissä olen hakenut HTTP-otsikotwww.firefox.com‘.
C-lähdekoodin hakeminen CURL:n avulla
Käyttämällä kiemura
komennon kanssa --libcurl
vaihtoehto voi hakea C-lähdekoodin. Tästä ei ole merkittävää hyötyä maallikkokäyttäjille, mutta se voi osoittautua erittäin hyödylliseksi järjestelmäohjelmoijille, tietoturva-analyytikoille ja sovellusten kehittäjille.
Syntaksi:
curl [URL] > tiedostonimi --libcurl [kooditiedoston_nimi]
Esimerkki:
Tässä esimerkissä olen hakenut URL-osoitteen sisällön kaikki.miten ja tallentanut sen tiedostoon nimeltä gy_ath.html. C-lähdekoodi on tallennettu erikseen lähde.c tiedosto.
curl //www.allthings.how > gy_ath.html --libcurl source.c
Lähtö:
gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Yhteensä % Vastaanotettu % Xferd Keskinopeus Aika Aika Nykyinen lataus Lataus Yhteensä käytetty vasen nopeus 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/työtila$
Tarkastetaan nyt ladatut tiedostot.
gaurav@ubuntu:~/työtila$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 16. syyskuuta 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 16. syyskuuta 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 16. syyskuuta 17:13 gy_ath.html -rw-r--r-- 1 gaurav5 gaurav 153 16. syyskuuta 17:13 source.c gaurav@ubuntu:~/workspace$
The lähde.c tiedosto sisältää lähdekoodin. Tämä voidaan näyttää päätteessä käyttämällä kissa
komento. Olen laittanut muutaman rivin ulostulosta alla annettuun lohkoon.
C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* curl-komentorivityökalun luoma esimerkkikoodi ********* * Kaikki curl_easy_setopt()-vaihtoehdot on dokumentoitu osoitteessa: * //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.kaikki asiat.miten"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
Välityspalvelimen käyttäminen CURL:ssä URL-osoitteen käyttämiseen
Kuten johdannossa todettiin, kiemura
komento tukee monenlaisia protokollia, kuten FTP, SMTP, HTTPS, SOCKS jne. Joskus välityspalvelimen käyttäminen tiedostojen siirtämiseen tulee tärkeäksi, kun haluat nopeuttaa siirtoa ja myös suojata henkilöllisyyttäsi. kiemura
-komentoa voidaan helposti käyttää tiedostojen siirtämiseen välityspalvelimen kautta liittämällä -x
vaihtoehto sille.
Esimerkki:
curl -x [välityspalvelimen_osoite]:[portti] [URL]
Yllä olevassa esimerkissä olen olettanut, että välityspalvelimesi ei vaadi todennusta. Jos välityspalvelin vaatii todennuksen siirron aloittamiseksi, voit käyttää seuraavaa komentoa.
curl -u [käyttäjänimi]:[salasana] -x [välityspalvelimen_osoite]:[portti] [URL]
Tällä yksinkertaisella menetelmällä voimme siirtää tiedostoja välityspalvelimen kautta vaihtoehdolla -x
käytetty kanssa kiemura
komento.
Johtopäätös
Tässä lyhyessä opetusohjelmassa opimme kuinka kiemura
-komento on hyödyllinen sisällön lataamisessa suoraan päätteestäsi. Opimme myös tämän komennon eri vaihtoehdoista, joita voidaan käyttää erilaisiin tehtäviin.